- •Структура программы на Паскале.
- •Стандартные типы Паскаля.
- •Операторы в Паскале.
- •Цикл с параметром.
- •Типовые задачи на операторов цикла.
- •Операторы целочисленного деления.
- •Вложенные циклы.
- •Структурированные типы данных.
- •Массивы.
- •Многомерные массивы.
- •Строки.
- •Множества.
- •Записи.
- •Работа с текстовыми файлами.
- •Особенности работы с текстовым файлом:
- •Типизированные файлы.
- •Особенности работа с типизированными файлами.
- •Подпрограммы.
- •Структура подпрограмм.
- •1. Заголовок
- •2. Описательная часть
- •3. Тело подпрограммы
- •Оформление формальных параметров, которые определяет режим взаимодействия с основной программой.
- •Особенности передачи структурированных данных подпрограммы.
- •Опережающие описания.
- •Функциональный тип. Процедурный тип.
- •Сортировки.
- •Сортировка бинарными включениями.
- •Сортировка простых выборов.
- •Сортировки простым обменом.
- •Шейкер-сортировка.
- •Сортировка Шелла.
- •Модули.
- •Структура модуля.
- •Особенности компиляции программ с подключаемыми модулями.
- •Циклические ссылки модулей друг на друга.
- •Стандартные модули в Паскале.
- •Динамические переменные.
- •Динамические структуры.
- •Однонаправленные списки.
- •Формирование списков. Формирование очереди.
- •Формирование стека.
- •Классическое формирование очереди (по Вирту).
- •Работа со списками.
- •1) Проход по списку;
- •2) Добавление элемента в список;
- •Удаление элемента из списка.
- •«Древовидные структуры»
- •Удаление элемента из дерева
- •Самоупорядочивающийся список
- •Частотный словарь
- •Нерекурсивное формирование дерева
Структурированные типы данных.
Структурированными называются такие типы данных, которые объединяют некоторое количество переменных и обладают строго определенными свойствами, которые определяют методы их обработки.
Массивы.
Массивом называется упорядоченное ограниченное количество элементов одного и того же типа. На тип элемента ограничения не накладывается. Он может быть любым.
VAR
<Имя переменной>:ARRAY[< тип индекса>] OF Тип элемента массива;
Свойства массива:
Тип массив позволяет обращаться непосредственно прямо к каждому элементу. Ограничение количества элементов осуществляется косвенно типом индекса.
Диапазоном является переменная порядкового типа, которая может принимать одно из значений, ограниченного начальным и конечным значением.
Количество вложенных значений определяет количество элементов в массиве. В программе возможно обращение в целом ко всему массиву в этом случае используется имя массива. В этом случае записывается :
<имя массива>[индекс элемента].
Любая работа с массивом, коме переноса, связана с перебором элементов массива. Чаще всего перебор элементов массива осуществляется в цикле с параметром. Ввод /вывод массива осуществляется в цикле поэлементно.
Пример. Задан массив из 15 целых чисел.
Var p:1..15;
M:array[1..15] of integer;
Begin
Writeln(‘Введите масив’);
For p:=1 to 15 do read(m[p]);
End.
Примечание:
Обратите внимание, что с практической точку зрения в предыдущем примере ввод значений массива будет отличаться. Если используем READ, то ввод элементов массива происходит как в стирку так и в столбец. Если используем READLN, то только в столбец.
Пример. Задан массив из 100 литеров. Вывести введенные литеры в обратном порядке.
Var p:integer;
M:array[1..100] of char;
Begin
Writeln(‘Введите 100 литеров’);
For p:=1 to 100 do read(m[p]);
For p:=100 downto 1 do
Write(m[p]);
End.
Пример. Задан массив из 100 целых чисел. Упорядочить его по возрастанию.
Var M:array[1..100] of integer;
p,c,v:integer;
Begin
Writeln(‘Введите массив’);
For p:=1 to 100 do read(m[p]);
R
C=0
For p:=1 to 99 do
If m[p]>m[p+1] then
Begin v:=m[p];
m[p]:=m[p+1];
m[p+1]:=v;
c:=c+1; end;
until c=0;
f
V=m[p]
m[p]=m[p+1]
m[p+1]=v
c=c+1
end.
Пример. Используя генератор случайных чисел сформировать массив из 100 целых чисел.
Var m:array[1..100] of enteger;
p:integer;
RANDOMIZE;
For p;=1 to 100 do
Begin m[p]:=RANDOM(100)-50;
Write(m[p],’ ‘);
End; end.
Генератор случайных чисел необходимо с начало проинициализировать программой RANDOMIZE. После инициализации можно использовать генератор случайных чисел RANDOM(N), N-целое число
Многомерные массивы.
Тип элемента массива может быть любым. В случае если тип элемента массива является массив, то такой массив в математике называется многомерным.
В Паскале многомерные массивы можно оформлять не записывая вложения одного типа в другой. Например
а: ARRAY [1..10] OF
ARRAY [1..10] OF a, перечисляя через запятую типы индексов в [ ].
При обращении к конкретному элемента массива так же его индексы перечисляются через запятую.
Пример. Сформировать матрицу 10 на 10 элементов, состоящую из двухзначных чисел. Вывести её по строкам на экран.
Var m:array[1..10,1..10] or integer;
p,k:integer;
begin randomize;
for p:=1 to 10 d0 begin
for k:=1 to 10 do begin
m[p.k]:=random(100)-50;
write(m[p,k]:4);
e
m[p,k]=RANDOM(100)-50
end; end.
Пример. Задана матрица 10 на 10 элементов. Упорядочить строки по возрастанию.
Var mt:array[1..10,1..10] or integer;
p,k,c,v,min:integer;
begin writeln(‘Введите матрицу’);
for p:=1 to 10 d0
for k:=1 to 10 do
r
C=0
writeln;
for p:=1 to 10 do
repeat c:=0;
for k:=1 to 9 do
if mt[p,k]>mt[p,k+1] then
begin v:= mt[p,k+1];
mt[p,k+1]:=v;
c
V=mt[p,k]
mt[p,k]=mt[p,k+1]
mt[p,k+1]=v
c=c+1
until c=0;
for p:=1 to 10 do
begin
for k:=1 to 10 do
write(mt[p,k],’ ‘);
writeln; readln;
end; end.