
- •Кафедра прикладної математики
- •Методичні вказівки та завдання для виконання контрольної роботи з дисципліни “Основи інформаційних технологій та програмування”
- •Методичні вказівки
- •Найпростіші програми на мові Pascal. Структура Pascal-програми
- •Оператори введення та виведення даних
- •Оператор присвоєння
- •Приклади програм:
- •Оператор розгалуження If. Оператор вибору Case.
- •Оператор вибору Case
- •Стандартні типи даних
- •Цілі типи даних
- •Дійсні типи даних
- •Символьний тип Char
- •Логічний тип Boolean
- •Приклади програм
- •Циклічні алгоритми.
- •Оператор циклу For.
- •Оператор циклу while.
- •Оператор циклу repeat - until
- •Організація циклів за допомогою оператора безумовного переходу goto
- •Приклади програм:
- •Приклад3. В цьому прикладі розглянемо задачу обчислення мінімального елементу масиву та його місцезнаходження.
- •Матриця в дійсних чисел розмірності 4*4, заповнена значеннями
- •Процедури та функції у мові Pascal.
- •Процедури без параметрів
- •Const{опис локальних констант}
- •Var {опис локальних змінних}
- •Процедури з параметрами
- •Функції в мові Pascal
- •Приклади програм
Процедури без параметрів
Опис процедури без параметрів має такий вигляд:
Procedure <ім’я процедури>;
Const{опис локальних констант}
Type{опис локальних типів}
Var {опис локальних змінних}
Begin
{тіло процедури}
End;
Розглянемо приклад процедури без параметрів Line, що малює на екрані в текстовому режимі горизонтальну лінію, утворену символами ‘*’.
Program Example2;
Procedure Line;
Var
i: Integer;
Begin
For i:=1 to 79 do
Write(‘*’);
Writeln;
End;
Begin
Line;
Writeln(‘Механічний факультет’); Line;
End.
Програма почне виконуватись з оператора, розміщеного після слова Begin основної програми. У нашому прикладі цим оператором є виклик процедури Line. При цьому програма перейде на виконання тіла процедури Line. Тобто, виконається послідовність операторів, записана між словами Begin та End процедури Line. В результаті, на екрані дисплею буде намальовано горизонтальну лінію символом ‘*’. Після завершення виконання процедури Line продовжиться виконання основної програми. Оператор Writeln виведе на екран заданий текст ‘Механічний факультет’. І знову відбудеться виклик процедури Line, яка намалює на екрані другу горизонтальну лінію символом ‘*’.
Процедури з параметрами
Для передачі даних у процедуру та отримання з неї результатів використовуються формальні та фактичні параметри. Формальні параметри – це умовні позначення в заголовку процедури. Реальні значення, які вказуються у дужках при виклику процедури і конкретизують значення формальних параметрів називають фактичними.
Кількість фактичних та формальних параметрів повинна співпадати, відповідні параметри повинні узгоджуватись за типами.
Нехай до попередньої програми ми хочемо додати можливість побудови лінії за допомогою різних символів та різної довжини. Тоді використаємо наступну процедуру з двома параметрами:
Program Example3;
Procedure Line(с: Char; n: Integer);
Var
i: Integer;
Begin
For i:=1 to n do Write(c);
Writeln;
End;
Begin
Line(‘-’,20);
Writeln(‘Механічний факультет’);
Line(‘+’,15);
End.
Змінні с та n – формальні параметри, які при першому виклику процедури набувають фактичних значень ‘-’ та 20, а при другому – ‘+’ та 15.
У даному прикладі ми передаємо значення параметрів лише у процедуру. Така передача параметрів називається передачею по значенню. Тому, фактичні параметри можуть бути не обов’язково змінними, а й виразами відповідного типу. Якщо ж ми хочемо не тільки передати, а й повернути результат із процедури у основну програму, то потрібно використовувати передачу параметра по імені. Для цього перед іменем змінної при описанні процедури слід вказати ключове слово var. Якщо слова var немає, то параметри передаються по значенню. Фактичний параметр, що передається у процедуру по імені обов’язково повинен бути змінною. Розглянемо приклад процедури, що повертає мінімум із двох дійсних чисел:
Procedure Min (a, b: Real; var m: Real);
Begin
If a<b then m:=a else m:=b;
End.
Викликом процедури Min може бути Min(3,102,x), Min(x, y, x), але не Min(x, y, 2). Перші два параметри a та b передаються по значенню лише у процедуру. Третій параметр m передається по імені. Його значення повертається у викликаючу частину програми.
Громіздкі структури даних рекомендується передавати по імені з метою економії оперативної пам’яті.