- •Для студентів заочної форми навчання
- •1 Рекомендації щодо написання та оформлення контрольної роботи
- •2 Завдання до контрольної роботи
- •Завдання 1
- •Лінійний обчислювальний процес
- •Короткі теоретичні відомості
- •1 Структура програми
- •1.2 Типи даних
- •1.3 Стандартні процедури введення/виведення даних
- •Варіанти задач
- •Контрольні питання
- •Завдання 2 Розгалужений обчислювальний процес Короткі теоретичні відомості
- •2.1 Умовний оператор
- •Варіанти задач
- •Контрольні питання
- •Завдання 3 Циклічний обчислювальний процес Короткі теоретичні відомості
- •3.1 Цикли. Конструкції for - to, for - downto
- •3.2 Оператори циклу з передумовою while - do
- •3.3 Оператор циклу з подальшою умовою repeat - until
- •Варіанти задач
- •Контрольні питання
- •Завдання 4 Робота з одновимірними масивами чисел Короткі теоретичні відомості
- •Варіанти задач
- •5.1 Дії над масивами
- •5.2 Дії над елементами масиву
- •5.3 Типові ситуації, що виникають при роботі з двовимірними масивами
- •Варіанти задач
- •3Авдання 6 Організація програм, що містять підпрограми користувача Короткі теоретичні відомості
- •6.1 Підпрограми. Функції та процедури, визначувані користувачем
- •6.2 Підпрограми-функції
- •6.3 Локальні та глобальні змінні
- •6.4 Процедури
- •Варіанти задач
- •Контрольні питання
- •3 Критерії оцінювання знань студентів
- •Список літератури
- •Зразок оформлення титульної сторінки контрольної роботи
- •Контрольна робота
- •Кременчук 20__
6.3 Локальні та глобальні змінні
Локальні змінні − це змінні, які описуються всередині підпрограми і можуть бути використані тільки цією підпрограмою.
Глобальні змінні − це змінні, які описуються в головній програмі і можуть бути використані як головною програмою, так і будь-якою з підпрограм.
Розглянемо приклад програми, яка використовує функцію.
Приклад
6.3.1.
Обчислити
математичний
вираз
,
результат вивести на друк.
program Pr_631;
var a, b, c, s, t: integer; {опис глобальних змінних}
function StepN (a, n: integer): integer;
var an, i: integer; {опис локальних змінних}
begin
an:= l;
for i:=l to n do an:= an*a;
StepN:= an
end;
begin
writeln('a, b, s, t: ');
read (a, b, s, t);
c:= StepN(a, s)+StepN(b, t)+StepN((a+b)3);
write('с=', c:5:2)
end.
Параметри, записувані в зверненні до функції, називається фактичними, а параметри, вказані в описі функції, називаються формальними.
У прикладі 6.3.1 а і n − формальні параметри. Фактичні параметри вказуються при кожному зверненні до функції StepN. Тип фактичних параметрів визначається типом формальних параметрів. Перед обчисленням функції формальним параметрам присвоюються значення фактичних параметрів. Фактичними параметрами можуть бути не лише константи і змінні, але також і вирази.
Наведемо ще один приклад підпрограми-функції.
Приклад 6.3.2. Написати підпрограму-функцію для обчислення гіперболічного косинуса: ch(ехр(х)+ехр(-х))/2.
function Ch (Т: real) : real;
begin
Ch:=(exp(T)+exp(-T))/2
end;
6.4 Процедури
Процедури − це такі підпрограми, які, на відміну від функцій, повертають декілька значень (результатів) або просто виконують ряд спеціальних дій.
Загальний вигляд опису процедури:
PROCEDURE <ім'я процедури> (<формальні параметри: тип);
Розглянемо приклад підпрограми-функції.
Приклад 6.4. Написати процедуру знаходження max і min елемента з двох цілих чисел а і b.
procedure minmax (aa, bb: integer; var min, max: integer);
begin
if aa>bb then
begin
min:= bb;
max:= aa;
end
else
begin
max:= aa;
min:= bb;
end
end.
Тут aa і bb − параметри-значення; a min, max − параметри-змінні.
Серед параметрів процедури виділяють параметри-значення і параметри-змінні. Параметри-значення виконують роль вхідних параметрів процедури. Вони можуть набувати значень фактичних параметрів, але не можуть передавати свої значення фактичним параметрам. Параметри-змінні виконують роль як вхідних, так і вихідних параметрів процедури. Вони можуть набувати значень фактичних параметрів, змінювати їх у процедурі та повертати нові значення фактичним параметрам. Для виділення параметрів-змінних перед ними ставиться слово VAR у формальних параметрах [1].
Приклад 6.5. Написати процедуру, яка обчислює квадрат і квадратний корінь суми трьох змінних речового типу а, b, c і присвоює отримані результати формальним змінним x і y відповідно.
procedure expres (a, b, c: real; var х, у: real);
var z: real;
begin
z:=a+b+c;
x:=sqr(z);
y:=sqrt(z);
end;
Цю процедуру можна викликати таким чином: expres(25.4, 53.6, 30, xl, yl).
В даному випадку процедура expres вичислить квадрат і квадратний корінь суми трьох змінних 16.4, 53.6, 30 і результати присвоїть фактичним змінним xl і у1 відповідно.
Допускається однакове позначення фактичних і формальних параметрів. Тип фактичних параметрів повинен відповідати типу формальних параметрів.
В якості фактичних параметрів, яким відповідають параметри-змінні, можуть бути тільки змінні; формальні параметри представлені тільки іменами (константи і вирази не допустимі).
Приклад 6.6. Написати процедуру, яка міняє місцями значення змінних а і b. В даному випадку параметри-змінні а і b виконують роль як вхідних, так і вихідних параметрів:
procedure excheng (var a, b: integer);
var t: integer;
begin
t:=a;
a:=b;
b:=t;
end;
