Računala Windows Internet

Postupci u Pascal prezentaciji. Postupci i funkcije u Pascalu. Rekurzija. Potprogrami Često zadatak zahtijeva da ponovite određeni niz naredbi u različitim dijelovima programa. Prijelazni parametri. Formalni parametri

Da biste koristili pregled prezentacija, stvorite si Google račun (račun) i prijavite se na njega: https://accounts.google.com


Naslovi slajdova:

Postupci i funkcije u Pascalu. Rekurzija Izvodi učiteljica informatike GBOU škole 1362 Sanina Marina Sergeevna

Potprogram je autonomni dio programa koji izvršava određeni algoritam i dopušta mu pristup iz različitih dijelova općeg programa. Korištenje potprograma omogućuje implementaciju jedne od najmodernijih metoda programiranja - strukturiranog programiranja.

Rutine procedure funkcija PROCEDURE FUNCTION

Procedure i funkcije u Pascalu deklarirane su u odjeljku deklaracije nakon odjeljka varijabli.

Funkcije i procedure imaju parametre (varijable koje prolaze neku vrijednost). Oni su dvije vrste: 1) Formalni - oni koji se nalaze u opisu potprograma 2) Stvarni - oni koji se prosljeđuju iz glavnog programa u funkciju ili proceduru. Stvarni parametri moraju po količini, redoslijedu i vrsti odgovarati formalnim.

Također, potprogram ima varijable. s kojim dalje radi. Ponovo se dijele na dvije vrste: 1) Globalne varijable, odnosno one koje djeluju u cijelom programu 2) Lokalne - one koje djeluju samo u proceduri ili funkciji

Postupci Koriste se u slučajevima kada je potrebno više rezultata u potprogramu. Postoje dvije vrste postupaka: s parametrom; bez parametra.

Struktura procedure slična je strukturi programa i sastoji se od zaglavlja i bloka (tijelo procedure). procedureProcedureName; var… begin… // Kraj tijela procedure; početi // tijelo glavnog programa kraj.

Postupci bez parametara procedura pr; var i: cijeli broj; begin for i: = 1 do 60 do write ('* "); writeln; end. begin pr; end Ovaj program ispisuje niz od 60 zvjezdica.

Parametarski postupak. Napraviti program za razmjenu dva broja sa = 5 i d = 7 program obmenDan; var c, d: cijeli broj; postupak obmen (a, b: cijeli broj); var m: cijeli broj; započeti m: = a; a: = b; b: = m; pisati (a, b); kraj; begin writeln ("Unesite 2 broja:"); readln (c, d); obmen (c, d); upisati (c, "", d); Kraj.

Analiza problema 1) kod pozivanja obmen procedure s dva parametra 5 i 7, brojevi 5 i 7 također se stavljaju u varijable a i b, redom: c 5 d 7 a 5 b 7

Kako bi se varijable c i d, a i b odnosile na iste memorijske ćelije (ako se mijenjaju vrijednosti a i b, tada se mijenjaju i vrijednosti c i d), pri opisivanju formalnih parametara dodajte riječ VAR ispred traženih varijabli: procedura obmen (var a, b: cijeli broj); s 5 d 7 a b

Funkcije Skup ugrađenih funkcija u jeziku Pascal prilično je širok (ABS, SQR, TRUNC, itd.). Ako je u program uključena nova, nestandardna funkcija, ona mora biti opisana u tekstu programa, nakon čega se na nju možete obratiti iz programa. Funkcija se poziva na desnoj strani operatora dodjeljivanja, označavajući naziv funkcije i stvarne parametre. Funkcija može imati svoje lokalne konstante, tipove, varijable, procedure i funkcije. Opis funkcija u Pascalu sličan je opisu procedura.

Osobine funkcija: - rezultat izvršenja - jedna vrijednost, koja se dodjeljuje nazivu funkcije i prenosi u glavni program; - naziv funkcije može biti uključen u izraz kao operand.

Opis funkcije: funkcija (): vrsta; (odjeljak koji opisuje lokalne nazive) Početak (odjeljak izvršnih izraza): =; (obavezni parametar) End;

Poziv funkcije:: = (); 1 . Na desnoj strani operatora dodjele. 2. U izrazu u uvjetu operatora grananja. 3. U izlaznom postupku, kao rezultat funkcije.

Rekurzivne procedure i funkcije u Pascalu mogu se nazvati, t.j. imaju svojstvo rekurzivnosti. Rekurzivna funkcija mora sadržavati rekurzivni krajnji uvjet kako ne bi izazvala petlju programa. Svaki rekurzivni poziv stvara novi skup lokalnih varijabli. To jest, varijable koje se nalaze izvan pozvane funkcije se ne mijenjaju.

Napišite rekurzivnu funkciju koja izračunava faktorijel broja n na sljedeći način: n! = 1 ako je n = 1 n! = (N -1)! N ako je n> 1

funkcija f (n: cijeli broj): cijeli broj; početi ako je n = 1 onda f: = 1 inače f: = n * f (n -1); (funkcija f sama sebe poziva) end;

Zadaci Promijenite vrijednosti varijabli a, b, c tako da budu poredane bez opadanja (a ≤ b ≤ c). Dano vam je n cijelih brojeva. Pronađite među njima broj čiji zbroj znamenki ima najveću vrijednost.



Potprogrami v Turbo Pascal


  • Potprogram to je imenovana, logički potpuna skupina naredbi koja se može pozvati za izvršenje bilo koji broj puta s različitih mjesta u programu.

Razlozi za korištenje potprograma

  • pojednostaviti razvoj velikih programa dekompozicijom (podjelom) zadatka na nekoliko podzadataka;
  • veća vidljivost programa;
  • spremanje memorije.

Vrste potprograma

postupci

funkcije

  • Postupak Nezavisni je imenovani dio programa dizajniran za izvođenje određenih radnji.

Postupci bez parametara

  • Format snimanja :

postupak ;

kraj ;

  • Sve varijable koje se koriste u procedurama bez parametara opisane su u glavnom programu (u modulu Var).

Primjer . Napravite program za pronalaženje volumena cilindra.

Programski cilindar;

Var R, H, V: pravi;

Unos procedure; (postupak unosa podataka)

Writeln ('unesite vrijednost radijusa');

writeln ('unesite vrijednost visine');

Formula postupka; { postupak izračuni volumen }

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

Izlaz postupka; (postupak za prikaz rezultata)

writeln ('V =', V);


Postupci c parametrima

  • U procedurama možete opisati konstante, varijable i druge procedure.
  • Odjeljak opisa u procedurama ima istu strukturu kao u glavnom programu.
  • Lokalne varijable- to su varijable opisane unutar procedure.
  • Lokalne varijable nisu dostupne izvan procedure.
  • Promjene lokalnih varijabli unutar procedure ne utječu na vrijednosti varijabli s istim imenima, ali opisane izvan ove procedure.

Postupci c parametrima

  • Globalne varijable

Primjer .

Program zadacha;

Var a, b: cijeli broj;

Procedura lokalna;

Var a, x: char; Za postupci lokalno:

početi varijabla x - lokalna varijabla

a: = ’! '; (program ne može promijeniti svoju vrijednost)

b: = b +1; varijabla b - globalna varijabla

kraj; (sve promjene vrijednosti ove varijable u proceduri

BEGIN se spremaju nakon izlaska iz procedure)

b: = 100; varijabla a u glavnom programu cijeli tip,

lokal; a u proceduri je karakternog tipa. Varijabla a

writeln ('a =', a); cijeli broj nije dostupan u lokalnoj proceduri.

writeln ('b =', b);

Rezultat izvođenja programa: a = 0; b = 101.


); početi; kraj; "širina =" 640"

Prosljeđivanje parametara na Turbo Pascal

  • 1. Prenošenje parametara po vrijednosti
  • Parametri vrijednosti varijable opisane nakon naziva procedure u zagradama. Prije njih nema službene riječi Var.
  • Format snimanja :

postupak (:

varijabla);

kraj ;


  • formalni parametri .
  • stvarni parametri .

Primjer .

Parametar programa;

Var m, n: cijeli broj;

Suma postupka (a, b: cijeli broj);

writeln ('S =', S);

zbroj (m, n); ili suma (100,10);

Varijable a i b su formalni parametri, a varijable m i n - stvarno. Vrijednosti stvarnih parametara m = 100 i n = 10 se prosljeđuju u formalne parametre a i b .

Promjene stvarnih parametara događaju se samo unutar postupka i ne utječu na njih izvan ovog postupka.


; Var varijabla :); početi; kraj; "širina =" 640"

Prosljeđivanje parametara na Turbo Pascal

  • 2. Prenošenje parametara po imenu
  • Varijabilni parametri varijable opisane nakon naziva procedure u zagradama i kojima prethodi servisna riječ Var.
  • Format snimanja :

postupak (:

varijabla; Var

varijabla :);

kraj ;



b tada min: = b; ako je min c onda min: = c; kraj; BEGIN writeln ('unesite tri broja'); readln (a1, b1, c1); writeln ('unesite tri broja'); readln (a2, b2, c2); minimum (a1, b1, c1, min1); minimum (a2, b2, c2, min2); S: = min1 + min 2; writeln ('S =', S); KRAJ. Primjer. Zadane su dvije trojke brojeva: a 1, b 1, c 1 i a 2, b 2, c 2. Pronađite vrijednost zbroja: S = min (a1, b1, c1) + min (a2, b2, c2) "širina =" 640"

Var a1, b1, c1, a2, b2, c2, min1, min2, S: real;

Minimum postupka (a, b, c: realno; Var min: stvarno);

ako je min b onda min: = b;

ako je min c onda min: = c;

writeln ('unesite tri broja');

readln (a1, b1, c1);

writeln ('unesite tri broja');

readln (a2, b2, c2);

minimum (a1, b1, c1, min1);

minimum (a2, b2, c2, min2);

S: = min1 + min 2;

writeln ('S =', S);

Primjer... Zadane su dvije trojke brojeva: a 1, b 1, c 1 i a 2, b 2, c 2. Pronađite vrijednost zbroja: S = min (a1, b1, c1) + min (a2, b2, c2)


Funkcija Je potprogram čiji je rezultat neka vrijednost.

  • Format snimanja :

funkcija (:

kraj ;

  • U tijelu funkcije, nazivu funkcije mora biti dodijeljen rezultat njezina izvršenja.
  • Prilikom pozivanja funkcije, njezino ime s popisom stvarnih parametara mora biti uključeno u izraz kao operand.

Program vyrazenie;

funkcionalni modul (a: real): realan;

writeln ('unesite vrijednost varijable');

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

writeln ('y =', y);

Primjer . Izračunaj vrijednost izraza: y = | x -3 | + | x +6 |

8. razred. ABC Pascal programiranje

Nastavnik informatike NIS Uralsk FMN Zelenov Boris Aleksandrovič


  • Učenici koriste postupke i funkcije za rješavanje problema
  • Učenici uče rješavati velike probleme razlažući ih na manje

  • Oblikovati pojam procedura i funkcija u programskom jeziku.

  • Studenti poznaju pojmove "postupci" i "funkcije", definiraju formalne i stvarne parametre

Očekivani rezultati - Deskriptori:

1. Poznaje definiciju "postupka"

2. Poznaje definiciju "funkcije"

3.Definira stvarne i formalne parametre

4.Razlikuje vrijednosne i varijabilne parametre

5. Pronalazi poziv proceduri ili funkciji u programskom kodu



Elvirin standardni plan

1. Uklonite papire

2. Zalijte cvijeće

3. Operite stolove

4. Obrišite staklo

Kraj algoritma

Kako možemo poboljšati organizaciju ovog procesa?




Tema lekcije

Potprogrami:


Íškí baғdarlama

Potprogram

Postupak

Postupak

Parameterler

Korisne fraze:

Za prijenos vrijednosti varijabli u proceduru (funkciju), koriste se stvarni parametri ...

Da bismo opisali postupak, prvo treba ...., zatim ...


Koncept potprograma

Definicija

Potprogram je zaseban funkcionalno samostalan dio programa.

Potprogrami

Postupci


  • eliminirati potrebu ponavljanja sličnih fragmenata u tekstu programa;
  • poboljšati strukturu programa, čineći ga lakšim za razumijevanje;
  • povećati otpornost na programske pogreške i nepredviđene posljedice tijekom izmjena programa.

  • Nacrtajte ogradu pomoću programskog jezika

U ovom zadatku možete kreirati proceduru koja će izvršiti algoritam za crtanje jednog fragmenta (ograda), a zatim se stalno pozivati ​​na ovaj postupak, mijenjajući početni položaj olovke


  • Opišite kako racionalno izvesti crtež božićnog drvca u programskom okruženju

  • Oni su samostalni fragmenti programa, osmišljeni na poseban način i imaju svoje ime.

Interakcija između glavnog programa i potprograma



Blok dijagram

  • Blok poziva potprograma (procedura ili funkcija)

Naziv potprograma (postupka ili funkcije).


Blok dijagram


Opis postupka je sljedeći:

postupak naziv (popis formalnih parametara); odjeljak opisa početi operateri kraj ;


Opis funkcije izgleda ovako:

funkcija naziv (popis formalnih parametara): tip povrata;

odjeljak opisa početi operateri kraj ;


Mjesto u programu

Program ...;

// Opis odjeljka Koristi, Const, Var, ...

postupak A ;

početi ....... kraj ;

postupak B ;

početi ........ kraj ;

Funkcija C ;

početi ........ kraj ;

// Glavni program

početi ........ kraj .


  • Razlika između funkcije i procedure je u tome što je rezultat izvršavanja operatora koji čine tijelo funkcije uvijek neka pojedinačna vrijednost, stoga se poziv funkcije može koristiti u odgovarajućim izrazima zajedno s varijablama i konstantama .

Postupci

Funkcije

Može imati više rezultata ili izvršiti neku radnju

Ima samo jedan rezultat, čiji je tip naveden zasebno kada je funkcija deklarirana.

Rezultati mogu biti vrijednosti bilo koje vrste, nizovi, nizovi, brojevi itd.

Rezultat može biti samo vrijednost tipa real, integer ili char.

Naredba poziva procedure je zasebna naredba koja se koristi neovisno

Poziv funkcije može se koristiti samo kao komponenta izraza odgovarajućeg tipa.

Tijelo funkcije mora sadržavati barem jedan operator dodjeljivanja s imenom funkcije na lijevoj strani.


b tada max: = a inače max: = b; MaxBroj: = max; kraj; "širina =" 640"

Postupak ili funkcija?

MaxNumber (a, b: cijeli broj): cijeli broj;

var max: cijeli broj;

MaxBroj: = max;


b tada max: = a inače max: = b; kraj; "širina =" 640"

Postupak ili funkcija?

MaxNumber (a, b: cijeli broj; var max: cijeli broj);

ako ab onda max: = a inače max: = b;


Postupak ili funkcija?

Promijeni boju (C1, C2: Word);

TextBackGround (C2)


Postupak ili funkcija?

Dodaj (X, Y: cijeli broj): cijeli broj;


Stvarni

  • Navedeno u glavnom odjeljku programa

Formalno

  • Naznačeno u potprogramu
  • Naznačeno u potprogramu

Proceduru poziva operator u sljedećem formatu:

naziv procedure (popis stvarnih parametara);

  • Popis stvarnih parametara- ovo je njihov popis odvojen zarezima.

  • U standardu jezika Pascal, parametri se mogu proslijediti na dva načina - po vrijednosti i po referenci. Pozivaju se parametri proslijeđeni vrijednosti vrijednosti parametara proslijeđen linkom - promjenjivi parametri... Potonji se razlikuju po tome što se ispred njih u zaglavlju procedure (funkcije) stavlja funkcijska riječ var.

Prijelazni parametri. Formalni parametri

Varijable

Vrijednosti

Parametri po vrijednosti

Formalni parametri

Varijable


Formalni parametri

Parametri po vrijednosti

  • U prvoj metodi (prolaskom po vrijednosti), vrijednosti stvarnih parametara se kopiraju u odgovarajuće formalne parametre.

Postupak

Naziv procedure (a, b: cijeli broj);

Glavni program

Ako se ove vrijednosti promijene tijekom izvođenja procedure (funkcije), početni podaci (stvarni parametri) se ne mogu promijeniti.


Var c, d: cijeli broj;

  • Prilikom prolaska po referenci, sve promjene koje se događaju u tijelu procedure (funkcije) s formalnim parametrima dovode do neposrednih sličnih promjena u odgovarajućim stvarnim parametrima.

Postupak

Naziv procedure (a, b: cijeli broj, Var c: real);

Glavni program

Promjene se vrše u varijablama pozivajućeg bloka, tako da se izlazni parametri prosljeđuju referencom. Kada se pozovu, odgovarajući stvarni parametri mogu biti samo varijable.


ti pišeš:

1.Stvarni parametri ___________

Postupak Kvad (R: pravi; var S: pravi);

2. Formalni parametri ___________

3. Formalne vrijednosti parametara __________

5. Naziv postupka ___________

6.Pozivanje na proceduru iz programa _____________________


Interaktivni zadatak

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


Elvira je voditeljica razreda. Morat će izraditi plan za obavljanje generalnog čišćenja u razredu: ukloniti papire, zaliti cvijeće, oprati stolove, obrisati staklo. Kako može najbolje organizirati svoj posao? Pomozi Elviri.


Elvirin napredni plan

Potprogrami:

Arsen - skida papire

Mila - zalijevanje cvijeća

Vitalij - pere stolove

Indira - briše staklo

1. Pogubi Arsena

2. Trči Mila

3. Pogubite Vitalija

4. Pogubi Indiru

Kraj algoritma


  • Koje smo nove strukture programskog jezika danas upoznali?
  • Imenujte naučene parametre
  • Kako se parametri prosljeđuju proceduri?

  • Sažetak lekcije
  • Pronađite definicije: "Lokalne varijable" i "Globalne varijable"
  • Napravite dva zadatka u kojima možete koristiti procedure ili funkcije.

  • Kako biste definirali temu lekcije? (izmisli svoje ime)
  • Što mislite da biste trebali naučiti u sljedećoj lekciji?

Sresti te

u sljedećoj lekciji!

Slajd 1

Slajd 3

Potprogrami: globalne i lokalne varijable Svi potprogrami moraju biti opisani u odjeljku opisa. Svaki potprogram mora imati ime. Informacije između glavnog programa i potprograma prenose se globalnim parametrima (varijablama) koji su učinkoviti u bilo kojem dijelu programa i imaju naziv opisan u glavnom programu. Lokalni parametri (varijable) mogu se koristiti unutar potprograma - njihova imena i vrijednosti su smisleni samo unutar granica ovog potprograma i nisu dostupni programu koji poziva

Slajd 4

Formalni i stvarni parametri U opisu potprograma parametri su naznačeni samo imenima, stoga se nazivaju formalnim. Oni nemaju značenje dok se potprogram ne pozove. Oni samo rezerviraju prostor za stvarne parametre, fiksirajući njihov broj i vrstu podataka. Stvarni tipovi parametara: Parametri vrijednosti pokazuju koja vrijednost treba biti dodijeljena određenom parametru potprograma. Nakon što potprogram završi, vraćaju se na svoje prethodne vrijednosti, čak i ako su promijenjene u potprogramu. Varijabilni parametri u potprogramu zamjenjuju formalne, mogu mijenjati svoju vrijednost tijekom izvršavanja potprograma i spremati promjene pri izlasku iz potprograma (ispred parametara varijabli nalazi se ključna riječ Var).

Slajd 5

Slajd 6

Opis procedure Program Pr1; Const ... Vrsta ... Var ... Postupak (); Opisni dio Početak Tijelo postupka Kraj; Početak ... (); ... kraj. Kada se postupak pozove, formalni parametri se zamjenjuju stvarnim.

Slajd 7

Postupak za izračun zbroja dvaju brojeva program pr1; Koristi crt; Var a, b, s: pravi; procedura suma (x, y: real; var z: real); početak z: = x + y; kraj; započeti clrscr; writeln ("unesite a, b"); readln (a, b); zbroj (a, b, s); writeln ("zbroj brojeva", a: 3: 1, "i", b: 3: 1, "=", s: 3: 1); readln; kraj. x, y, z - formalni parametri, lokalne varijable a, b, s - globalne varijable a, b, s - stvarni parametri h y z a b s Parametri vrijednosti Parametar varijable

Slajd 8

Slajd 9

Slajd 10

Procijenite vrijednost izraza a: = (3n! + 2m!) / (M + n)! Da biste pronašli faktorijel, koju vrstu varijabli je preporučljivo koristiti? program pr2; Koristi crt; Var m, n, x, y, z: cijeli broj; a: pravi; činjenica procedure (d: cijeli broj; var q: cijeli broj); var i: cijeli broj; započeti q: = 1; za i: = 1 do d do q: = q * i; kraj; započeti clrscr; writeln ("unesite vrijednosti n, m"); readln (n, m); činjenica (n, x); činjenica (m, y); činjenica (m + n, z); a: = (3 * x + 2 * y) / z; writeln ("vrijednost izraza na m =", m: 4, "i n =", n: 4, "jednako", a: 8: 3); readln; kraj. N! = 1 · 2 · 3 ·… · N

Slajd 11

Ulazni izlaz elemenata jednodimenzionalnog niza Funkcija Random (X) generira slučajni broj od 0 do X cjelobrojnog ili realnog tipa (prije pozivanja funkcije mora se inicijalizirati pomoću postupka Randomize). Ako parametar X nije naveden, rezultat će biti tipa Real, u rasponu od 0,0 do 1,0. Za dobivanje niza nasumičnih cijelih brojeva iz raspona slučajnih (BA + 1) + A Zadatak: Izvršiti unos elemenata jednodimenzionalnog niza pomoću generatora slučajnih brojeva (raspon vrijednosti od -10 do 20) i izbaciti elemente kao proceduru. Za A = -10 B = 20 nasumično (20 - (- 10) +1) + (- 10)

Slajd 12

Slajd 13

Slajd 14

Opis funkcije Funkcije su dizajnirane da izračunaju samo jednu vrijednost, 1. stoga je njena prva razlika u tome što procedura može imati nove vrijednosti za nekoliko parametara, a funkcija može imati samo jedan (to će biti rezultat). 2. Druga razlika je u naslovu funkcije. Sastoji se od riječi FUNCTION, nakon čega slijedi naziv funkcije, zatim u zagradama je popis formalnih parametara, nakon čega se ispisuje tip rezultata funkcije odvojen dvotočkom. 3. Tijelo funkcije mora sadržavati barem jedan operator dodjeljivanja, pri čemu je naziv funkcije s lijeve strane, a njezina vrijednost s desne strane. Funkcija (): Opisni dio Početak Tijelo funkcije: =; Kraj;

Slajd 15

Procijenite vrijednost izraza a: = (3n! + 2m!) / (M + n)! program fn2; Koristi crt; Var m, n: cijeli broj; a: pravi; činjenica funkcije (d: cijeli broj): longint; var i: cijeli broj; q: longint; započeti q: = 1; za i: = 1 do d do q: = q * i; činjenica: = q; kraj; započeti clrscr; writeln ("unesite vrijednosti n, m"); readln (n, m); a: = (3 * činjenica (n) + 2 * činjenica (m)) / činjenica (m + n) ;; writeln ("vrijednost izraza na m =", m: 4, "i n =", n: 4, "jednako", a: 8: 3); readln; kraj.

Slajd 16

Napravite program koji će pronaći ab, odnosno b-tu potenciju broja A, gdje su A i B cijeli brojevi, a B> 0, uneseni s tipkovnice. Izgradite program zamjenom funkcije programskom pr2 procedurom; Koristi crt; Var a, b: cijeli broj; c: longint; Funkcija stepen (x, y: cijeli broj): longint; var i: cijeli broj; s: longint; početak s: = 1; za i: = 1 do y radi s: = s * x; Stepen: = s; kraj; započeti clrscr; writeln ("unesite vrijednosti a, b"); readln (a, b); C: = stepen (a, b); writeln ("s =", s); readln; kraj.

Slajd 17

Slajd 18

Mehanizam za prosljeđivanje parametara funkcijama i procedurama Što će ispisati procedura, a što program? Globalne varijable Lokalne varijable a b 3 3 -3 Adresa c a b c 48 Adresa c A: = b + 3 B: = 3 * a C: = a + b Država C 24 5 8 Odgovor

Slajd 19

Svrha lekcije

obrazovne

  • formirati za učenike jedinstven sustav pojmova vezanih uz pojmove postupka i funkcije;
  • naučiti kako koristiti potprograme u rješavanju problema u Pascalu, kao i naučiti razumjeti koja je vrsta potprograma potrebna za rješavanje određenog problema;
  • pokazati osnovne tehnike korištenja potprograma;

obrazovne

  • odgojiti točnost, pažnju, organiziranost;
  • kultura računalnih vještina;

razvijanje

  • razvijati logičko mišljenje, algoritamsku kulturu učenika;
  • razviti znanje i vještine za sastavljanje i otklanjanje pogrešaka potprograma u jeziku Pascal.

Učenici moraju:

  • poznavati pravila za pisanje postupaka bez parametara i s parametrima;
  • poznavati pravila za pisanje funkcija;
  • biti sposoban koristiti procedure i funkcije za rješavanje jednostavnih problema.

Tijekom nastave

I. Org. trenutak

II. Uvod. Relevantnost

Izdajte zadatak na komadima papira ( Prilog 1 ). Pronađite reprize.

Ponekad, na različitim mjestima u programu, morate izvesti praktički iste nizove radnji s različitim početnim podacima. Takvi slijedovi radnji mogu se formalizirati u obliku tzv potprograma (iz engleskog, potprogram) - grupirati iskaze u blok koji se može pozvati po imenu, više puta.

Potprogrami smanjuju tekst programa, značajno skraćuju vrijeme njihova izvođenja, olakšavaju život programerima koji mogu modularno kreirati programe, odnosno sastavljati složeni program od cjelovitih dijelova jednostavnijih komponenti. To omogućuje skupini programera da kreira velike programe, a skupini školaraca da razvija i provodi sve globalne projekte.

Potprogrami se dijele na procedure i funkcije.

Ugrađene (standardne) procedure i funkcije su dio jeziku i može se nazvati imenom bez prethodnog opisa. Na primjer , abs, sqrt, ln, sin ... - funkcije (vraćaju rezultat), readln, write ... - procedure (ne vraćaju rezultat). Njihova prisutnost uvelike olakšava razvoj aplikacijskih programa. Međutim, u većini slučajeva, neki specifično radnje za ovaj program ne nalaze izravne analoge u Turbo Pascal bibliotekama, a zatim programer mora razviti vlastiti nestandardna procedure i funkcije.

III. Objašnjenje novog materijala

Korisničke procedure su napisane sami od sebe programer u skladu sa sintaksom jezika u odjeljak opisa potprograma.

Struktura postupka ponavlja strukturu programa, to je "minijaturni program" - također je predstavljen naslovom i tijelom.

Zaglavlje se sastoji od riječi rezervirane procedure, identifikatora (Ime) postupci.

VAR ... // odjeljak koji opisuje varijable glavnog programa

procedureProcedureName;

// glavno tijelo programa

Snima se poziv procedure za naknadno izvršenje u tijelu glavnog programa.

Primjer 1. Program za izračun površine i perimetra.

Prednosti potprograma:

  • Programi napisani potprogramima lakše testirati i otklanjati greške, imaju jasnije logička struktura.
  • Neovisna priroda potprograma omogućuje povjeravanje njihove kompilacije raznim programerima. Time se odvaja programski rad i time se ubrzava njegov završetak;
  • Korištenje potprograma štedi memoriju. Memorija za pohranjivanje varijabli korištenih u potprogramu dodjeljuje se samo za vrijeme trajanja njegove operacije i oslobađa se čim završi njegovo izvršenje.

Primjer 2. Korisnik unosi dvije strane tri pravokutnika. Prikažite njihovo područje.

Problem možete riješiti ovako:

za i: = 1 do 3 do

writeln ('Unesite a i b:');

writeln ('Površina =', a * b);

Smatra se dobrim stilom programiranja za korištenje procedura. Potreban je postupak koji će izračunati površinu pravokutnika. Ovako će glavni program izgledati shematski:

računanje

računanje

računanje

Tekstualni postupak već postoji (vidi primjer 1). Kreirajmo drugi postupak koji izračunava površinu. Ali da biste izračunali S, morate znati 2 strane, pa postupak treba pokazati koje strane treba pomnožiti.

postupak pl (c, d: cijeli broj);

writeln (‘područje pravokutnika sa stranicama’, c, ‘’, d, ‘=’, S);

Parametar je varijabla kojoj je dodijeljena neka vrijednost. Postoji formalni parametri definirano u zaglavlju potprograma, i stvarni parametri - izrazi koji postavljaju određene vrijednosti kada se pozivaju na potprogram.

Procedura će se izvršiti ako je nazovete po imenu i navedete stvarne parametre , odvojeno zarezima i stavljeno u zagrade:

Stvarni parametri moraju biti isti po vrsti i količini kao i formalni.

Dakle, glavni program:

za i: = 1 do 3 do

Komentar. Prilikom rješavanja ovog problema potrebno je provjeriti brojeve koje je unio korisnik (ne smiju biti negativni, inače će program biti prekinut).

Sastavimo postupak provjere:

pogreška postupka (f, g: cijeli broj);

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

writeln ('stranice pravokutnika ne mogu biti negativne');

zaustaviti; // prekid programa

Završni program - Dodatak 4

Dakle, format postupka:

Postupak<имя>(formalni parametri);

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

Primjer 3. Napravite program za zamjenu mjesta dvaju brojeva sa = 5 i d = 7.

program obmenDan;

var c, d: cijeli broj;

postupak obmen (a, b: cijeli broj);

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

writeln ("Unesite 2 broja:");

upisati (c, "", d);

Nakon pokretanja programa možete vidjeti da su formalni parametri (u proceduri) promijenili mjesta, a da se stvarni (koji se koriste u glavnom programu) nisu promijenili. Razmotrite sliku koja prikazuje dio RAM-a:

1) kada se poziva obmen procedura s dva parametra 5 i 7, brojevi 5 i 7 također se stavljaju u varijable a i b, redom:

3) ali u varijablama c i d podaci se nisu promijenili, od nalaze se na drugim memorijskim mjestima.

Za varijable c i d, a i b odnose se na ista memorijska mjesta (ako se promijene vrijednosti a i b, tada će se promijeniti vrijednosti oba c, d) kada opisujete formalne parametre, dodajte riječ VAR ispred potrebnih varijabli:

postupak obmen (var a, b: cijeli broj);

Izmijenite obmenDan program:

Pogreška zbog var. Brojevi su konstante koje se ne mogu mijenjati u postupku.

Primjer 4. Pronađite površinu kruga pomoću postupka koji samo izračunava, ali ne prikazuje rezultat na ekranu.

proceduralni krug (r: pravi);

Postupak bi trebao vratiti rezultat:

proceduralni krug (r: realno; var S: realno);

readln (a, e);

Komentar: Varijabla u proceduri S koristi se za vraćanje rezultata postupka glavnom programu. Kada se promijeni, mijenja se i stvarni parametar u pozivnom programu, t.j. varijabla e.

Češće se za to u Pascalu, umjesto procedura, koriste funkcije (potprogrami koji nešto vraćaju).

Funkcija je ista kao i procedura, ali postoje dvije razlike.

  • Funkcija prosljeđuje rezultat svog rada programu - jedinu vrijednost, čiji je nositelj naziv njezine funkcije.
  • Naziv funkcije može biti uključen u izraz kao operand. Funkcija vraća rezultat na mjestu svog poziva.

Na primjer, sqr (x) - kvadrirat će vrijednost x i vratiti izračunatu vrijednost kvadrata broja x pozivnoj točki: y: = sqr (x);

Korisnički definirana funkcija sastoji se od zaglavlja i tijela funkcije. Struktura tijela funkcije slična je programu. Opis oznaka, konstanti, tipova itd. vrijedi samo u okviru ovog postupka.

Funkcija<имя>(formalni parametri):<тип результата>;

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

Odjeljak operatora mora sadržavati barem jedan operator koji dodjeljuje vrijednost imenu funkcije. Rezultat posljednjeg zadatka se vraća pozivnoj točki.

Primjer 5. Ponovimo problem o površini kruga.

funkcijski krug (r: real): realan;

a: = krug (5); (OBAVEZNA dodjela)

Primjer 6. Pronađite 1! +2! +… + N!

Koristimo funkciju pronalaženja faktorijala, jer ga dajemo na ulaz i dobivamo rezultat.

činjenica funkcije (a: cijeli broj): cijeli broj;

za i: = 1 do a do

U retku činjenica: = činjenica * I;

prevodilac će pronaći grešku jer se fakt mora pozvati s parametrima. Stoga se obično uvodi dodatna varijabla u koju se stavlja rezultat. I tada se ovaj rezultat pripisuje varijabilnoj činjenici:

programski faktorijel;

var zbroj, n, j: cijeli broj;

činjenica funkcije (a: cijeli broj): cijeli broj;

var i, d: cijeli broj;

za i: = 1 do a do

za j: = 1 do n do

zbroj: = zbroj + činjenica (j);

IV. Sažetak lekcije

U ovom trenutku se proces programiranja pretvara u proizvodnja industrijskog softvera na temelju tehnologije programiranja... Većina stručnjaka je mišljenja da metoda dizajna programa odozgo prema dolje najprikladniji za rješavanje složenih problema. Prvo se zadatak definira općenito, a zatim dolazi do postupnog usavršavanja njegove strukture. U sljedećem koraku svaki se podzadatak, zauzvrat, raščlanjava na niz drugih. Rješenje zasebnog fragmenta složenog problema je neovisni programski blok - potprogram.

V. Domaća zadaća

Riješite zadatke (pismeno):

  1. Napišite proceduru koja zamjenjuje sva slova a sa * u unesenom nizu.
  2. Dane su dvije rečenice. Pronađite ukupan broj slova "n" u njima. (Definirajte funkciju za izračunavanje broja "n" slova u rečenici.)