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
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img1.jpg)
- 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.
![](https://i0.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img2.jpg)
Razlozi za korištenje potprograma
- pojednostaviti razvoj velikih programa dekompozicijom (podjelom) zadatka na nekoliko podzadataka;
- veća vidljivost programa;
- spremanje memorije.
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img3.jpg)
Vrste potprograma
postupci
funkcije
- Postupak Nezavisni je imenovani dio programa dizajniran za izvođenje određenih radnji.
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img4.jpg)
Postupci bez parametara
- Format snimanja :
postupak ;
kraj ;
- Sve varijable koje se koriste u procedurama bez parametara opisane su u glavnom programu (u modulu Var).
![](https://i2.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img5.jpg)
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);
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img6.jpg)
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.
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img7.jpg)
Postupci c parametrima
- Globalne varijable
![](https://i0.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img8.jpg)
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.
![](https://i0.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img9.jpg)
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 ;
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img10.jpg)
- formalni parametri .
- stvarni parametri .
![](https://i0.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img11.jpg)
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.
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img12.jpg)
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 ;
![](https://i1.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img13.jpg)
![](https://i0.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img14.jpg)
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)
![](https://i2.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img15.jpg)
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.
![](https://i2.wp.com/fhd.multiurok.ru/8/e/c/8ec5d97f6ef1c74e3a2adc14850f969ff00107b5/img16.jpg)
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č
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_1.jpg)
- Učenici koriste postupke i funkcije za rješavanje problema
- Učenici uče rješavati velike probleme razlažući ih na manje
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_2.jpg)
- Oblikovati pojam procedura i funkcija u programskom jeziku.
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_3.jpg)
- Studenti poznaju pojmove "postupci" i "funkcije", definiraju formalne i stvarne parametre
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_4.jpg)
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
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_5.jpg)
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_6.jpg)
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?
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_7.jpg)
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_8.jpg)
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_9.jpg)
Tema lekcije
Potprogrami:
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_10.jpg)
Íš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 ...
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_11.jpg)
Koncept potprograma
Definicija
Potprogram je zaseban funkcionalno samostalan dio programa.
Potprogrami
Postupci
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_12.jpg)
- 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.
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_13.jpg)
- 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
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_14.jpg)
- Opišite kako racionalno izvesti crtež božićnog drvca u programskom okruženju
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_15.jpg)
- Oni su samostalni fragmenti programa, osmišljeni na poseban način i imaju svoje ime.
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_16.jpg)
Interakcija između glavnog programa i potprograma
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_17.jpg)
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_18.jpg)
Blok dijagram
- Blok poziva potprograma (procedura ili funkcija)
Naziv potprograma (postupka ili funkcije).
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_19.jpg)
Blok dijagram
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_20.jpg)
Opis postupka je sljedeći:
postupak naziv (popis formalnih parametara); odjeljak opisa početi operateri kraj ;
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_21.jpg)
Opis funkcije izgleda ovako:
funkcija naziv (popis formalnih parametara): tip povrata;
odjeljak opisa početi operateri kraj ;
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_22.jpg)
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 .
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_23.jpg)
- 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 .
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_24.jpg)
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.
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_25.jpg)
Postupak ili funkcija?
MaxNumber (a, b: cijeli broj): cijeli broj;
var max: cijeli broj;
MaxBroj: = max;
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_26.jpg)
Postupak ili funkcija?
MaxNumber (a, b: cijeli broj; var max: cijeli broj);
ako ab onda max: = a inače max: = b;
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_27.jpg)
Postupak ili funkcija?
Promijeni boju (C1, C2: Word);
TextBackGround (C2)
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_28.jpg)
Postupak ili funkcija?
Dodaj (X, Y: cijeli broj): cijeli broj;
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_29.jpg)
Stvarni
- Navedeno u glavnom odjeljku programa
Formalno
- Naznačeno u potprogramu
- Naznačeno u potprogramu
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_30.jpg)
Proceduru poziva operator u sljedećem formatu:
naziv procedure (popis stvarnih parametara);
- Popis stvarnih parametara- ovo je njihov popis odvojen zarezima.
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_31.jpg)
- 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.
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_32.jpg)
Prijelazni parametri. Formalni parametri
Varijable
Vrijednosti
Parametri po vrijednosti
Formalni parametri
Varijable
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_33.jpg)
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.
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_34.jpg)
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.
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_35.jpg)
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 _____________________
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_36.jpg)
Interaktivni zadatak
http://www.bzfar.net/load/podprogrammy_procedury_i_funkcii_parametry/23-1-0-498
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_37.jpg)
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.
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_38.jpg)
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
![](https://i0.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_39.jpg)
- Koje smo nove strukture programskog jezika danas upoznali?
- Imenujte naučene parametre
- Kako se parametri prosljeđuju proceduri?
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_40.jpg)
- Sažetak lekcije
- Pronađite definicije: "Lokalne varijable" i "Globalne varijable"
- Napravite dva zadatka u kojima možete koristiti procedure ili funkcije.
![](https://i2.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_41.jpg)
- Kako biste definirali temu lekcije? (izmisli svoje ime)
- Što mislite da biste trebali naučiti u sljedećoj lekciji?
![](https://i1.wp.com/fsd.kopilkaurokov.ru/uploads/user_file_539972e58b710/img_user_file_539972e58b710_42.jpg)
Sresti te
u sljedećoj lekciji!
Slajd 1
Slajd 3
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img2.jpg)
Slajd 4
![](https://i0.wp.com/bigslide.ru/images/7/6344/389/img3.jpg)
Slajd 5
![](https://i0.wp.com/bigslide.ru/images/7/6344/389/img4.jpg)
Slajd 6
![](https://i0.wp.com/bigslide.ru/images/7/6344/389/img5.jpg)
Slajd 7
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img6.jpg)
Slajd 8
![](https://i0.wp.com/bigslide.ru/images/7/6344/389/img7.jpg)
Slajd 9
![](https://i0.wp.com/bigslide.ru/images/7/6344/389/img8.jpg)
Slajd 10
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img9.jpg)
Slajd 11
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img10.jpg)
Slajd 12
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img11.jpg)
Slajd 13
![](https://i1.wp.com/bigslide.ru/images/7/6344/389/img12.jpg)
Slajd 14
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img13.jpg)
Slajd 15
![](https://i1.wp.com/bigslide.ru/images/7/6344/389/img14.jpg)
Slajd 16
![](https://i1.wp.com/bigslide.ru/images/7/6344/389/img15.jpg)
Slajd 17
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img16.jpg)
Slajd 18
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img17.jpg)
Slajd 19
![](https://i2.wp.com/bigslide.ru/images/7/6344/389/img18.jpg)
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):
- Napišite proceduru koja zamjenjuje sva slova a sa * u unesenom nizu.
- Dane su dvije rečenice. Pronađite ukupan broj slova "n" u njima. (Definirajte funkciju za izračunavanje broja "n" slova u rečenici.)