Реферат на тему:

Підпрограми — процедури та функції

В мові Паскаль використовується два види підпрограм — процедури та
функції. Вони відрізняються між собою структурою та способом виклику.

При проектуванні програми визначається, які частини алгоритму треба
реалізувати як процедури, а де знадобиться функція. В головній частині
програми підпрограми розташовуються після розділу опису даних перед
оператором Begin, а викликаються при потребі в процесі виконання
головної програми або іншої підпрограми. 

Структура процедури має вигляд: 

Procedure ім’я (список формальних параметрів);

         Розділ локальних даних

   Begin

         … {розділ виконавчих операторів}

   End;

Перший рядок складає заголовок процедури, ім’я процедури вибирає
програміст так як і ім’я змінної. В списку формальних параметрів
описуються через ; параметри та інформація про їх тип. Деякі параметри
призначені для передачі даних в процедуру, інші для повернення
результатів з процедури до тієї програмної одиниці, яка її викликала.

В розділі локальних даних (який взагалі може бути відсутнім) описують ті
дані, які використовуються тільки для «службових» цілей в самій
процедурі (параметри циклів, робочі змінні та масиви, тощо).

Всередині підпрограми записують послідовність операторів, які реалізують
потрібний алгоритм. При цьому вони працюють з формальними параметрами,
локальними та глобальними даними.

Зв’язок між окремими частинами програми здійснюється через списки
формальних параметрів та за допомогою глобальних змінних.

Глобальні дані описуються в головній програмі вони не являються
фактичними параметрами при виклику підпрограм, не описані в
підпрограмах, а використовуються в одній з них і в головній програмі.

Результати роботи підпрограми можуть бути передані до головної програми
через формальні параметри та глобальні дані.

Приклад. Програма обчислення суми десяткових цифр.

Програма:

Const N=5;

Var X:Array [1..N] of Integer;

       SumX, Kill,I : Integer;

Procedure Sum(A:Integer; Var ISum:Integer);

  Begin

’ ” H

R

L N ` b ¬ ® i ? oe

X

Z

\

^

b

j

p

oiaAE¶F?F?FrF?F?[?F?F?F[?[?F?F?F?F[?- h®

3 h®

^

p

??o

??????o?p

:!T!?»1/4″O»U»TH»a»a»oe#o#b$d$?$?$?$?$u$ue$th$»%$%(%2%4%6%F%iOiOiOiOiOi
OiOi3/41/43/4i3/4i3/4iO3/4OiOiOiOc?r?Orircrir+ h®

3 h®

3 h®

— h®

— h®

% h®

??o?um:=0;

    While A<>0 do

      Begin

        Kill:=Kill+1;

        ISum:=ISum+Abs(A) mod 10;

        A:=A div 10;

     End;

  End;

Begin

  Writeln(‘Введіть масив’);

  For I:=1 to N do Read(X[i]);

  Kill:=0;

  For I:=1 to N do

    Begin

      Sum(X[I], SumX);

      Writeln(X[I]:6, SumX:4);

    End;

  Writeln(‘Загальна кількість цифр’, Kill);

End.

 

Підпрограми-функції використовуються для реалізації алгоритму та
повернення в головну програму одного результату в вигляді імені функції.

Ім’я функції вибирається довільно (як ім’я змінної).

Структура функції:

Function ім’я(список формальних параметрів): тип імені;

  {локальні дані}

  Begin

    …

              ім’я := …;

              …

            End;

Типом функції може бути скалярний тип, тобто: цілий, дійсний, логічний,
символьний та рядковий тип String.

Відносно формальних параметрів, локальних та глобальних даних в функції
діють такі ж самі обмеження та вимоги, що і в процедурах.

В виконавчій частині підпрограми-функції повинен бути хоча б один
оператор в якому імені функції: призначається значення.

Звернення до функції виконується з якого-небудь арифметичного виразу
так, як і до стандартних функцій тину sin(x), ln(x), тощо. Результат
роботи функції передається в місце її виклику.

Приклад. Використання функції для обчислення степені.

Програма:

Var x,y,z : Real ;

Function Step(a:real; b:real):real;

 Begin

  If a<=0 then    Begin                 Writeln( 'перевірте дані');                  Halt(0);              End;              If b=0 then Step:=1                        else Step:=exp(b*ln(a));             End; Begin  Readln(x:y);    Z:=Step(x,y)+Step(y,x);  Writeln(x,y,z); End.

Похожие записи