У конструкторській
діяльності, в навчальному процесі, у програмуванні і в інших галузях людської
діяльності під модулем розуміють незалежний блок, який виконує певну функцію,
необхідну для розв’язування деякої більш загальної задачі.
Наприклад, в рамках
програми підготовки кваліфікованих спеціалістів із спеціальності «Вчитель
трудового навчання та інформаційних технологій» під модулем ми розуміємо
програми підготовки загальноосвітніх дисциплін (філософія, історія), загальнотехнічних дисциплін (машинознавство, теоретична
механіка) і спеціальних дисциплін (методика трудового навчання, алгоритмічні
мови програмування, системне програмне забезпечення тощо). Кожний навчальний
модуль відповідає за певну галузь вашої освіти і всі необхідні для забезпечення
якісної вищої освіти з обраної спеціальності.
Що стосується
комп’ютерної програми, то в цьому випадку під програмним модулем (блоком)
розуміють самостійну частинку програми, яка забезпечує розв’язок деякої певної
задачі. Наприклад, у програмі можуть існувати модуль введення даних і модуль
друку результатів. Таким чином, програма, яка поділяється на модулі (блоки) під
час розробки блок-схеми і на наступних етапах програмування має модульну або
блочно-модульну структуру. Про таку програму зазвичай говорять, що вона
будується за принципом «згори униз», так як створення починається «згори» (з
розробки основного модуля і просувається униз до інших модулів, які входять у
основний модуль як складові частинки).
Таким чином, якщо ми
складну задачу розділили на модулі і для кожного модуля написали програму на
мові програмування, то ми одержали набір різних програм, які не можуть
працювати разом (сумісно). Отже, не забезпечують розв’язок основної задачі. Як
розв’язати цю проблему? Виявляється, що потрібно скласти стандартні
підпрограми.
Підпрограми призначенні
для реалізації алгоритмів опрацювання окремих частин деякої складної задачі.
В одній і тій ж програмі
окремі її частини можуть виконуватися одноразово, а інші – багаторазово.
Підпрограми доцільно
використовувати тоді, коли в різних місцях програми необхідно виконувати одну і
ту ж саму послідовність дій. Використання підпрограм полегшує програмування
задач, скорочуючи час на її розробку і зменшуючи зусилля. Отже, підпрограма –
це програма всередині програми.
Кожна програма може
складатись із великої кількості різних підпрограм
Підпрограми поділяються
на:
- Стандартні, які створювати
не потрібно вони містяться в стандартних модулях середовища. Наприклад,
програми обчислення найбільш використовуваних математичних функцій
(тригонометричні, логарифмічні, показникові тощо) оформлюються у вигляді
вбудованих стандартних програм. Для їх використання досить вказати в програмі
ім’я функції та значення аргументу, при якому вона має обчислюватися.
- Підпрограми
користувача – це пойменована група команд, яку створює і описує в основній
програмі сам користувач і до якої він може звертатися з будь-якого місця
програми потрібну кількість разів.
Залежно від прийнятих
правил оформлення і використання розрізняють різні типи підпрограм:
– підпрограми-процедури;
– підпрограми-функції.
Принципова відмінність
між ними полягає в тому, що функція повертає значення у місце виклику, а
процедура – ні.
Мови програмування
відрізняються різними способами оформлення «своїх» підпрограм і звертанням до
них, однак загальним є те, що будь-яка підпрограма розробляється для
абстрактних (формальних) параметрів. При звертанні до підпрограми необхідно
передати їй фактичні параметри. Це означає, що всі формальні параметри повинні
прийняти досить визначенні значення, за яких і повинна виконуватись
підпрограма.
У мові Pascal правила опису підпрограм такі:
- процедури і функції
описуються в основній програмі після розділу опису змінних;
- структура процедур і
функцій аналогічна структурі програми (заголовок, розділи описів і оголошень,
виконувана частина між словами begin i end);
- після слова end ставиться крапка з комою.
Підпрограма-процедура
відрізняється від підпрограми-функції тим, що вона, виконуючи потрібні дії, не
повертає ніякого значення.
Тому можна сказати, що
процедура – частковий випадок функції.
В деяких мовах,
наприклад мові С, процедур взагалі немає і всі підпрограми описуються у вигляді
функцій.
Розглянемо загальний
опис функції:
function <ім’я>
(<список формальних параметрів>):<тип>;
<розділ описів і оголошень
функції>;
begin
<розділ команд функції>
end;
У розділі команд функції
обов’язково повинен бути оператор присвоєння імені функції значення результату:
<ім’я функції >:=результат;
Результат функції
повертається в основну програму через її ім’я (за аналогією з використанням
стандартних функцій sin, cos)
із зазначенням фактичних параметрів. Під час виклику функції тип не вказується:
<ім’я >
(<список фактичних параметрів >);
Використання підпрограм-функцій для створення
алгоритмів розв’язку задач.
Створити функцію для
обчислення tg(x) і обчислити значення виразу.
program MyFunc2;
var x, y: real;
function tg (z: real): real;
begin
tg:=sin(z)/cos(z);
end;
begin
writeln (‘введіть x ’);
readln (x);
y:=tg(x)+sqr(tg(x))+1/tg(x);
writeln (‘y=’,y:5:2);
readln;
end.
Загальний опис процедур:
procedure <ім’я> (<список формальних
параметрів>);
<розділи
описів і оголошень процедури>
begin
<розділ
команд процедури>
end;
Як видно із заголовка,
процедура може бути і без параметрів. У цьому випадку вказується тільки ім’я
процедури.
Список формальних
параметрів – це перелік імен параметрів (змінних) разом із зазначенням їхніх
типів.
Приклади:
1) Procedure
Summa (var a,b: real; c:integer);
2) Procedure
Gamma;
3) Procedure
Obem (r,h,v: real);
4) Procedure
Poshuk (var a:char;
b:integer; c:real);
Контрольні запитання:
1. Поняття підпрограми.
2. Відмінність між
процедурами і функціями.