Презентація "Підпрограми"

Попередній слайд
Наступний слайд


Завантажити презентацію "Підпрограми"
Слайд #1
Підпрограми (процедури і функції)


Слайд #2
Підпрограмою – називається найменована логічно закінчена група вказівок, яку можна викликати для виконання довільну кількість раз з різних місць програми.
Процедура – це незалежна найменована частина програми, призначена для виконання конкретних дій.
Процедура складається із заголовка і тіла.
Формат запису процедури: Procedure <ім'я процедури>; <тіло процедури >; Використання процедур дає можливість підвищити продуктивність праці, зробити програму більш наочною, спростити розробку програми,...


Слайд #3
Так, наприклад, програма знаходження об'єму конуса може містити декілька процедур:
procedure InputDate;
procedure Vkazivka;
procedure OutputDate;
procedure InputDate виконує введення даних в програму.
procedure Vkazivka виконує вказівки для знаходження об'єму конуса.
procedure OutputDate виконує виведення даних на дисплей.
Наприклад. Задача. Скласти програму знаходження об'єму конуса.
Program Vkonus;
Const p=3.14;
Var R,H,V:real;
procedure InputDate;
Begin write(‘r=’);
Readln (R);
write(‘h=’);
Readln (H); end;
procedure Vkazivka;
Begin V:=p*sqr(R)*H/3; end;
procedure OutputDate;
Begin writeln (‘V=’,V); end;
Begin {Основна програма}
InputDate;
Vkazivka;
OutputDate;
End.


Слайд #4
У процедурі можна оголошувати константи, змінні, інші процедури та функції. Розділ опису в процедурах має таку саму структуру, як і в основній програмі.
Оголошенні всередині процедури змінні називаються локальними по відношенню до даної процедури. Локальні змінні не можуть бути доступні поза межами даної процедури.
Змінні, які використовуються в процедурі, але описанні поза нею, називаються глобальними по відношенню до даної процедури. Будь-які зміни глобальних змінних всередині процедури змінюють значення цих змінних поза процедурою.
Program Lokalizacia;
Var A,B:real;
procedure Lokal;
Var A,X:char;
Begin
A:=‘:’;
X:=‘?’;
B:=B+1;
end;
Begin {Основна програма}
A:=0;
B:=100;
Lokal;
Writeln (‘a=‘,A,’b+’,B);
End.


Слайд #5
Після заголовка процедури в круглих дужках можуть вказуватись змінні (з допомогою яких в процедуру передаються дані) і їх типи, які називаються параметрами-значеннями. Змінні, які описанні в заголовку процедури є формальними параметрами. Змінні або константи, які описанні у вказівці процедури є фактичними параметрами.
Program Perrymetr;
Var C,D:integer;
procedure PARAM(A,B:integer);
Var S:integer;
Begin
S:=0;
S:=A+B;
Writeln (‘s=’,S);
end;
Begin {Основна програма}
C:=10; {1-й спосіб}
D:=100;
PARAM(C,D);
PARAM(100,100); {2-й спосіб}
End.


Слайд #6
Для того, щоб процедура змогла змінювати значення фактичних параметрів, потрібно змінити спосіб передачі параметрів в процедуру. Цей спосіб називається передачею по імені (змінні називаються параметрами-змінними).
Задача. Дано дві трійки чисел:A1,B1,C1,A2,B2,C2. Знайти значення сум:
S1=min(A1,B1,C1)+min(A2,B2,C2)
S2=max(A1,B1,C1)+max(A2,B2,C2)
Program Priklad;
Var A1,B1,C1,A2,B2,C2,MIN1,MAX1,MIN2,MAX2,S1,S2:real;
Procedure MinMax(A,B,C:real; var MIN,MAX:real);
Begin
MAX:=A;
If MAX If MAX Begin
write(‘A1=’); Readln (A1); write(‘B1=’); Readln (B1); write(‘C1=’); Readln (C1);
write(‘A2=’); Readln (A2); write(‘B2=’); Readln (B2); write(‘C2=’); Readln (C2);
MinMax(A1,B1,C1,MIN1,MAX1);
MinMax(A2,B2,C2,MIN2,MAX2);
S1:=MIN1+MIN2;
S2:=MAX1+MAX2;
Writeln (‘S1=’); writeln (‘S2=’);
End.


Слайд #7
Якщо результатом виконання деякої процедури є одне скалярне значення, то цю процедуру бажано оформити як функцію.
Формат опису функції:
Function <ім'я функції>(список формальних параметрів):<тип результату>;
Задача.
Знайти значення числа комбінацій n!
C=n!/m!(n-m)!
Program Kombinacij;
Var N,M,C:integer;
function FACT(K:integer):integer;
Var i,F:integer;
Begin F:=1;
For i:=1 to K do F:=F+i;
FACT:=F; end;
Begin {Основна програма}
Begin write(‘n=’);
Readln (N);
write(‘m=’);
Readln (M);
C:= FACT(N)div(FACT(M)* FACT(N-M));
Writeln(‘Кількість комбінацій з ‘,n,’по ‘,m,’=’,C);
End.