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

content: Підпрограми (процедури і функції)

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

content: Так, наприклад, програма знаходження об'єму конуса може містити декілька процедур: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.

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

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

content: Для того, щоб процедура змогла змінювати значення фактичних параметрів, потрібно змінити спосіб передачі параметрів в процедуру. Цей спосіб називається передачею по імені (змінні називаються параметрами-змінними).Задача. Дано дві трійки чисел: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);BeginMAX:=A;If MAXIf MAXBeginwrite(‘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.

content: Якщо результатом виконання деякої процедури є одне скалярне значення, то цю процедуру бажано оформити як функцію.Формат опису функції: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.