процедури и функции. Процедури и функции в Pascal

процедури и функции.  Процедури и функции в Pascal
процедури и функции. Процедури и функции в Pascal

8 клас. Програмирането е включено Език ABCПаскал

Учител по информатика, NIS, Уралск FMN Зеленов Борис Александрович


  • Студентите използват процедури и функции за решаване на проблеми
  • Учениците се учат да решават големи проблеми, като ги разделят на по-малки.

  • Да се ​​формира концепцията за процедури и функции в език за програмиране.

  • Студентите познават понятията „процедури” и „функции”, определя формалните и действителните параметри

Очаквани резултати - Дескриптори:

1. Познава определението за „процедура“

2. Познава определението за "функция"

3. Определя действителните и формалните параметри

4.Разграничава стойностите на параметрите и променливите

5. Намира извикване на процедура или функция в програмния код



Стандартният план на Елвира

1. Премахнете хартията

2. Поливайте цветята

3. Измийте бюрата

4. Избършете стъклото

Край на алгоритъма

Как да подобрим организацията на този процес?




Тема на урока

Съчетания:


Ишки багдарлам

подпрограма

Процедура

Процедура

Параметър

Полезни фрази:

За да предадете стойностите на променливите към процедурата (функцията), се използват действителните параметри ...

За да се опише процедурата, трябва първо ...., след това ...


Концепцията за подпрограма

Определение

подпрограмае отделна функционално независима част от програмата.

подпрограми

Процедури


  • премахване на необходимостта от многократно повтаряне на подобни фрагменти в текста на програмата;
  • подобряване на структурата на програмата, което я прави по-лесна за разбиране;
  • повишава устойчивостта към програмни грешки и непредвидени последствия по време на програмни модификации.

  • Начертайте ограда с помощта на език за програмиране

В тази задача можете да създадете процедура, която ще изпълни алгоритъма за изчертаване на един фрагмент (ограда) и след това постоянно се позовавайте на тази процедура, променяйки първоначалната позиция на писалката


  • Опишете как рационално да нарисувате коледно дърво в среда за програмиране

  • Те са независими фрагменти от програми, проектирани по специален начин и имащи собствено име.

Взаимодействие между основна програма и подпрограма



блокова схема

  • Блок за извикване на подпрограма (процедура или функция)

Име на подпрограма (процедура или функция)


блокова схема


Описанието на процедурата изглежда така:

процедураиме (списък с формални параметри); раздел описание започвамоператори край ;


Описанието на функцията изглежда така:

функцияиме (списък с формални параметри): тип връщане;

раздел описание започвамоператори край ;


Местоположение в програмата

програма ...;

//Секция с описание Използва, Const, Var, ...

процедура А ;

започвам ....... край ;

процедура б ;

започвам ........ край ;

Функция C ;

започвам ........ край ;

//Основна програма

започвам ........ край .


  • Разликата между функция и процедура е, че резултатът от изпълнението на операторите, които формират тялото на функцията, винаги е една стойност, така че извикването на функцията може да се използва в съответните изрази заедно с променливи и константи.

Процедури

Функции

Може да има множество резултати или да извърши някакво действие

Тя има само един резултат, чийто тип се посочва отделно при декларирането на функцията.

Резултатите могат да бъдат всякакъв вид масиви, низове, числа и др.

Резултатът може да бъде само реална, цяло число или char стойност.

Командата за извикване на процедура е отделна команда, която се използва независимо.

Извикването на функция може да се използва само като компонент на израз от съответния тип.

Тялото на функцията трябва да съдържа поне един оператор за присвояване, от лявата страна на който е посочено името на функцията.


b тогава max:=a else max:=b; MaxNumber:= max; край;" ширина="640"

Процедура или функция?

MaxNumber(a,b: цяло число): цяло число;

var max: цяло число;

MaxNumber:= max;


b тогава max:=a else max:=b; край;" ширина="640"

Процедура или функция?

MaxNumber(a,b: цяло число; var max: цяло число);

if ab then max:=a else max:=b;


Процедура или функция?

ChangeColor(C1, C2: Word);

TextBackGround(C2)


Процедура или функция?

Добавяне (X, Y: цяло число): цяло число;


Действително

  • Посочено в раздела на основната програма

Официално

  • Посочено в подпрограмата
  • Посочено в подпрограмата

Извикването на процедура се прави от израз, който има следния формат:

име на процедура (списък на действителните параметри);

  • Списък на действителните параметрие тяхното изброяване, разделено със запетаи.

  • В езиковия стандарт Pascal параметрите могат да се предават по два начина – по стойност и по референция. Извикват се параметри, предавани по стойност стойностни параметрипредадено чрез справка - променливи параметри. Последните се отличават с това, че са предшествани от служебната дума var в заглавието на процедура (функция).

Предаващи параметри. Формални параметри

Променливи

Стойности

Параметри по стойност

Формални параметри

Променливи


Формални параметри

Параметри по стойност

  • При първия метод (преминаване по стойност) стойностите на действителните параметри се копират в съответните формални параметри.

Процедура

Име Процедура (a, b: цяло число);

Основна програма

Ако тези стойности се променят по време на изпълнение на процедурата (функцията), първоначалните данни (действителните параметри) не могат да се променят


Var c, d: цяло число;

  • При преминаване по референция всички промени, които се случват в тялото на процедура (функция) с формални параметри, водят до незабавни подобни промени в действителните параметри, съответстващи на тях.

Процедура

Име Процедура (a, b: цяло число, Var c: реално);

Основна програма

Настъпват промени в променливите на извикващия блок, така че изходните параметри се предават по референция. Когато бъдат извикани, действителните параметри, съответстващи на тях, могат да бъдат само променливи.


Пишеш:

1. Действителни параметри ___________

Процедура Kvad(R: real; var S: real);

2.Формални параметри ___________

3. Формални параметри-стойности __________

5. Име на процедурата ___________

6. Извикване на процедурата от програмата _____________________


Интерактивна задача

http://www.bzfar.net/load/podprogrammy_procedury_i_funkcii_parametry/23-1-0-498


Елвира е ръководител на класа. Тя ще трябва да направи план за общото почистване на класната стая: да махне хартията, да полее цветята, да измие чиновете, да избърше прозорците. Какъв е най-добрият начин тя да организира работата си? Помогнете на Елвира.


Разширен план Елвира

Съчетания:

Арсен - премахва хартии

Мила полива цветя

Виталий - мие бюра

Индира - избърсва стъкло

1. Стартирайте Арсен

2. Бягай Мила

3. Бягайте Виталий

4. Стартирайте Indira

Край на алгоритъма


  • С какви нови структури на езика за програмиране се запознахме днес?
  • Назовете изследваните параметри
  • Как се предават параметрите на процедура?

  • Обобщение на урока
  • Намерете дефиниции: „Локални променливи“ и „Глобални променливи“
  • Съставете две задачи, в които могат да се използват процедури или функции.

  • Как бихте определили темата на урока? (измисли си собствено име)
  • Какво мислите, че трябва да научите в следващия урок?

Да се ​​срещнем

следващия урок!

Да се ​​насладите предварителен прегледпрезентации създайте акаунт ( сметка) Google и влезте: https://accounts.google.com


Надписи на слайдове:

Процедури и функции в Pascal. Рекурсия Извършва се от учителя по компютърни науки GBOU училище 1362 Санина Марина Сергеевна

Подпрограма - автономна част от програмата, която изпълнява определен алгоритъм и позволява достъп до него от различни части обща програма. Използването на подпрограми ви позволява да приложите един от най-модерните методи за програмиране - структурно програмиране.

подпрограми процедура функция ПРОЦЕДУРА ФУНКЦИЯ

Процедурите и функциите в Pascal се декларират в раздела за описание зад раздела за променливи.

Функциите и процедурите имат параметри (променливи, които предават стойност). Те биват два вида: 1) Формални – тези, които са в описанието на подпрограмата 2) Действителни – тези, които се прехвърлят от основната програма към функция или процедура. Реалните параметри трябва да съвпадат с формалните по брой, ред и вид.

Освен това подпрограмата има променливи. с когото ще продължи да работи. Те отново се разделят на два типа: 1) Глобални променливи, т.е. действащи в цялата програма 2) Локални - тези, които действат само в процедура или функция

Процедури Използва се, когато една подпрограма трябва да получи множество резултати. Има два вида процедури: с параметър; без параметър.

Структурата на процедурата е подобна на тази на програмата и се състои от заглавка и блок (тяло на процедурата). процедура ProcedureName; var … begin …//Край на тялото на процедурата; начало // край на основното тяло на програмата.

Процедури без параметри процедура pr; var i: цяло число; begin за i:=1 до 60 do write (‘ * "); writeln ; end . begin pr ; end. Тази програмаизвежда низ от 60 звездички.

процедура с параметър. Напишете програма за размяна на местата на две числа c=5 и d=7 програма obmenDan ; var c,d:цяло число; процедура obmen(a,b:цяло число); var m:integer; beginm:=a; a:=b; b:=m; writeln(a,b); край; begin writeln("Въведете 2 числа: "); readln(c, d); obmen(c,d) ; writeln(c," ",d); край.

Анализ на проблема 1) при извикване на процедурата obmen с два параметъра 5 и 7, числата 5 и 7 също се поставят съответно в променливите a и b: с 5 d 7 a 5 b 7

За да могат променливите c и d, a и b да се отнасят до едни и същи клетки от паметта (ако стойностите на a и b се променят, тогава стойностите на c, d също ще се променят), когато описвате формалните параметри, добавете думата VAR преди необходимите променливи: procedure obmen (var a,b:integer); c 5 d 7 a b

Функции Наборът от вградени функции в Pascal е доста широк (ABS, SQR, TRUNC и др.). Ако в програмата е включена нова, нестандартна функция, тя трябва да бъде описана в програмния текст, след което може да бъде достъпна от програмата. Извикването на функцията се извършва от дясната страна на оператора за присвояване, като се посочва името на функцията и действителните параметри. Една функция може да има свои собствени локални константи, типове, променливи, процедури и функции. Описанието на функциите в Pascal е подобно на описанието на процедурите.

Отличителни черти на функциите: - резултат от изпълнение - една стойност, която се присвоява на името на функцията и се прехвърля в основната програма; - името на функцията може да бъде включено в израза като операнд.

Описание на функцията: функция () : тип; (секция за описание на локално име) Начало (секция с изпълними изрази) :=; ( задължителен параметър ) End;

Извикване на функция: := (); 1 . От дясната страна на оператора за присвояване. 2. В израз в условието на оператора за разклоняване. 3. В изходната процедура, в резултат на функцията.

Рекурсивни процедури и функции в Pascal могат да се самоизвикват, т.е. имат свойството рекурсивност. Рекурсивната функция трябва непременно да съдържа условие за рекурсивно прекратяване, за да не доведе до зацикляне на програмата. Всяко рекурсивно извикване създава нов набор от локални променливи. Тоест променливите, разположени извън извиканата функция, не се променят.

Съставете рекурсивна функция, която изчислява факториела на число n, както следва: n ! = 1 ако n= 1 n!= (n -1)! n, ако n > 1

функция f(n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функция f извиква сама себе си) end ;

Задачи Променете стойностите на променливите a, b, c, така че да са подредени в ненамаляващ ред (a ≤ b ≤ c). Дадени са n цели числа. Намерете сред тях числото, чиято сума от цифри има максимална стойност.


Подпрограми Често в дадена задача искате да повторите определена последователност от изрази в различни части на програмата. За да се опише тази последователност веднъж и да се приложи многократно, в езиците за програмиране се използват подпрограми. Подпрограмата е специално проектиран програмен блок за по-нататъшното му повторно използване в основната програма.Използването на подпрограми ви позволява да приложите един от най-модерните методи за програмиране - структурно програмиране.


Подпрограмите решават три важни задачи, които значително улесняват програмирането: 1. премахване на необходимостта от многократно повтаряне на подобни фрагменти в текста на програмата, т.е. намаляване на обхвата на програмата; 2. подобряване на структурата на програмата, което я прави по-лесна за разбиране при анализиране; 3.намалете възможността за грешки, повишете устойчивостта към програмни грешки и непредвидени последствия по време на модификация.


Процедури и функции В Pascal има два вида подпрограми: процедура (PROCEDURE) и функция (FUNCTION). Процедурите и функциите в Pascal се декларират в раздела за описание зад раздела за променливи. Програма Име на програма; VAR … // раздел от описанието на променливите на основната програма; процедура ProcedureName; var … начало … // Край на тялото на процедурата; начало //край на основното тяло на програмата.


Функциите и процедурите имат параметри (променливи, които предават стойност). Те биват два вида: 1) Формални – тези, които са в описанието на подпрограмата 2) Действителни – тези, които се прехвърлят от основната програма към функция или процедура. Реалните параметри трябва да съвпадат с формалните по брой, ред и вид.




Процедури Процедурите се използват, когато трябва да се получат няколко резултата в една подпрограма. В Pascal има два вида процедури: процедури с параметри и без параметри. Процедурата се извиква с името на процедурата, последвано от действителните параметри. Когато се извика процедура, се установява едно-към-едно съответствие между действителните и формалните параметри, след което управлението се прехвърля към процедурата. След изпълнение на процедурата управлението се прехвърля на следващия, след извикването на процедурата, оператор на извикващата програма.


Пример 1: Процедура без параметри, която отпечатва низ от 60 звездички. процедура pr; var i: цяло число; начало за i:=1 до 60 do write(* "); writeln; край; начало пр; край.


Пример 2. Напишете програма за размяна на местата на две числа c=5 и d=7 програма obmenDan; var c,d:цяло число; процедура obmen(a,b:цяло число); var m:integer; beginm:=a; a:=b; b:=m; writeln(a,b); край; begin writeln("Въведете 2 числа: "); readln(c, d); промяна (c, d); writeln(c," ",d); край. c5 d 7 a 5 b 7 a 7 b 5 3), но данните в променливи c и d не са се променили, те са в други клетки на паметта


За да могат променливите c и d, a и b да се отнасят до едни и същи клетки от паметта (ако стойностите на a и b се променят, тогава стойностите на c и d също ще се променят), когато описвате формалните параметри, добавете думата VAR преди необходимите променливи: procedure obmen (var a,b:integer); c5 d 7 a b


Пример 3. Дадени са 3 различни масива от цели числа (размерът на всеки не надвишава 15). Във всеки масив намерете сумата от елементите и средното аритметично. програма proc; var i, n, сума: цяло число; sr: истински; работа на процедурата (r:integer; var s:integer; var s1:real); var mas: масив от цели числа; j: цяло число начало s:=0; за j:=1 до r направете начало на четене(mas[j]); s:=s+mas[j]; край; s1:=s/r; край;


(главна програма) begin for i:=1 to 3 do begin write ("Въведете размер ",i, " masiva: "); четене(n); работа (n, сума, sr); (извикване на работна процедура) writeln("Summa elementov = ",sum); writeln("Srednearifmeticheskoe = ",sr:4:1); край; край.


Резултатът от работата на програмата: Програмата три пъти извиква работната процедура, в която формалните променливи r, s, s1 се заменят с действителните n, sum, sr. Процедурата извършва въвеждането на елементи на масива, изчислява сумата и средната стойност. Променливите s и s1 се връщат към основна програма, следователно преди тяхното описание се поставя служебната дума var. Локалните параметри mas, j са валидни само в процедурата. Глобално - i, n, sum, sr са налични в цялата програма.


Функции в Pascal Наборът от вградени функции в Pascal е доста широк (ABS, SQR, TRUNC и др.). Ако в програмата е включена нова, нестандартна функция, тя трябва да бъде описана в програмния текст, след което може да бъде достъпна от програмата. Извикването на функцията се извършва от дясната страна на оператора за присвояване, като се посочва името на функцията и действителните параметри. Една функция може да има свои собствени локални константи, типове, променливи, процедури и функции. Описанието на функциите в Pascal е подобно на описанието на процедурите.




Пример 4. Напишете подпрограма-функция със степен a x, където a, x са произволни числа. Нека използваме формулата: a x = e x ln програма p2; var f, b, s, t, c, d: реален; (глобални променливи) функция stp (a, x: реално) : реално; варират: истински; (локални променливи) begin y:= exp (x * ln (a)) ; stp:= y;(присвояване на името на функцията на резултата от изчислението на подпрограмата) край; (описанието на функцията е завършено) begin d:= stp(2.4, 5); (изчислителни мощности на различни числа и променливи) writeln (d, stp (5,3.5)); четене (f, b, s, t); c:= stp(f, s)+stp(b, t); writeln(c); край.


Функции Подпрограмата е част от програма, проектирана като отделна синтактична конструкция и снабдена с име (независим програмен блок) за решаване на отделни задачи. Описание на процедурата: процедура () (секция за изпълнение на локално име) Начало (секция за изпълнение на оператор) Край; Описание на функцията: функция (): тип; (секция за деклариране на локално име) Begin (секция с изпълним оператор) := ; (задължителен параметър) End; Извикване на процедура: (); Извикване на функция: := (); 1. От дясната страна на оператора за присвояване. 2. В израз в условието на оператора за разклоняване. 3. В изходната процедура, в резултат на функцията. Описание на подпрограми Процедури


Рекурсивни процедури и функции в Pascal могат да се самоизвикват, т.е. имат свойството рекурсивност. Рекурсивната функция трябва непременно да съдържа условие за рекурсивно прекратяване, за да не доведе до зацикляне на програмата. Всяко рекурсивно извикване създава нов набор от локални променливи. Тоест променливите, разположени извън извиканата функция, не се променят.


1 функция f(n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функцията f се извиква сама" title="Пример 5. Съставете рекурсивна функция, която изчислява факториела на число n, както следва: n! = 1 ако n= 1 n!= (n -1)! n ако n > 1 функция f (n: цяло число): цяло число; начало, ако n = 1, тогава f:= 1 иначе f:= n * f (n -1); (функцията f извиква сама себе си" class="link_thumb"> 19 !}Пример 5. Напишете рекурсивна функция, която изчислява факториела на число n, както следва: n! = 1 ако n= 1 n!= (n -1)! n ако n > 1 функция f (n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функция f извиква сама себе си) край; 1 функция f(n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функция f извиква себе си"> 1 функция f (n: цяло число): цяло число; начало, ако n = 1 тогава f:= 1 иначе f:= n * f (n -1); (функция f извикване сама) край; " > 1 функция f (n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функция f извиква сама себе си" title="Пример 5 Напишете рекурсивна функция, която изчислява факториела на n, както следва: n!=1 ако n= 1 n!= (n -1)!n ако n > 1 функция f (n: цяло число): цяло число;започнете ако n = 1 тогава f:= 1 else f:= n * f (n -1); (функцията f извиква сама себе си"> title="Пример 5. Напишете рекурсивна функция, която изчислява факториела на число n, както следва: n! = 1 ако n= 1 n!= (n -1)! n ако n > 1 функция f (n: цяло число): цяло число; start if n = 1 then f:= 1 else f:= n * f (n -1); (функцията f се извиква сама"> !}




подпрограми V TurboPascal


  • подпрограма е именувана, логически пълна група от команди, които могат да бъдат извикани, за да бъдат изпълнени произволен брой пъти различни местапрограми.

Причини за използване на подпрограми

  • опростете разработването на големи програми чрез декомпозиране (разделяне) на задачата на няколко подзадачи;
  • по-голяма видимост на програмата;
  • спестяване на памет.

Видове подпрограми

процедури

функции

  • Процедурае независима наименувана част от програмата, предназначена да извършва специфични действия.

Процедури без параметри

  • Формат на запис :

процедура ;

край ;

  • Всички променливи, които се използват в процедури без параметри, са описани в основната програма (в модула Var).

Пример . Напишете програма за намиране на обема на цилиндър.

програмен цилиндър;

Var R, H, V: реален;

Процедура за въвеждане; (процедура за въвеждане на данни)

Writeln('Въведете стойността на радиуса');

writeln('Въведете стойност на височина');

процедура; { процедура изчисления сила на звука }

V:=PI*sqr(R)*H;

Изходна процедура; (изходна процедура)

writeln('V=',V);


Процедури ° С параметри

  • Процедурите могат да описват константи, променливи и други процедури.
  • Разделът за описание в процедурите има същата структура като в основната програма.
  • Локални променливиса променливи, декларирани в рамките на процедура.
  • Локалните променливи не са достъпни извън процедура.
  • Промените в локални променливи в рамките на процедура не засягат стойностите на променливи със същото име, но декларирани извън процедурата.

Процедури ° С параметри

  • Глобални променливи

Пример .

програмна задача;

Var a, b: цяло число;

процедура локална;

Var a, x: char; За процедури местен:

започвам променлива х - локална променлива

a:='! '; (програмата не може да променя стойността си)

b:=b+1; променлива b - глобална променлива

край ; (всички промени в стойността на тази променлива в процедурата

BEGIN се запазват дори след излизане от процедурата)

b:=100; променлива а в основната програма цял тип,

локален; и в процедура - символен тип. променлива а

writeln('a=', a); целочислен тип не е наличен в локалната процедура.

writeln('b=',b);

Резултат от изпълнението на програмата: a=0; b=101.


); начало; край ; "ширина="640"

Предаване на параметри към Турбо Паскал

  • 1. Предаване на параметри по стойност
  • Стойностни параметри променливи, декларирани след името на процедурата в скоби. Преди тях няма служебна дума Var.
  • Формат на запис :

процедура (:

променлива);

край ;


  • формални параметри .
  • действителни параметри .

Пример .

програмен параметър;

Var m, n: цяло число;

sum Процедура(a, b: цяло число);

writeln('S=',S);

сума (m,n); или summa(100,10);

Променливи а И b са формални параметри и променливи м И н - действително. Действителните стойности на параметрите м =100 и н =10 се предават на формални параметри а И b .

Промените на действителните параметри се случват само в рамките на процедурата и не ги засягат извън процедурата.


; var променлива:); начало; край ; "ширина="640"

Предаване на параметри към Турбо Паскал

  • 2. Предаване на параметри по име
  • Променливи параметри променливи, декларирани след името на процедурата в скоби и предшествани от служебната дума Var.
  • Формат на запис :

процедура (:

променлива; вар

променлива:);

край ;



b след това min:= b; ако min c тогава min:= c; край ; BEGIN writeln('Въведете три числа'); readln(a1, b1, c1); writel (' въведете три числа '); readln(a2,b2,c2); минимум(a1,b1,c1, min1); минимум(a2,b2,c2, min2); S:= min1 + min2; writeln('S=', S); КРАЙ. Пример. Дадени са две тройки числа: a 1, b 1, c 1 и a 2, b 2, c 2. Намерете стойността на сумата: S=min (a1, b1, c1) + min (a2, b2, c2) "width=" 640"

Var a1,b1,c1,a2,b2,c2, min1, min2, S: реален;

Процедурен минимум (a,b,c: реален; Varmin: реален);

if min b тогава min:= b;

ако min c тогава min:= c;

writeln('Въведете три числа');

readln(a1, b1, c1);

writel (' въведете три числа ');

readln(a2,b2,c2);

минимум(a1,b1,c1, min1);

минимум(a2,b2,c2, min2);

S:= min1 + min2;

writeln('S=', S);

Пример. Дадени са две тройки числа: a 1, b 1, c 1 и a 2, b 2, c 2. Намерете стойността на сумата: S=min (a1, b1, c1) + min (a2, b2, c2)


функцияе подпрограма, чийто резултат е някаква стойност.

  • Формат на запис :

функция (:

край ;

  • В тялото на функцията името на функцията трябва да бъде присвоено на резултата от нейното изпълнение.
  • Когато се извиква функция, нейното име със списък от действителни параметри трябва да бъде включено в израза като операнд.

програмен израз;

функционален модул (a: реален) : реален;

writeln('Въведете стойността на променливата');

y:= модул(x-3) + модул(x+6);

writeln ('y=', y);

Пример . Изчислете стойността на израза: y = | x -3 | + | x+6 |

слайд 1

слайд 3

Подпрограми: глобални и локални променливи Всички подпрограми трябва да бъдат декларирани в раздел за деклариране. Всяка подпрограма трябва да има име. Информацията между главната програма и подпрограмите се предава чрез глобални параметри (променливи), които са валидни във всяка част на програмата и имат името, описано в главната програма. Вътре в подпрограмата могат да се използват локални параметри (променливи) - техните имена и стойности имат смисъл само в границите на дадената подпрограма и не са достъпни за извикващата програма

слайд 4

Формални и действителни параметри В описанието на подпрограмите параметрите се обозначават само с имена, поради което се наричат ​​формални. Докато подпрограмата не бъде извикана, те нямат значение. Те само запазват място за действителните параметри, като фиксират техния брой и тип данни. Действителни типове параметри: Параметрите на стойността показват каква стойност трябва да бъде присвоена на определен параметър на подпрограма. След като подпрограмата приключи, те се връщат към предишните си стойности, дори ако са били променени в подпрограмата. Променливите параметри в подпрограмата заемат мястото на формалните, те могат да променят стойността си по време на изпълнение на подпрограмата и да запазят промените, когато подпрограмата излезе (променливите параметри се предхождат от ключова дума Var).

слайд 5

слайд 6

Описание на процедурата Програма Pr1; Const...Тип...Var...Procedure(); Описание Начало Процедура тяло Край; Започнете ... (); …край. При извикване на процедурата формалните параметри се заменят с действителните.

Слайд 7

Процедурата за изчисляване на сумата от две числа програма pr1; Използвайте crt; Var a,b,s:real; процедура summa(x,y:real;var z:real); beginz:=x+y; край; започнете clrscr; writeln("Въведете a,b"); readln(a,b); summa(a, b, s); writeln(" сбор от числа ",a:3:1," и ",b:3:1," = ",s:3:1); readln; край. x,y,z – формални параметри, локални променливи a,b,s– глобални променливи a,b,s – действителни параметри x y z a b s Стойности на параметри Параметър-променлива

Слайд 8

Слайд 9

слайд 10

Изчислете стойността на израза a:=(3n!+2m!)/(m+n)! Какъв тип променливи трябва да се използват за намиране на факториела? programpr2; Използвайте crt; Varm,n,x,y,z:цяло число; а:реално; процедура fact(d:integer;var q:integer); var i:integer; beginq:=1; за i:=1 до d направете q:=q*i; край; започнете clrscr; writeln("въведете стойностите n, m "); readln(n,m); факт (n, x); факт(m,y); факт(m+n,z); a:=(3*x+2*y)/z; writeln("стойност на израза, когато m= ",m:4," и n= ",n:4,"равно",a:8:3); readln; край. N!=1 2 3… N

слайд 11

Входен изход на елементи от едномерен масив Функцията Random(X) генерира произволно число от 0 до X от цял ​​или реален тип (преди да извикате функцията, тя трябва да бъде инициализирана чрез процедурата Randomize). Ако X не е указано, резултатът ще бъде от тип Real между 0.0 и 1.0. За да получите масив от цели числа случайни числа от диапазона random(B-A+1)+A Задача: Подредете входа на елементи от едномерен масив с помощта на генератор на произволни числа (обхват на стойност от -10 до 20) и извеждане на елементи като процедура. За A=-10 B=20 случайно(20-(-10)+1)+(-10)

слайд 12

слайд 13

слайд 14

Описание на функцията Функциите са предназначени да изчисляват само една стойност, 1. Следователно, първата й разлика е, че процедурата може да има нови стойности за няколко параметъра, а функцията има само една (това ще бъде резултатът). 2. Втората разлика е в заглавката на функцията. Състои се от думата FUNCTION, последвана от името на функцията, последвано от списък с формални параметри в скоби, последвано от типа на резултата от функцията, разделени с двоеточие. 3. Тялото на функцията трябва да съдържа поне един оператор за присвояване, като името на функцията е от лявата страна, а нейната стойност е от дясната страна. Функция (): Описание Начало Функция body:=; край;

слайд 15

Изчислете стойността на израза a:=(3n!+2m!)/(m+n)! програма fn2; Използвайте crt; Varm,n:цяло число; а:реално; функция fact(d:integer) :longint; var i:integer; q:longint; beginq:=1; за i:=1 до d направете q:=q*i; факт:=q; край; започнете clrscr; writeln("въведете стойностите n, m"); readln(n,m); a:=(3*факт(n)+2*факт(m))/факт(m+n);; writeln("стойност на израза, когато m= ",m:4," и n= ",n:4,"равно",a:8:3); readln; край.

слайд 16

Напишете програма, която ще намери ab, т.е b-та степенчисла A, където A и B са цели числа и B>0, въведени от клавиатурата. Напишете програма, заменяйки функцията с процедура програма pr2; Използвайте crt; var a,b:integer; c:longint; Функционални стъпки (x,y:integer):longint; var i:integer; s:longint; начало s:=1; за i:=1 до y направете s:=s*x; Стивън:=s; край; започнете clrscr; writeln("Въведете стойности a, b"); readln(a,b); C:=стъпка(a,b); writeln("s=",s); readln; край.

слайд 17

слайд 18

Механизъм за предаване на параметри на функции и процедури Какво ще отпечата процедурата и какво програмата? Глобални променливи Локални променливи a b 3 3 -3 Адрес c a b c 48 Адрес c A:=b+3 B:=3*a C:=a+b Състояние C 24 5 8 Отговор

слайд 19