- •Структура програми
- •Ідентифікатори.
- •Запис чисел на Pascal.
- •Додаткова інформація про оператор write (writeln)
- •3. Дано 3-й дійсні числа а,ь,с. Визначити, скільки серед них від'ємних.
- •Складений оператор.
- •Результати операцій над логічними даними:
- •Var ім 'я_масиву:аrrау[t1 ] of t2;
- •Var ім’я_мас:ім 'я_типу;
- •Var ім’я_масиву: ім'я_типу;
- •Процедури.
- •Структура процедури.
- •Параметри-значення та параметри-змінні.
- •Функції.
- •Відмінні особливості функції в порівнянні з процедурами:
- •Рекурсивні структури.
- •If умова then a;
- •If умова then a;
- •If умова then a;
- •Множини.
- •Var ім'я_запису: record
- •Var ім'я_запису:ім'я_типу;
- •Оператор приєднання.
- •With ім’я_запису do
- •Записи з варіантами.
- •Var ім'я_файлу: iм)я_типу; читання файлів.
- •Запис файлу.
- •Write(ім’я, параметри);
- •Читання та запис файлів.
- •Файлова система.
- •Фізичні файли.
- •Файлові типи.
- •Текстові файли.
- •Текст - орієнтовані процедури та функції.
- •Створення текстових файлів.
- •Операції введення-виведення текстових файлів.
- •Переваги типізованих файлів :
- •Безтипові файли.
- •Послідовний та прямий доступ до файлів.
- •Вказівники.
- •Зсилочнии тип.
- •Var p:pointer; (змінна — вказівник);
- •Операції розіменування.
- •Списки.
- •1. Зв'язне представлення з одним зв'язком.
- •2. Зв'язані представлення з двома зв'язками.
- •3В’язані списки.
- •Перегляд зв'язаного списку.
- •Списки властивостей.
- •Pascal – об’єктно-орієнтована мова.
- •Опис об’єкта: рядок
- •Розробка програм на мові тр з використанням мов Асемблера та с.
- •Підпрограма сортування методом обміну
- •Застосування механізму переривань
- •Лівий, правый: зв ’язок; дані: тип_даних;
Процедури.
Процедура — це програма, в якій результат являється необов'язково розрахованим значенням, в той час як обчислення функції завжди повинно виконуватися до кінця.
Приклад: вивести на друк зображення квадрату за допомогою трьох
операторів:
Writeln(‘***’);
Writeln(‘* *’);
Writeln(‘***’);
Program рr;
Procedure gv;
Веgіп
Writeln(‘***');
Writeln(‘* *');
Writeln(‘***');
End;
Ведіп
gv;
end.
Приклад: запишемо цю саму програму з об'явленням нових змінних..
Ргодгат рr;
Procedure gv;
Var і: integer;
{змінна і має зміст тільки в процедурі)
begin
for і: =1 to 3 do write ('*') ; writeln;
writeln('* *');
for i: =1 to 3 do write ('*') ;
end;
begin
gv;
end.
Структура процедури.
Заголовок;
Розділ опису;
Begin
Розділ операторів;
End;
Заголовок процедури являє собою службове слово procedure, далі йде його ім’я та параметри: procedure <ім'я> (параметри);
де параметри - це перелік імен для позначення вхідних даних і результатів роботи процедури з вказуванням їх типів.
Параметри, що перелічені у списку - формальні (можна параметри не описувати). Розділ опису складається з розділів міток, констант, типів, змінних, процедур та функцій.
Розділ операторів заключається в операторні дужки Begin та End. Викликається процедура по її імені за допомогою фактичних параметрів.
За допомогою формальних та фактичних параметрів дані передаються із процедури в програму і навпаки. Кожен формальний параметр вказується зі своїм типом, а відповідний йому фактичний параметр - без типу. Між формальними та фактичними параметрами повинна бути відповідність по кількості, їх типу та порядку слідування. Якщо декілька формальних параметрів мають однаковий тип, то їх можна записати через кому, а потім вказати тип, наприклад:
Procedure AK(A,B,C: integer); {А,В,С-формальні параметри}
........................................................................
AK(5,k, 13); {5, k, 13- фактичні параметри}
Приклад:
оформити
алгоритм обчислення у =x
.
Procedure SS(x, n: integer; var у: integer );
Var I: integer;
Begin
У:=1;
For і: =1 to n do
Y:=y*x;
End;
Тут в заголовку задаються х, n — вхідні параметри; у — значення вихідних даних.
Тіло процедури складається з:
1) частини, що описується. В ній визначена змінна, яка має зміст тільки в середені процедури і називається локальною змінною;
2) оператора, що реалізує алгоритм обчислення степені цілого числа х з натуральним показником.
Приклад: Оформити алгоритм обчислення у=х без параметрів.
Procedure ss;
Var і: integer;
Begin
У:=1;
For i:=1 to n do
Y:=y*x;
End;
В цьому прикладі процедура не містить списку формальних параметрів і працює з локальною змінною і, що описана у блоці процедури та із змінними х,у,n, які описані в основній програмі. В даному випадку х,у,п являються глобальними змінними по відношенню до процедури. Значення глобальних змінних доступні і можуть бути використані в любій точці основної програми.
Приклад: Знайти кількість від'ємних елементів в масивах А,В,С: А(1..10),В(1..8),С(1..6).
program prozl;
Type mas=array[l..10]of integer;
var a,b,c,r:mas;
nl,n2,n3,i: integer;
procedure ak (n: integer; var r:mas);
var k,i:integer;
begin
k:=0;
for i:=1 to n do
If r[i]<0 then k:=k+1;
write(k:2);
end;
begin
write ('Введіть кількість елементів масивів A,B,C’);
readln(nl,n2,n3);
writeln('Bвeдiть елементи для массиву А:’);
for і: =1 to n1 do read (A[i]);
writeln(Bвedimь елементи для массиву В:’);
for і: = 1 to n2 do read (В[і]);
writeln ('Введіть елементи для массиву С:’);
for і: =1 to пЗ do read (C[i]);
writeln('Kількість від'ємних елементів в масивах А,В,С:');
ak(nl ,a);
ak(n2,b) ;
ak(n3,c);
END.
Для локальних змінних дозволяється вибирати за бажанням любе ім'я. Ідентифікатор локальної змінної не здійснює ніякого впливу на інші частини програми. Якщо в процедуру треба передавати в якості параметру не просто одне значення, а масив, то фактичним параметром повинно бути ім'я масиву. При цьому формальний параметр вказується після слова Var разом з типом масива. Сам опис масиву здійснюється у розділі Туре основної програми.
Переваги використання процедур:
- Економить пам'ять;
- Можливість використання одних і тих самих змінних.
Приклад: Заповнити масив випадковими числами від -50 до 50.
Procedure init (var m:mas);
Var і: integer;
Begin
For i: =1 to n do
M[i]: =-50+random(c);
End;
Де с описано в const c=100. В основній програмі йде виклик randomize;
