Завдання (інструкційна картка) для лабораторної роботи
Тема дисципліни. Використання підпрограм у Turbo Pascal
Інструкційна картка
Лабораторного заняття № 10
Тема. Організація програм, що містять процедури та функції
Мета заняття. Сформувати практичні вміння та навички створювати програми з використанням процедур та функцій, обчислювати функції, використовуючи звернення до підпрограми розглянути приклади створення програм з використанням функцій. Формувати якості особистості студентів та пізнавальний інтерес; показати значення теми для програмування та розв’язування задач; спонукати до пізнавальної, наукової, творчої діяльності; розвивати самостійність, увагу, відповідальність та творче мислення.
Методичне забезпечення
1. Глинський Я. М. Паскаль: навчальний посібник / Глинський Я. М., Анохін В. Є., Ряжська В. А. – Львів: СПД Глинський, 2010. – 192 с.
2. Нога Л. В. Конспект лекцій з дисципліни “Основи програмування та алгоритмічні мови” Частина 1 і 2 / Нога Л. В. – Херсон: Веселка, 2006. – 134 с.
3. Інструкційні картки.
Матеріально-технічне забезпечення
1. Комп’ютери, конспекти лекцій, конспекти практичного заняття.
2. Інструкційні картки до лабораторного заняття, роздруковані завдання по варіантах.
Питання для актуалізації опорних знань
1. Які види підпрограм використовують у мові Pascal?
2. Що таке функція?
3. Як викликається функція?
4. Що таке процедура?
5. Як викликається процедура?
6. Що таке формальні параметри?
7. Що таке фактичні параметри?
8. Що таке глобальні змінні?
9. Що таке локальні змінні?
Правила техніки безпеки
Перед початком роботи потрібно перевірити стан обладнання, робочого місця.
Під час роботи потрібно дотримуватися правил експлуатації комп’ютерного обладнання.
При роботі за комп’ютером слід дотримуватись правил особистої безпеки, зберігати відстань від рівня очей до монітора, від робочого стола до тіла.
Забороняється ходити по комп’ютерній лабораторії, розливати рідину на підлогу, столи, обладнання, заходити з їжею, розмовляти між собою.
Загальні відомості з теми
У мові програмування Паскаль існують два види підпрограм – процедури та функції, які відрізняються за призначенням та їх використанням.
Процедури використовують для виконання послідовності дій, призначених змінити свою зовнішню, по відношенню до них, програмну обстановку. Наприклад, введення значень аргументів або вивести отриманий результат роботи, змінити значення змінних за певним правилом.
Функції, у першу чергу, визначають алгоритми обчислення нових значень змінних, що і є результатом їх виконання. Викликавши функцію, ви отримаєте єдине значення, що і є її результатом.
Будь-яка процедура у мові програмування Паскаль має таку структуру:
Procedure<назва процедури> (<змінна_1>:<тип змінної_1>; <змінна_2>:<тип змінної_2>;var <змінна_3>:<тип змінної_3>);
Const< опис локальних сталих >;
Type< опис локальних типів користувача >;
Var< опис локальних змінних >;
< опис вкладених процедур та функцій >;
Begin
< тіло процедури >
End;
Службове слово Procedure вказує, що описувана підпрограма буде саме процедурою. Далі записують ім’я (назву) процедури, необхідну для подальшого її виклику, а після назви в дужках – імена змінних із зазначенням їх типу. Ці змінні називають формальними параметрами процедури, а дію з ними описують у тілі самої процедури. Формальні параметри можуть бути лише скалярного (простого) типу.
Наступна описова частина процедури може містити опис змінних, потрібних для організації дій у самій процедурі. Тому сталі та змінні, що описуються та використовуються у процедурах і функціях, називають локальними параметрами. Необхідну для збереження їх значень пам’ять система відводить лише під час виконання цих підпрограм. Після їх виконання пам’ять від них вивільняється.
Параметри, значення яких передають у підпрограму під час її виклику, називають фактичними.
Заголовок процедури після її назви містить список формальних параметрів, оскільки в процедурі ми визначаємо можливість існування довільного трикутника і обчислюємо значення його площі.
Під час виклику процедури формальні параметри повинні набувати значень відповідних фактичних, тобто між списками формальних та фактичних параметрів має бути взаємно однозначна відповідність.
Параметри, що описані в заголовку підпрограми і під час її виклику набувають значень відповідних фактичних параметрів, називають формальними.
Загальна структура функції збігається із структурою процедури, за виключенням заголовку.
Загальний опис функції:
Function<назва функції> (<список формальних параметрів>):<тип результату>;
Const< опис локальних сталих >;
Type< опис локальних типів користувача >;
Var< опис локальних змінних >;
< опис вкладених процедур та функцій >;
Begin
< тіло процедури >
<назва функції>:=<вираз>;
End;
Таким чином, викликавши функцію, ви завжди маєте отримати результат її виконання, тип якого описали в заголовку функції. Для цього в тілі функції має бути оператор, у якому відбувається присвоєння результату ідентифікатору функції:
<назва функції>:=<вираз>;
Проте назва функції ніколи не може брати участь у запису будь-яких оператрів, крім результату роботи функції, тобто ідентифікатор (назва) функції не може брати участь в обчисленнях.
Якщо ж потрібно виконати певні обчислення, що змінюють значення результату функції (наприклад, подвоїти результат роботи функції), то для цього використовують локальні змінні, а вже потім присвоюють їх значення назві функції.
Розглянемо використання процедури на прикладі програми пошуку максимуму з двох цілих чисел.
Program zm;
var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;
begin
write('Введіть x,y ');
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln('m=',m,'n=',n);
end.
Аналогічну задачу, але уже з використанням функцій, можна вирішити так:
Program zm;
var x,y,m,n: integer;
function MaxNumber(a,b: integer): integer;
var max: integer;
begin
if a>b then max:=a else max:=b;
MaxNumber:= max;
end;
begin
write('Введіть x,y ');
readln(x,y);
m:= MaxNumber(x,y);
n:= MaxNumber(2,x+y);
writeln('m=',m,'n=',n);
end.
Зміст роботи
1. Вивчити теоретичний матеріал.
2. Виконати індивідуальне завдання.
3. Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, описати програму, привести контрольний приклад виконання програми.
Індивідуальні завдання
Створити блок-схему та програму на мові Pascal для обчислення функції, z = f (x,y), використовуючи звернення до підпрограми. Вигляд функції z та функції, до якої звертатись з допомогою підпрограми, задано в таблиці:
Методичні РЕКОМЕНДАЦІЇ
1. Для виконання лабораторної роботи потрібно перш за все опрацювати теоретичний матеріал.
2. Виконати індивідуальне завдання.
3. Показати результат роботи викладачеві.
4. Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, тобто створити блок-схему, описати програму (лістинг програми з коментарями), привести контрольний приклад виконання програми (результат роботи програми).
5. Здати робоче місце, а оформлений звіт – викладачеві на підпис.
6. Під час виконання лабораторної роботи дотримуватися правил безпеки.