Лекция: Програмування з використанням процедур і функцій
Мета роботи. познайомитися з поняттями «процедура» і «функція» у мові програмування Pascal, розглянути їхні подібності і розходження, закріпити практичні навички роботи із системою TURBO Pascal на прикладі реалізації алгоритмів за допомогою процедур і функцій, навчитися застосовувати метод послідовної деталізації в практичному програмуванні; застосовувати процедури і функції при рішенні задач.
Часто в програмі виявляються однотипні ділянки, що виконують ті самі обчислення, але з різними даними. Такі частини програми доцільно оформляти у виді підпрограм. У мові Pascal існує два види підпрограм: процедури і функції.
Перед виконанням даної роботи необхідно вивчити правила опису процедур і функцій, механізм передачі параметрів, ознайомитися з поняттям локальної і глобальної змінної.
Приклад. Знайти суму додатних елементів у масиві.
Етапи рішення задачі:
1. Алгоритм рішення досить простий — у циклі будемо «пробігати» масив, порівнюючи його члени з 0 і додавати, якщо вони більші нуля.
2. Складемо блок-схему програми
Уточнимо з яких блоків складається блок «Додавання додатних елементів»
Зміст цих блоків не є складним, тому не варто їх уточнювати.
3. Напишемо програму мовою Паскаль
program example10; type Tarray = array[1..100] of integer; Var v: Tarray; N,i,s:integer; Procedure vvod_data(var m:Tarray;n:integer); Var i:integer; Begin Writeln('Уведіть ',n,' чисел через пробіл'); For i:= 1 to n do read(m[i]); End; Function summ(m:TArray):integer; Var s:integer; Begin S:=0; For i:= 1 to n do if m[i]>0 then s:= s+m[i]; Summ:=s; End; begin write('Уведіть розмірність масиву N= '); readln(n); vvod_Data(v,n); s:= summ(v); writeln('Сума= ',s); end.Контрольні питання
1. Для чого потрібні в програмі процедури і функції?
2. У чому відмінність між процедурою і функцією?
3. Чим відрізняються формальні і фактичні параметри?
4. Чим відрізняються параметри-значення і параметрі-змінні?
5. Як описуються глобальні і локальні змінні?
6. Чому при звертанні до процедури, аргумент, переданий параметр-змінної, може бути тільки змінною, а не константою чи виразом?