Postupy a funkcie. Procedúry a funkcie v Pascale

Postupy a funkcie.  Procedúry a funkcie v Pascale
Postupy a funkcie. Procedúry a funkcie v Pascale

8. trieda. Programovanie zapnuté Jazyk ABC Pascal

Učiteľ informatiky NIS Uralskej fyziky a matematiky Zelenov Boris Aleksandrovich


  • Žiaci pri riešení problémov využívajú postupy a funkcie
  • Žiaci sa učia riešiť veľké problémy tak, že ich rozložia na menšie

  • Vypracovať koncept procedúr a funkcií v programovacom jazyku.

  • Študenti poznajú pojmy „postupy“ a „funkcie“, určujú formálne a skutočné parametre

Očakávané výsledky – deskriptory:

1. Pozná definíciu „postupu“

2. Pozná definíciu „funkcie“

3.Určuje skutočné a formálne parametre

4.Rozlišuje medzi hodnotou a premennými parametrami

5. Nájde volanie procedúry alebo funkcie v programovom kóde



Elvirin štandardný plán

1. Odstráňte papiere

2. Polejte kvety

3. Umyte stoly

4. Utrite sklo

Koniec algoritmu

Ako zlepšiť organizáciu tohto procesu?




Téma lekcie

Podprogramy:


Ishki bagdarlama

Podprogram

Postup

Postup

Parametre

Užitočné frázy:

Na odovzdanie hodnôt premenných do procedúry (funkcie) sa používajú skutočné parametre...

Ak chcete opísať postup, mali by ste najprv..., potom...


Koncept podprogramu

Definícia

Podprogram- Ide o samostatnú funkčne nezávislú časť programu.

Podprogramy

Postupy


  • eliminovať potrebu opakovane opakovať podobné fragmenty v texte programu;
  • zlepšiť štruktúru programu a uľahčiť mu pochopenie;
  • zvýšiť odolnosť voči programovým chybám a nepredvídaným následkom pri úpravách programu.

  • Nakreslite plot pomocou programovacieho jazyka

V tejto úlohe môžete vytvoriť postup, ktorý vykoná algoritmus na kreslenie jedného fragmentu (plot), a potom sa na tento postup neustále odvolávať a meniť počiatočnú polohu pera.


  • Popíšte, ako efektívne nakresliť vianočný stromček v programovacom prostredí

  • Sú to nezávislé fragmenty programov, navrhnuté špeciálnym spôsobom a majúce svoje vlastné meno.

Interakcia medzi hlavným programom a podprogramom



Bloková schéma

  • Blok volania podprogramu (postupu alebo funkcie).

Názov podprogramu (postupu alebo funkcie).


Bloková schéma


Popis postupu je nasledovný:

postup meno (zoznam formálnych parametrov); sekcia popisov začať operátorov koniec ;


Popis funkcie vyzerá takto:

funkciu meno(zoznam formálnych parametrov): návratový typ;

sekcia popisov začať operátorov koniec ;


Umiestnenie v programe

Program ...;

//Sekcia popisu Uses, Const, Var, ...

postup A ;

začať ....... koniec ;

postup B ;

začať ........ koniec ;

Funkcia C ;

začať ........ koniec ;

//Hlavný program

začať ........ koniec .


  • Rozdiel medzi funkciou a procedúrou je v tom, že výsledkom vykonania operátorov, ktoré tvoria telo funkcie, je vždy jedna hodnota, takže volanie funkcie možno použiť vo vhodných výrazoch spolu s premennými a konštantami.

Postupy

Funkcie

Môže mať viacero výsledkov alebo vykonať nejakú akciu

Má iba jeden výsledok, ktorého typ sa pri deklarácii funkcie špecifikuje samostatne.

Výsledkom môžu byť hodnoty akéhokoľvek typu - polia, reťazce, čísla atď.

Výsledkom môže byť iba hodnota typu real, integer alebo char.

Príkaz na volanie procedúry je samostatný príkaz, ktorý možno použiť nezávisle

Volanie funkcie možno použiť len ako súčasť výrazu vhodného typu.

Telo funkcie musí obsahovať aspoň jeden operátor priradenia s názvom funkcie na ľavej strane.


b potom max:=a else max:=b; MaxNumber:= max; end;" width="640"

Postup alebo funkcia?

MaxNumber(a,b: integer): integer;

var max: celé číslo;

MaxNumber:= max;


b potom max:=a else max:=b; end;" width="640"

Postup alebo funkcia?

MaxNumber(a,b: integer; var max: integer);

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


Postup alebo funkcia?

ChangeColor(C1, C2: Word);

TextBackGround(C2)


Postup alebo funkcia?

Add(X, Y: Integer): Integer;


Skutočné

  • Uvedené v hlavnej programovej časti

Formálne

  • Určené v podprograme
  • Určené v podprograme

Procedúru volá operátor v nasledujúcom formáte:

názov procedúry (zoznam skutočných parametrov);

  • Zoznam skutočných parametrov- toto je ich zoznam oddelený čiarkami.

  • V štandarde jazyka Pascal je možné parametre odovzdávať dvoma spôsobmi – hodnotou a odkazom. Volajú sa parametre odovzdané hodnotou parametre-hodnoty, prenášané odkazom - parametre-premenné. Tie sa líšia tým, že v hlavičke procedúry (funkcie) im predchádza servisné slovo var.

Odovzdávanie parametrov. Formálne parametre

Premenné

hodnoty

Parametre podľa hodnoty

Formálne parametre

Premenné


Formálne parametre

Parametre podľa hodnoty

  • V prvej metóde (prechod hodnotou) sa hodnoty skutočných parametrov skopírujú do zodpovedajúcich formálnych parametrov.

Postup

Názov procedúry (a, b: celé číslo);

Hlavný program

Pri zmene týchto hodnôt počas vykonávania procedúry (funkcie) sa pôvodné údaje (aktuálne parametre) nemôžu zmeniť


Var c, d: celé číslo;

  • Pri prechode odkazom všetky zmeny vyskytujúce sa v tele procedúry (funkcie) s formálnymi parametrami vedú k okamžitým podobným zmenám v zodpovedajúcich skutočných parametroch.

Postup

Názov procedúry (a, b: celé číslo, Var c: skutočné);

Hlavný program

Zmeny nastanú v premenných volajúceho bloku, takže výstupné parametre sa odovzdávajú odkazom. Pri volaní môžu byť ich zodpovedajúce skutočné parametre iba premenné.


Píšete:

1. Skutočné parametre____________

Postup Kvad(R: real; var S: real);

2. Formálne parametre ___________

3. Formálne parametre-hodnoty __________

5. Názov postupu ___________

6. Prístup k procedúre z programu ______________________


Interaktívna úloha

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


Elvira je vedúcou triedy. Bude musieť vypracovať plán na všeobecné upratovanie v triede: odstrániť papiere, zaliať kvety, umyť stoly, utrieť sklo. Ako si môže lepšie zorganizovať prácu? Pomôžte Elvire.


Pokročilý plán Elviry

Podprogramy:

Arsen - odkladá papiere

Mila - polievanie kvetov

Vitaly – umýva stoly

Indira – utieranie skla

1. Popravte Arsena

2. Bež Mila

3. Popravte Vitalija

4. Spustite Indiru

Koniec algoritmu


  • S akými novými štruktúrami programovacieho jazyka sme sa dnes stretli?
  • Pomenujte študované parametre
  • Ako sa parametre odovzdávajú procedúre?

  • Zhrnutie lekcie
  • Nájdite definície: „Lokálne premenné“ a „Globálne premenné“
  • Zostavte dve úlohy, v ktorých môžete použiť procedúry alebo funkcie.

  • Ako by ste určili tému hodiny? (vymysli si svoje meno)
  • Čo by ste sa podľa vás mali naučiť v nasledujúcej lekcii?

Stretnime sa

ďalšia lekcia!

Použit Náhľad prezentácie vytvorte si účet ( účtu) Google a prihláste sa: https://accounts.google.com


Popisy snímok:

Procedúry a funkcie v Pascale. Rekurzia Účinkuje učiteľ informatiky GBOU škola 1362 Sanina Marina Sergeevna

Podprogram je autonómna časť programu, ktorá vykonáva špecifický algoritmus a je možné k nemu pristupovať z rôznych častí všeobecný program. Použitie podprogramov umožňuje implementovať jednu z najmodernejších metód programovania – štruktúrované programovanie.

Funkcia procedúry podprogramov PROCEDURE FUNCTION

Procedúry a funkcie v jazyku Pascal sú deklarované v sekcii deklarácií za sekciou premenných.

Funkcie a procedúry majú parametre (premenné, ktoré odovzdávajú hodnotu). Sú dvoch typov: 1) Formálne - tie, ktoré sú v popise podprogramu 2) Aktuálne - tie, ktoré sa prenášajú z hlavného programu do funkcie alebo procedúry. Skutočné parametre musia zodpovedať formálnym v množstve, poradí a druhu.

Podprogram má tiež premenné. s ktorými neskôr spolupracuje. Opäť sa delia na dva typy: 1) Globálne premenné, teda tie, ktoré pôsobia počas celého programu 2) Lokálne - tie, ktoré pôsobia iba v procedúre alebo funkcii.

Postupy Používajú sa v prípadoch, keď je potrebné získať niekoľko výsledkov v podprograme. Existujú dva typy procedúr: s parametrom; bez parametra.

Štruktúra procedúry je podobná štruktúre programu a pozostáva z hlavičky a bloku (tela procedúry). procedure NázovProcedúry; var ... begin ...//Procedura body end ; begin //telo hlavného programu koniec .

Postupy bez parametrov postup pr; var i: integer ; begin for i:=1 až 60 do write (‘ * "); writeln ; end . begin pr ; end. Tento program vytlačí reťazec 60 hviezdičiek.

Postup s parametrom. Vytvorte program na zámenu dvoch čísel c=5 a d=7 program obmenDan ; var c,d:integer ; výmena procedúr (a,b:integer); var m:integer; začať m:=a; a:=b; b:=m; writeln(a,b); koniec; begin writeln("Zadaj 2 cisla: "); readln(c,d); výmena (c,d); writeln(c," ",d); Koniec.

Analýza problému 1) pri volaní procedúry obmen s dvoma parametrami 5 a 7 sa do premenných a a b umiestnia aj čísla 5 a 7: c 5 d 7 a 5 b 7

Aby premenné c a d, a a b odkazovali na rovnaké pamäťové bunky (ak sa zmenia hodnoty a a b, zmenia sa aj hodnoty c, d), pri popise formálnych parametrov sa je potrebné pridať slovo VAR pred požadované premenné: procedure exchange (var a,b:integer); c 5 d 7 a b

Funkcie Sada vstavaných funkcií v jazyku Pascal je pomerne široká (ABS, SQR, TRUNC atď.). Ak je v programe zahrnutá nová, neštandardná funkcia, musí byť popísaná v texte programu, po ktorom je možné k nej pristupovať z programu. Funkcia je prístupná na pravej strane operátora priradenia, ktorá uvádza názov funkcie a aktuálne parametre. Funkcia môže mať svoje vlastné lokálne konštanty, typy, premenné, procedúry a funkcie. Popis funkcií v Pascal je podobný popisu procedúr.

Charakteristické vlastnosti funkcií: - výsledok vykonania - jedna hodnota, ktorá je priradená názvu funkcie a prenášaná do hlavného programu; - názov funkcie možno zahrnúť do výrazu ako operand.

Popis funkcie: function () : typ; (časť popisu miestneho názvu) Begin (časť spustiteľných príkazov):=; (povinný parameter) Koniec;

Volanie funkcie: := (); 1. Na pravej strane operátora priradenia. 2. Vo výraze v podmienke operátora vetvenia. 3. Vo výstupnom postupe ako výsledok funkcie.

Rekurzia Procedúry a funkcie v Pascale sa môžu volať samy seba, t.j. majú vlastnosť rekurzivity. Rekurzívna funkcia musí nevyhnutne obsahovať podmienku na ukončenie rekurzivity, aby nespôsobila zacyklenie programu. Každé rekurzívne volanie vytvára novú množinu lokálnych premenných. To znamená, že premenné umiestnené mimo volanej funkcie sa nezmenia.

Vytvorte rekurzívnu funkciu, ktorá vypočíta faktoriál n takto: n ! = 1, ak n= 1 n!= (n -1)! n ak n > 1

funkcia f (n: celé číslo): celé číslo; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f sa volá) end ;

Úlohy Zmeňte hodnoty premenných a, b, c tak, aby boli usporiadané v neklesajúcom poradí (a ≤ b ≤ c). Daných n celých čísel. Nájdite medzi nimi číslo, ktorého súčet číslic má maximálnu hodnotu.


Podprogramy Úloha často vyžaduje zopakovanie určitej postupnosti príkazov v rôznych častiach programu. Aby bolo možné túto sekvenciu opísať raz a použiť ju mnohokrát, programovacie jazyky používajú podprogramy. Podprogram je špeciálne navrhnutý blok programu pre jeho následné opakované použitie v hlavnom programe Použitie podprogramov umožňuje realizovať jednu z najmodernejších metód programovania – štruktúrované programovanie


Podprogramy riešia tri dôležité problémy, ktoré výrazne uľahčujú programovanie: 1. eliminujú potrebu opakovaného opakovania podobných fragmentov v texte programu, t.j. znížiť veľkosť programu; 2. zlepší štruktúru programu a uľahčí mu pochopenie pri analýze; 3.znížiť pravdepodobnosť chýb, zvýšiť odolnosť voči programovacím chybám a nepredvídaným následkom počas modifikácie.


Procedúry a funkcie V Pascale existujú dva typy podprogramov: procedúra (PROCEDURE) a funkcia (FUNCTION). Procedúry a funkcie v Pascale sú deklarované v sekcii deklarácií za sekciou premenných. NázovProgramu; VAR ... // sekcia pre popis premenných hlavného programu; procedure NázovProcedúry; var ... begin ...//Koniec tela procedúry; begin //telo hlavného programu koniec.


Funkcie a procedúry majú parametre (premenné, ktoré odovzdávajú hodnotu). Sú dvoch typov: 1) Formálne – tie, ktoré sú v popise podprogramu 2) Aktuálne – tie, ktoré sa prenášajú z hlavného programu do funkcie alebo procedúry. Skutočné parametre musia zodpovedať formálnym v množstve, poradí a druhu.




Postupy Postupy sa používajú, keď podprogram potrebuje získať viacero výsledkov. V Pascale existujú dva typy procedúr: procedúry s parametrami a bez parametrov. K procedúre sa pristupuje pomocou názvu procedúry, za ktorým môžu nasledovať aktuálne parametre. Keď sa zavolá procedúra, vytvorí sa vzájomná zhoda medzi skutočnými a formálnymi parametrami, potom sa kontrola prenesie na procedúru. Po vykonaní procedúry sa riadenie prenesie na ďalšieho operátora volajúceho programu po zavolaní procedúry.


Príklad 1: Procedúra bez parametrov, ktorá vytlačí reťazec 60 hviezdičiek. postup pr; var i: integer ; begin for i:=1 až 60 do write (* "); writeln; end; begin pr; end.


Príklad 2. Vytvorte program na zámenu miest dvoch čísel c=5 a d=7 program obmenDan; var c,d:integer; výmena procedúr (a,b:integer); var m:integer; začať m:=a; a:=b; b:=m; writeln(a,b); koniec; begin writeln("Zadaj 2 cisla: "); readln(c,d); výmena(c,d); writeln(c," ",d); koniec. c5 d 7 a 5 b 7 1) pri volaní procedúry obmen s dvoma parametrami 5 a 7 sa do premenných a a b umiestnia rovnaké čísla 5 a 7: 2) potom v procedúre hodnoty pamäťových buniek a a b sú preusporiadané: c5 d 7 a 7 b 5 3) ale v premenných c a d sa údaje nezmenili, pretože sú v iných pamäťových bunkách


Aby premenné c a d, a a b odkazovali na rovnaké pamäťové bunky (ak sa zmenia hodnoty a a b, zmenia sa aj hodnoty c, d), pri popise formálnych parametrov sa je potrebné pridať slovo VAR pred požadované premenné: procedure exchange (var a,b:integer); с5 d 7 a b


Príklad 3. Dané 3 rôzne polia celých čísel (veľkosť každého nepresahuje 15). V každom poli nájdite súčet prvkov a aritmetický priemer. program proc; var i, n, súčet: celé číslo; sr: skutočný; procedure work (r:integer; var s:integer; var s1:real); var mas: pole integer ; j:integer; begin s:=0; for j:=1 to r do begin read (mas[j]); s:=s+mas [j]; koniec; s1:=s/r; koniec;


(hlavný program) begin for i:=1 až 3 do begin write ("Vvedite razmer",i, "masiva: "); readln(n); práca(n, súčet, sr); (zavolajte prácu procedúry) writeln ("Summa elementov = ",sum); writeln("Srednearifmeticheskoe = ",sr:4:1); koniec; koniec.


Výsledok programu: Program trikrát vyvolá pracovný postup, v ktorom sú formálne premenné r, s, s1 nahradené skutočným n, sum, sr. Procedúra zadá prvky poľa, vypočíta súčet a priemer. Premenné s a s1 sa vrátia do hlavný program, preto je servisné slovo var umiestnené pred ich popisom. Lokálne parametre mas, j platia len v procedúre. Global - i, n, sum, sr sú dostupné v celom programe.


Funkcie v jazyku Pascal Sada vstavaných funkcií v jazyku Pascal je pomerne široká (ABS, SQR, TRUNC atď.). Ak je v programe zahrnutá nová, neštandardná funkcia, musí byť popísaná v texte programu, po ktorom je možné k nej pristupovať z programu. Funkcia je prístupná na pravej strane operátora priradenia, ktorá uvádza názov funkcie a aktuálne parametre. Funkcia môže mať svoje vlastné lokálne konštanty, typy, premenné, procedúry a funkcie. Popis funkcií v Pascal je podobný popisu procedúr.




Príklad 4. Napíšte funkciu podprogramu stupňa a x, kde a, x sú ľubovoľné čísla. Použime vzorec: a x = e x ln a program p2; var f, b, s, t, c, d: skutočný; (globálne premenné) funkcia stp (a, x: real) : real; var y: skutočný; ( lokálne premenné) begin y:= exp (x * ln (a)) ; stp:= y;(priradenie názvu funkcie k výsledku výpočtov podprogramu) end; (popis funkcie dokončený) begin d:= stp (2.4, 5); (výpočet mocnin rôznych čísel a premenných) writeln (d, stp (5,3.5)); read(f, b, s, t); c:= stp (f, s) + stp (b, t); writeln(c); koniec.


Funkcie Podprogram je časť programu, navrhnutá ako samostatná syntaktická štruktúra a opatrená názvom (samostatný programový blok), na riešenie jednotlivých problémov. Popis procedúry: procedure () (sekcia pre vykonávanie lokálnych názvov) Begin (sekcia pre vykonávanie operátorov) End; Popis funkcie: function (): typ; (časť pre popis miestnych názvov) Begin (časť pre spustiteľné príkazy) := ; (povinný parameter) Koniec; Volanie procedúry: (); Volanie funkcie: := (); 1. Na pravej strane operátora priradenia. 2. Vo výraze v podmienke operátora vetvenia. 3. Vo výstupnom postupe ako výsledok funkcie. Popis podprogramov Postupy


Rekurzia Procedúry a funkcie v Pascale sa môžu volať samy seba, t.j. majú vlastnosť rekurzivity. Rekurzívna funkcia musí nevyhnutne obsahovať podmienku na ukončenie rekurzivity, aby nespôsobila zacyklenie programu. Každé rekurzívne volanie vytvára novú množinu lokálnych premenných. To znamená, že premenné umiestnené mimo volanej funkcie sa nezmenia.


1 funkcia f (n: celé číslo): celé číslo; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f sa volá" title="Príklad 5. Vytvorte rekurzívnu funkciu, ktorá vypočíta faktoriál čísla n takto: n! = 1, ak n= 1 n!= (n -1)! · n ak n > 1 funkcia f (n: celé číslo): celé číslo, ak n = 1, potom f:= 1 inak f:= n * f (n -1);" class="link_thumb"> 19 !} Príklad 5. Vytvorte rekurzívnu funkciu, ktorá vypočíta faktoriál čísla n takto: n! = 1, ak n= 1 n!= (n -1)! · n ak n > 1 funkcia f (n: celé číslo): celé číslo; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f sa volá) end; 1 funkcia f (n: celé číslo): celé číslo; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f volá samu seba"> 1 funkcia f (n: celé číslo): celé číslo; začiatok, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f sa volá) koniec; " > 1 funkcia f (n: celé číslo): celé číslo; začne, ak n = 1, potom f:= 1 inak f:= n * f (n -1) (funkcia f sa volá" title="Príklad 5); Vytvorte rekurzívnu funkciu, ktorá vypočíta faktoriál čísla n takto: n! = 1 ak n= 1 n!= (n -1) n ak n > 1 funkcia f (n: celé číslo): celé číslo; 1 potom f:= 1 inak f:= n * f (n-1);"> title="Príklad 5. Vytvorte rekurzívnu funkciu, ktorá vypočíta faktoriál čísla n takto: n! = 1, ak n= 1 n!= (n -1)! · n ak n > 1 funkcia f (n: celé číslo): celé číslo; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f volá sama seba"> !}




Podprogramy V Turbo Pascal


  • Podprogram toto je pomenovaná, logicky úplná skupina príkazov, ktoré je možné vyvolať na vykonanie ľubovoľného počtu krát rôzne miesta programy.

Dôvody používania rutín

  • zjednodušiť vývoj veľkých programov rozložením (rozdelením) úlohy na niekoľko podúloh;
  • väčšia viditeľnosť programu;
  • šetrenie pamäte.

Typy podprogramov

postupov

funkcie

  • Postup je nezávislá pomenovaná časť programu určená na vykonávanie špecifických akcií.

Postupy bez parametrov

  • Formát záznamu :

postup ;

koniec ;

  • Všetky premenné, ktoré sa používajú v procedúrach bez parametrov, sú popísané v hlavnom programe (v module Var).

Príklad . Napíšte program na zistenie objemu valca.

Programový valec;

Var R, H, V: skutočné;

Vstup procedúry; (postup zadávania údajov)

Writeln('zadajte hodnotu polomeru');

writeln('zadajte hodnotu vysky');

Vzorec postupu; { postup výpočty objem }

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

Postup Výstup ; (výsledný postup)

writeln('V=',V);


Postupy c parametre

  • Procedúry môžu popisovať konštanty, premenné a iné procedúry.
  • Sekcia popisu v procedúrach má rovnakú štruktúru ako v hlavnom programe.
  • Lokálne premenné– toto sú premenné opísané v rámci procedúry.
  • Lokálne premenné nie sú prístupné mimo procedúry.
  • Zmeny, ktoré sa vyskytnú v lokálnych premenných v rámci procedúry, neovplyvňujú hodnoty premenných s rovnakými názvami, ale popísané mimo tohto postupu.

Postupy c parametre

  • Globálne premenné

Príklad .

Program zadacha;

Var a, b: celé číslo;

Miestny postup;

Var a, x: char; Pre postupov miestne:

začať premenlivý X – lokálna premenná

a:='! '; (program nemôže zmeniť svoju hodnotu)

b:= b +1; premenlivý b – globálna premenná

koniec ; (všetky zmeny hodnoty tejto premennej v procedúre

BEGIN sa uložia aj po ukončení procedúry)

b:=100; premenlivý a v hlavnom programe celý typ

miestny ; a v postupe - symbolický typ. Premenná a

writeln('a =', a); celočíselný typ nie je dostupný v lokálnej procedúre.

writeln('b=',b);

Výsledok vykonania programu: a=0; b = 101.


); začať ; koniec ; "width="640"

Odovzdávanie parametrov do Turbo Pascal

  • 1. Odovzdávanie parametrov hodnotou
  • Parametre-hodnoty premenné popísané za názvom procedúry v zátvorkách. Chýba im funkčné slovo Var.
  • Formát záznamu :

postup (:

premenná);

koniec ;


  • formálne parametre .
  • skutočné parametre .

Príklad .

Parametre programu;

Var m, n: celé číslo;

Suma procedúry (a, b: celé číslo);

writeln('S=',S);

summa(m,n); alebo summa(100,10);

Premenné a A b sú formálne parametre a premenné m A n - faktický. Skutočné hodnoty parametrov m = 100 a n =10 sa prenesú do formálnych parametrov a A b .

Zmeny skutočných parametrov sa vyskytujú iba v rámci procedúry a neovplyvňujú ich mimo procedúry.


; Var premenna:); začať ; koniec ; "width="640"

Odovzdávanie parametrov do Turbo Pascal

  • 2. Odovzdávanie parametrov podľa názvu
  • Variabilné parametre premenné popísané za názvom procedúry v zátvorkách a pred ktorým bude servisné slovo Var.
  • Formát záznamu :

postup (:

variabilný; Var

premenná:);

koniec ;



b potom min:= b; ak min c, potom min:= c; koniec ; BEGIN writeln('zadajte tri čísla'); readln(al, bl, cl); writeln('zadajte tri čísla'); readln(a2,b2,c2); minimum(a1,b1,c1, min1); minimum(a2,b2,c2, min2); S:= min1 + min2; writeln('S=', S); KONIEC. Príklad. Sú dané dve trojice čísel: a 1, b 1, c 1 a a 2, b 2, c 2. Nájdite hodnotu súčtu: S=min (a1, b1, c1) + min (a2, b2, c2) " width=" 640"

Var a1,b1,c1,a2,b2,c2, min1, min2, S: skutočné;

Postup minimum (a,b,c: skutočné; Var min: skutočné);

ak min b, potom min:= b;

ak min c, potom min:= c;

writeln('zadajte tri čísla');

readln(al, bl, cl);

writeln('zadajte tri čísla');

readln(a2,b2,c2);

minimum(a1,b1,c1, min1);

minimum(a2,b2,c2, min2);

S:= min1 + min2;

writeln('S=', S);

Príklad. Sú dané dve trojice čísel: a 1, b 1, c 1 a a 2, b 2, c 2. Nájdite hodnotu súčtu: S=min (a1, b1, c1) + min (a2, b2, c2)


Funkcia je podprogram, ktorého výsledkom je určitá hodnota.

  • Formát záznamu :

funkciu (:

koniec ;

  • V tele funkcie musí byť názov funkcie priradený k výsledku jej vykonania.
  • Pri volaní funkcie musí byť jej názov spolu so zoznamom aktuálnych parametrov zahrnutý do výrazu ako operand.

Program vyrazenie;

funkčný modul (a: skutočný): skutočný;

writeln('zadajte hodnotu premennej');

y:= modul(x-3) + modul(x+6);

writeln('y=', y);

Príklad . Vypočítajte hodnotu výrazu: y = | x -3 | + | x +6 |

Snímka 1

Snímka 3

Podprogramy: globálne a lokálne premenné Všetky podprogramy musia byť popísané v časti s popisom. Každý podprogram musí mať názov. Informácie medzi hlavným programom a podprogramami sú prenášané globálnymi parametrami (premennými), ktoré fungujú v ktorejkoľvek časti programu a majú názov popísaný v hlavnom programe. Lokálne parametre (premenné) môžu byť použité vo vnútri podprogramu - ich názvy a hodnoty majú význam iba v rámci hraníc daného podprogramu a nie sú dostupné pre volajúci program

Snímka 4

Formálne a skutočné parametre V popise podprogramov sú parametre označené iba názvami, preto sa nazývajú formálne. Nemajú žiadny význam, kým sa nezavolá podprogram. Vyhradzujú len priestor pre skutočné parametre, pričom fixujú ich počet a typ údajov. Typy skutočných parametrov: Hodnotové parametre označujú, aká hodnota by mala byť priradená konkrétnemu parametru podprogramu. Po skončení podprogramu prevezmú svoje predchádzajúce hodnoty, aj keď boli v podprograme zmenené. Premenné parametre v podprograme nahrádzajú formálne parametre, môžu zmeniť svoju hodnotu počas vykonávania podprogramu a uložiť zmeny pri výstupe z podprogramu (premenným parametrom predchádza kľúčové slovo Var).

Snímka 5

Snímka 6

Popis procedúry Program Pr1; Const...Typ...Var...Procedure(); Opisná časť Začiatok Telo procedúry Koniec; Začať...(); ... koniec. Pri volaní procedúry sa formálne parametre nahradia skutočnými.

Snímka 7

Postup výpočtu súčtu dvoch čísel program pr1; Usescrt; Var a,b,s:real; procedure summa(x,y:real;var z:real); begin z:=x+y; koniec; začať clrscr; writeln("zadaj a,b"); readln(a,b); summa(a,b,s); writeln(" súčet čísel ",a:3:1," a ",b:3:1," = ",s:3:1); readln; koniec. x,y,z – formálne parametre, lokálne premenné a,b,s– globálne premenné a,b,s – aktuálne parametre x y z a b s Hodnotové parametre Premenná parametra

Snímka 8

Snímka 9

Snímka 10

Vypočítajte hodnotu výrazu a:=(3n!+2m!)/(m+n)! Aký typ premenných je vhodné použiť na nájdenie faktoriálu? program pr2; Usescrt; Var m,n,x,y,z:integer; a:skutočný; procedura fakt(d:integer;var q:integer); var i:integer; begin q:=1; pre i:=1 až d do q:=q*i; koniec; začať clrscr; writeln("zadajte hodnoty n, m"); readln(n,m); fakt(n,x); fakt(m,y); fakt(m+n,z); a:=(3*x+2*y)/z; writeln("hodnota výrazu s m= ",m:4," a n= ",n:4,"je",a:8:3); readln; koniec. N! = 1 · 2 · 3 · ... · N

Snímka 11

Vstupný výstup prvkov jednorozmerného poľa Funkcia Random(X) generuje náhodné číslo od 0 do X typu celé číslo alebo reálne (pred volaním funkcie je potrebné ho inicializovať pomocou procedúry Randomize). Ak parameter X nie je zadaný, výsledok bude typu Real v rozsahu od 0,0 do 1,0. Získanie poľa náhodných celých čísel z rozsahu náhodný(B-A+1)+A Úloha: Formulujte vstup prvkov jednorozmerného poľa pomocou generátora náhodných čísel (rozsah hodnôt od -10 do 20) a výstup prvkov ako procedúra. Pre A=-10 B=20 náhodné (20-(-10)+1)+(-10)

Snímka 12

Snímka 13

Snímka 14

Popis funkcie Funkcie sú navrhnuté tak, aby vypočítali iba jednu hodnotu, 1. Preto jej prvým rozdielom je, že procedúra môže mať nové hodnoty pre viacero parametrov, ale funkcia má iba jednu (to bude výsledok). 2. Druhý rozdiel je v názve funkcie. Pozostáva zo slova FUNCTION, za ktorým nasleduje názov funkcie, potom zoznam formálnych parametrov v zátvorkách, za ktorým nasleduje typ výsledku funkcie oddelený dvojbodkou. 3. Telo funkcie musí obsahovať aspoň jeden operátor priradenia, pričom názov funkcie je na ľavej strane a jej hodnota na pravej strane. Funkcia (): Popisný začiatok Telo funkcie:=; Koniec;

Snímka 15

Vypočítajte hodnotu výrazu a:=(3n!+2m!)/(m+n)! program fn2; Usescrt; Var m,n:integer; a:skutočný; function fact(d:integer) :longint; var i:integer; q:longint; begin q:=1; pre i:=1 až d do q:=q*i; fakt:=q; koniec; začať clrscr; writeln("zadajte hodnoty n, m"); readln(n,m); a:=(3*fakt(n)+2*fakt(m))/fakt(m+n);; writeln("hodnota výrazu s m= ",m:4," a n= ",n:4,"je rovná",a:8:3); readln; koniec.

Snímka 16

Napíšte program, ktorý nájde ab, tzn b-tý stupeňčísla A, kde A a B sú celé čísla a B>0, zadané z klávesnice. Vytvorte program nahradením funkcie procedúrou pr2; Usescrt; Var a,b:integer; c:longint; Funkcia stepen(x,y:integer):longint; var i:integer; s:longint; begin s:=1; pre i:=1 až y do s:=s*x; Krok:=s; koniec; začať clrscr; writeln("zadajte hodnoty a, b"); readln(a,b); C:=krok(a,b); writeln("s=",s); readln; koniec.

Snímka 17

Snímka 18

Mechanizmus odovzdávania parametrov funkciám a procedúram Čo vytlačí procedúra a čo program? Globálne premenné Lokálne premenné a b 3 3 -3 Adresa c a b c 48 Adresa c A:=b+3 B:=3*a C:=a+b Stav C 24 5 8 Odpoveď

Snímka 19