Ізяславський НВК 2, Гульчак І.В. Підпрограми. Підпрограми-процедури
Призначення та застосування підпрограм При розробці програми іноді зявляються повторювані групи дій або виникає необхідність поділити програму на функціональні модулі, зробити її структуру ієрархічною. Для цього у всіх мовах програмування існують засоби організації підпрограм. При розвязанні складної задачі рекомендується алгоритм розробляти зверху вниз, від більш загального до детального. Використання підпрограм дозволяє розроблювати програму частинами, доручати реалізацію великих проектів окремим групам розробників.
Означення та типи підпрограм ПІДПРОГРАМА – це спеціально оформлений алгоритм, який можна використовувати багато разів при розвязуванні задач. Підпрограми поділяються на стандартні та підпрограми користувачів. Стандартні – Crt, System, Graph, Dos. В Паскалі розрізняють 2 типи підпрограм: підпрограми-процедури і підпрограми- функції.
Локальні та глобальні змінні ЛОКАЛЬНИМИ називаються змінні, що описані в допоміжних алгоритмах. ГЛОБАЛЬНИМИ називаються змінні, що описані в основному алгоритмі. Основна програма А, В, С Підпрограма1 X,Y Підпрограма2 M,N Підпрограма3 K,P глобальні ? локальні
Опис підпрограми-процедури Procedure ( ); Begin ; End; У списку формальних параметрів перераховують змінні разом із зазначенням їх типів. Розрізняють параметри-аргументи (вхідні дані) і параметри-результати, перед яким ставлять ; і var.
Приклад підпрограми-процедури Обчислити вартість (c) k хвилин розмови з щохвилинною оплатою 0,6 грн. з врахуванням ПДВ 20%. Procedure cina(k:integer; var c:real); Begin c:=k*0.6; c:=c+0.2*c; End;
Звернення до процедури ( ); Параметри-аргументи можуть бути сталими, змінними, виразами. Параметри-результати – тільки змінні! Приклади: Cina(5,c); cina(k+1,c1)
Розвязати задачу з використанням підпрограми-процедури Є три планети – Земля, Марс, Місяць. Знаючи їх радіуси, обчислити площі поверхонь та обєми.
Program planetu; var i,r:integer; s,v:real; name:string; const pi=3.14; procedure planeta(r:integer; var s,v:real); begin s:=4*pi*r*r; v:=4/3*pi*r*r*r; end; Begin for r:=1 to 3 do begin writeln(Введіть назву планети та її радіус); readln(name,r); planeta(r,s,v); writeln(name:10, s=,s:8:3, v=, v:8:3); end End. звернення до процедури опис процедури