Počítače Windows internet

Postupy v pascalovej prezentácii. Procedúry a funkcie v Pascale. Rekurzia. Podprogramy Úloha často vyžaduje, aby ste zopakovali špecifickú postupnosť príkazov v rôznych častiach programu. Odovzdávanie parametrov. Formálne parametre

Ak chcete použiť ukážku prezentácií, vytvorte si účet Google (účet) a prihláste sa doň: 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 určitý algoritmus a umožňuje k nemu prístup z rôznych častí všeobecného programu. Používanie podprogramov umožňuje implementovať jednu z najmodernejších metód programovania – štruktúrované programovanie.

Funkcia procedúry rutiny FUNKCIA PROCEDURE

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ú nejakú hodnotu). Sú dvoch typov: 1) Formálne – tie, ktoré sú v popise podprogramu 2) Skutočné – 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 ďalej pracuje. Opäť sa delia na dva typy: 1) Globálne premenné, teda tie, ktoré pôsobia v celom programe 2) Lokálne - tie, ktoré pôsobia iba v procedúre alebo funkcii.

Postupy Používajú sa v prípadoch, keď sa v podprograme vyžaduje viacero výsledkov. 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... // Koniec tela procedúry; begin // hlavné telo programu koniec.

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

Postup parametra. Vytvorte program na výmenu dvoch čísel s = 5 a d = 7 program obmenDan; var c, d: celé číslo; procedúra obmen (a, b: celé číslo); var m: celé číslo; začať m: = a; a: = b; b = m; writeln (a, b); koniec; begin writeln ("Zadajte 2 cisla:"); readln (c, d); obmen (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, potom sa zmenia hodnoty c a d), pri popise formálnych parametrov pridajte slovo VAR pred požadovanými premennými: procedure obmen (var a, b: integer); s 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, potom sa na ňu môžete odvolať z programu. Funkcia sa volá na pravej strane operátora priradenia s uvedením názvu funkcie a skutočných parametrov. 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é znaky 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ť popisujúca miestne názvy) 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ť rekurzívnosti. Rekurzívna funkcia musí obsahovať rekurzívnu koncovú podmienku, 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.

Napíšte 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;

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



Podprogramy v Turbo pascal


  • Podprogram ide o pomenovanú, logicky kompletnú skupinu príkazov, ktoré možno volať na vykonanie ľubovoľný počet krát z rôznych miest v programe.

Dôvody používania podprogramov

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

Typy podprogramov

postupy

funkcie

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

Bezparametrové procedúry

  • 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 . Urobte si 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 výšky');

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

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

Výstup postupu; (postup zobrazenia výsledkov)

writeln ('V =', V);


Postupy c parametre

  • V procedúrach môžete opísať konštanty, premenné a iné procedúry.
  • Sekcia popisu v procedúrach má rovnakú štruktúru ako v hlavnom programe.
  • Lokálne premenné- to sú premenné popísané vo vnútri procedúry.
  • Lokálne premenné nie sú dostupné mimo procedúry.
  • Zmeny 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;

Postup lokal;

Var a, x: char; Pre postupy lokalizácia:

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 po ukončení procedúry)

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

lokal; a v procedúre ide o znakový 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
  • Hodnotové parametre premenné popísané za názvom procedúry v zátvorkách. Pred nimi nie je žiadne služobné 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 - skutočný. Hodnoty skutočných parametrov m = 100 a n = 10 prejdú do formálnych parametrov a a b .

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


; Var premenná :); 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

variabilné :);

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 nejaká hodnota.

  • Formát záznamu :

funkciu (:

koniec ;

  • V tele funkcie musí byť k názvu funkcie priradený výsledok jej vykonania.
  • Pri volaní funkcie musí byť jej názov 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 |

8. trieda. Programovanie ABC Pascal

Učiteľ informatiky NIS Uralsk FMN Zelenov Boris Aleksandrovich


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

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

  • Študent pozná pojmy „postupy“ a „funkcie“, definuje formálne a skutočné parametre

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

1. Pozná definíciu "postupu"

2. Pozná definíciu "funkcie"

3.Definuje skutočné a formálne parametre

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

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



Elvirin štandardný plán

1. Odstráňte papiere

2. Polejte kvety

3. Umývacie stoly

4. Utrite sklo

Koniec Algoritmu

Ako môžeme zlepšiť organizáciu tohto procesu?




Téma lekcie

Podprogramy:


Ішкі baғdarlama

Podprogram

Postup

Postup

Parametre

Užitočné frázy:

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

Aby bolo možné opísať postup, je potrebné najprv ...., potom ...


Koncept podprogramu

Definícia

Podprogram je samostatná funkčne samostatná č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ť procedúru, 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.


  • Opíšte, ako racionálne vykonať kresbu vianočného stromčeka 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 (postup alebo funkcia)

Názov podprogramu (postupu alebo funkcie).


Bloková schéma


Popis postupu je nasledovný:

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


Popis funkcie vyzerá takto:

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

sekcia popisu 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 nejaká jediná hodnota, takže volanie funkcie možno použiť v zodpovedajúcich 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 je špecifikovaný samostatne pri deklarácii funkcie.

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ý sa používa 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 vľavo.


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: celé číslo; var max: celé číslo);

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;


Aktuálny

  • Uvedené v hlavnej programovej časti

Formálne

  • Uvedené v podprograme
  • Uvedené 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 možno parametre odovzdávať dvoma spôsobmi – hodnotou a odkazom. Volajú sa parametre odovzdané hodnotou hodnotové parametre prešiel cez odkaz - variabilné parametre... Tie sa líšia v tom, že funkčné slovo var je umiestnené pred nimi v hlavičke procedúry (funkcie).

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 (prechádzanie 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

Ak sa tieto hodnoty zmenia počas vykonávania procedúry (funkcie), počiatočné údaje (aktuálne parametre) sa 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 sa vykonajú v premenných volajúceho bloku, takže výstupné parametre sa odovzdávajú odkazom. Pri volaní môžu byť príslušné skutočné parametre iba premenné.


Píšete:

1. Skutočné parametre ___________

Postup Kvad (R: skutočný; var S: skutočný);

2. Formálne parametre ___________

3. Formálne hodnoty parametrov __________

5. Názov postupu ___________

6. Odvolávajúc sa na postup 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 vykonanie všeobecného upratovania v triede: odstrániť papiere, poliať kvety, umyť lavice, utrieť sklo. Ako si môže najlepšie zorganizovať prácu? Pomôžte Elvíre.


Pokročilý plán Elviry

Podprogramy:

Arsen - odstraňuje papiere

Mila - polievanie kvetov

Vitaly - umýva stoly

Indira - utiera sklo

1. Popravte Arsena

2. Bež Mila

3. Popravte Vitalija

4. Popravte Indiru

Koniec Algoritmu


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

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

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

Stretnúť ťa

v ďalšej lekcii!

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é sú účinné v ktorejkoľvek časti programu a majú názov popísaný v hlavnom programe. Lokálne parametre (premenné) je možné použiť vo vnútri podprogramu - ich názvy a hodnoty majú význam iba v rámci hraníc tohto 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. Skutočné typy parametrov: Parametre hodnôt označujú, ktorá hodnota by mala byť priradená konkrétnemu parametru podprogramu. Po skončení podprogramu sa vrátia na predchádzajúce hodnoty, aj keď boli v podprograme zmenené. Premenné parametre v podprograme nahrádzajú formálne, môžu meniť svoju hodnotu počas vykonávania podprogramu a ukladať zmeny pri výstupe z podprogramu (pred parametrami premenných je kľúčové slovo Var).

Snímka 5

Snímka 6

Popis procedúry Program Pr1; Const ... Type ... Var ... Postup (); 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; Používa crt; Var a, b, s: skutočné; procedure summa (x, y: real; var z: real); začiatok z: = x + y; koniec; začať clrscr; writeln ("zadajte 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 х y z a b s Parametre hodnoty Parametre premennej

Snímka 8

Snímka 9

Snímka 10

Vyhodnoťte hodnotu výrazu a: = (3n! + 2m!) / (M + n)! Aký typ premenných je vhodné použiť na nájdenie faktoriálu? program pr2; Používa crt; Var m, n, x, y, z: celé číslo; a: skutočný; postup fakt (d: celé číslo; var q: celé číslo); var i: celé číslo; začiatok 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 v m =, m: 4," a n =, n: 4, "rovná sa", 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 real (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. Na získanie poľa náhodných celých čísel z rozsahu náhodný (BA + 1) + A Úloha: Vykonajte vstup prvkov jednorozmerného poľa pomocou generátora náhodných čísel (rozsah hodnôt od -10 do 20) a vypíšte prvky ako postup. Pre A = -10 B = 20 náhodných (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 a funkcia môže mať iba jednu (toto bude výsledok). 2. Druhý rozdiel je v názve funkcie. Pozostáva zo slova FUNKCIA, za ktorým nasleduje názov funkcie, v zátvorke je potom zoznam formálnych parametrov, za ktorými sa píše typ výsledku funkcie oddelený dvojbodkou. 3. Telo funkcie musí obsahovať aspoň jeden priraďovací operátor, kde vľavo je názov funkcie a vpravo jej hodnota. Funkcia (): Popisná časť Začiatok Telo funkcie: =; Koniec;

Snímka 15

Vyhodnoťte hodnotu výrazu a: = (3n! + 2m!) / (M + n)! program fn2; Používa crt; Var m, n: celé číslo; a: skutočný; funkcia fakt (d: celé číslo): longint; var i: celé číslo; q: longint; začiatok 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 * skutočnosť (n) + 2 * skutočnosť (m)) / skutočnosť (m + n) ;; writeln ("hodnota výrazu v m =, m: 4," a n =, n: 4, "rovná sa", a: 8: 3); readln; koniec.

Snímka 16

Vytvorte program, ktorý nájde ab, teda b-tu mocninu čísla A, kde A a B sú celé čísla a B> 0, zadané z klávesnice. Zostavte program nahradením funkcie postupom pr2; Používa crt; Var a, b: celé číslo; c: longint; Funkcia stepen (x, y: celé číslo): longint; var i: celé číslo; s: longint; začína s: = 1; pre i: = 1 až y do s: = s * x; Stepen: = s; koniec; začať clrscr; writeln ("zadajte hodnoty a, b"); readln (a, b); C: = stepen (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

Účel lekcie

vzdelávacie

  • formovať pre študentov jednotný systém pojmov súvisiacich s pojmami procedúra a funkcia;
  • naučiť, ako používať podprogramy pri riešení problémov v jazyku Pascal, a naučiť sa pochopiť, aký druh podprogramu je potrebný pri riešení konkrétneho problému;
  • ukázať základné techniky používania podprogramov;

vzdelávacie

  • vychovávať presnosť, pozornosť, organizáciu;
  • kultúra počítačových zručností;

rozvíjanie

  • rozvíjať logické myslenie, algoritmickú kultúru študentov;
  • rozvíjať vedomosti a zručnosti na vytváranie a ladenie podprogramov v jazyku Pascal.

Študenti musia:

  • poznať pravidlá písania procedúr bez parametrov a s parametrami;
  • poznať pravidlá písania funkcií;
  • vedieť používať postupy a funkcie na riešenie jednoduchých problémov.

Počas vyučovania

I. Org. moment

II. Úvod. Relevantnosť

Zadajte úlohu na kúsky papiera ( Príloha 1 ). Nájdite záznamy.

Niekedy na rôznych miestach v programe musíte vykonať prakticky rovnaké sekvencie akcií s rôznymi počiatočnými údajmi. Takéto postupnosti akcií môžu byť formalizované vo forme tzv podprogramy (z angličtiny, podprogram) - zoskupiť príkazy do bloku, na ktorý možno odkazovať menom, viac ako raz.

Podprogramy zmenšujú text programu, výrazne skracujú čas ich vykonávania, uľahčujú život programátorom, ktorí dokážu vytvárať programy modulárne, teda skladať zložitý program z celých kusov jednoduchších komponentov. To umožňuje skupine programátorov vytvárať veľké programy a skupine školákov rozvíjať a realizovať akékoľvek globálne projekty.

Podprogramy sa delia na procedúry a funkcie.

Zabudované (štandardné) postupy a funkcie sú časť jazyk a možno ho volať menom bez predchádzajúceho popisu. Napríklad , abs, sqrt, ln, sin ... - funkcie (vrátiť výsledok), readln, write ... - procedúry (nevrátiť výsledok). Ich prítomnosť značne uľahčuje vývoj aplikačných programov. Vo väčšine prípadov však niektoré špecifické akcie pre tento program nenájdu priame analógy v knižniciach Turbo Pascal a potom musí programátor vyvinúť svoje vlastné neštandardné postupy a funkcie.

III. Vysvetlenie nového materiálu

Používateľské postupy sú napísané sami sebou programátor v súlade so syntaxou jazyka v časť s popisom podprogramu.

Štruktúra procedúry opakuje štruktúru programu, je to „miniatúrny program“ – je reprezentovaný aj nadpisom a telom.

Hlavička pozostáva z procedúry vyhradené slovo, identifikátor (názov) postupy.

VAR ... // sekcia popisujúca premenné hlavného programu

procedure NázovProcedúry;

// hlavné telo programu

Zaznamená sa volanie procedúry na následné vykonanie v tele hlavného programu.

Príklad 1 Program na výpočet plochy a obvodu.

Výhody podprogramov:

  • Programy napísané pomocou podprogramov jednoduchšie testovanie a ladenie, majú jasnejšie logická štruktúra.
  • Nezávislý charakter podprogramov umožňuje zveriť ich zostavovanie rôznym programátorom. Tým sa oddelí programátorská práca a tým sa urýchli jej dokončenie;
  • Používanie podprogramov šetrí pamäť. Pamäť na ukladanie premenných používaných v podprograme je alokovaná len na dobu jeho činnosti a uvoľňuje sa hneď po ukončení jeho vykonávania.

Príklad 2 Používateľ zadá dve strany troch obdĺžnikov. Zobrazte ich oblasť.

Problém môžete vyriešiť takto:

pre i: = 1 až 3 do

writeln („Zadajte a a b:“);

writeln („Oblasť =“, a * b);

Za dobrý štýl programovania sa považuje používanie procedúr. Je potrebný postup, ktorý vypočíta plochu obdĺžnika. Takto bude hlavný program vyzerať schematicky:

výpočet

výpočet

výpočet

Textový postup už existuje (pozri príklad 1). Vytvorme druhý postup, ktorý vypočíta plochu. Ale aby ste mohli vypočítať S, potrebujete poznať 2 strany, takže postup musí ukázať, ktoré strany sa majú násobiť.

postup pl (c, d: celé číslo);

writeln („oblasť obdĺžnika so stranami“, c, „“, d, „=“, S);

Parameter je premenná, ktorej je priradená nejaká hodnota. existuje formálne parametre definované v hlavičke podprogramu a skutočné parametre - výrazy, ktoré nastavujú konkrétne hodnoty pri odkaze na podprogram.

Procedúra sa vykoná, ak ju zavoláte menom a zadáte skutočné parametre , oddelené čiarkami a uzavreté v zátvorkách:

Skutočné parametre musia byť v druhu a množstve zhodné s formálnymi.

Takže hlavný program:

pre i: = 1 až 3 do

Komentujte. Pri riešení tohto problému je potrebné skontrolovať užívateľom zadané čísla (nesmú byť záporné, inak sa program preruší).

Zostavme si overovací postup:

chyba procedúry (f, g: celé číslo);

ak (f<0) or (g<0) then begin

writeln („strany obdĺžnika nemôžu byť záporné“);

zastaviť; // prerušenie programu

Záverečný program - Dodatok 4

Takže formát postupu:

Postup<имя>(formálne parametre);

<операторы>;

Príklad 3 Vytvorte program na výmenu miest dvoch čísel s = 5 a d = 7.

program obmenDan;

var c, d: celé číslo;

procedúra obmen (a, b: celé číslo);

m: = a; a: = b; b = m;

writeln ("Zadajte 2 čísla:");

writeln (c, "", d);

Po spustení programu môžete vidieť, že formálne parametre (v postupe) sa zmenili a skutočné (ktoré sa používajú v hlavnom programe) sa nezmenili. Zvážte obrázok, ktorý zobrazuje časť pamäte RAM:

1) pri volaní procedúry obmen s dvoma parametrami 5 a 7 sa čísla 5 a 7 umiestnia aj do premenných a a b:

3), ale v premenných c a d sa údaje od r nezmenili sú na iných pamäťových miestach.

Pre premenné c a d, a a b odkazujú na rovnaké pamäťové miesta (ak sa zmenia hodnoty a a b, zmenia sa hodnoty oboch c, d) pri popise formálnych parametrov pridajte pred požadované premenné slovo VAR:

procedura obmen (var a, b: integer);

Upravte program obmenDan:

Chyba spôsobená var. Čísla sú konštanty, ktoré sa v procedúre nedajú zmeniť.

Príklad 4 Nájdite oblasť kruhu pomocou postupu, ktorý iba vypočítava, ale nezobrazuje výsledok na obrazovke.

postupový kruh (r: skutočný);

Postup by mal vrátiť výsledok:

postupový kruh (r: skutočný; var S: skutočný);

readln (a, e);

komentár: Premenná v procedúre S sa používa na vrátenie výsledkov procedúry do hlavného programu. Pri jeho zmene sa mení aj skutočný parameter vo volajúcom programe, t.j. premenná e.

Častejšie sa na to v Pascale namiesto procedúr používajú funkcie (podprogramy, ktoré niečo vracajú).

Funkcia je rovnaká ako postup, ale existujú dva rozdiely.

  • Funkcia odovzdáva programu výsledok svojej práce – jedinú hodnotu, ktorej nositeľom je názov jej funkcie.
  • Názov funkcie môže byť zahrnutý do výrazu ako operand. Funkcia vráti výsledok v bode svojho volania.

Napríklad sqr (x) - odmocní hodnotu x a vráti vypočítanú hodnotu druhej mocniny čísla x do hlásiča: y: = sqr (x);

Používateľom definovaná funkcia pozostáva z hlavičky a tela funkcie. Štruktúra tela funkcie je podobná programu. Popis štítkov, konštánt, typov atď. platné len v rámci tohto konania.

Funkcia<имя>(formálne parametre):<тип результата>;

<операторы>;

Sekcia operátora musí obsahovať aspoň jeden operátor, ktorý priraďuje hodnotu názvu funkcie. Výsledok posledného priradenia sa vráti do volacieho bodu.

Príklad 5. Zopakujme problém s oblasťou kruhu.

funkčný kruh (r: skutočný): skutočný;

a: = kruh (5); (POVINNÉ priradiť)

Príklad 6. Nájdite 1! +2! +... + N!

Použijeme funkciu hľadania faktoriálu, pretože ho dáme na vstup a dostaneme výsledok.

funkcia fakt (a: integer): integer;

pre i: = 1 k vykonaniu

V riadku fakt: = fakt * ja;

kompilátor nájde chybu, pretože fakt sa musí volať s parametrami. Preto sa zvyčajne zavádza dodatočná premenná, do ktorej sa umiestni výsledok. A potom sa tento výsledok priradí k premennej fakt:

programový faktoriál;

var sum, n, j: celé číslo;

funkcia fakt (a: integer): integer;

var i, d: celé číslo;

pre i: = 1 k vykonaniu

pre j: = 1 až n do

súčet: = súčet + fakt (j);

IV. Zhrnutie lekcie

V tomto čase sa proces programovania zmení na výroba priemyselného softvéru založené programovacie technológie... Väčšina odborníkov je toho názoru metóda návrhu programu zhora nadol najvhodnejšie na riešenie zložitých problémov. Najprv je úloha definovaná všeobecne, potom dochádza k postupnému spresňovaniu jej štruktúry. V ďalšom kroku je každá podúloha rozdelená na niekoľko ďalších. Riešením samostatného fragmentu komplexného problému je samostatný programový blok - podprogram.

V. Domáca úloha

Vyriešte úlohy (písomne):

  1. Napíšte procedúru, ktorá nahradí všetky písmená a znakom * v zadanom reťazci.
  2. Sú uvedené dve vety. Nájdite v nich celkový počet písmen "n". (Definujte funkciu na výpočet počtu „n“ písmen vo vete.)