Računalniki Windows internet

Postopki v predstavitvi Pascal. Postopki in funkcije v Pascalu. Rekurzija. Podprogrami Pogosto naloga zahteva, da ponovite določeno zaporedje stavkov v različnih delih programa. Prehodni parametri. Formalni parametri

Če želite uporabiti predogled predstavitev, si ustvarite Google Račun (račun) in se prijavite vanj: https://accounts.google.com


Napisi diapozitivov:

Postopki in funkcije v Pascalu. Rekurzija Izvaja učitelj informatike GBOU šole 1362 Sanina Marina Sergejevna

Podprogram je avtonomni del programa, ki izvaja določen algoritem in omogoča dostop do njega iz različnih delov splošnega programa. Uporaba podprogramov vam omogoča izvajanje enega najsodobnejših načinov programiranja - strukturiranega programiranja.

Funkcija postopka rutine PROCEDURE FUNCTION

Postopki in funkcije v Pascalu so deklarirani v razdelku deklaracij za razdelkom spremenljivk.

Funkcije in procedure imajo parametre (spremenljivke, ki prenesejo neko vrednost). So dveh vrst: 1) Formalni - tisti, ki so v opisu podprograma 2) Dejanski - tisti, ki so posredovani iz glavnega programa v funkcijo ali proceduro. Dejanski parametri morajo ustrezati formalnim po količini, vrstnem redu in vrsti.

Podprogram ima tudi spremenljivke. s katerim dalje sodeluje. Ponovno jih delimo na dve vrsti: 1) globalne spremenljivke, torej tiste, ki delujejo v celotnem programu 2) lokalne - tiste, ki delujejo samo v postopku ali funkciji

Postopki Uporabljajo se v primerih, ko je v podprogramu potrebnih več rezultatov. Obstajata dve vrsti postopkov: s parametrom; brez parametra.

Struktura postopka je podobna strukturi programa in je sestavljena iz glave in bloka (telo postopka). procedure ProcedureName; var… begin… // Konec telesa postopka; začetek // konec telesa glavnega programa.

Postopki brez parametrov postopek pr; var i: celo število; begin for i: = 1 do 60 do write ('* "); writeln; end. begin pr; end Ta program natisne niz 60 zvezdic.

Postopek parametrov. Naredite program za izmenjavo dveh števil z = 5 in d = 7 program obmenDan; var c, d: celo število; postopek obmen (a, b: celo število); var m: celo število; začetek m: = a; a: = b; b: = m; pisno (a, b); konec; begin writeln ("Vnesite 2 številki:"); readln (c, d); obmen (c, d); zapiši (c, "", d); Konec.

Analiza problema 1) pri klicu postopka obmen z dvema parametroma 5 in 7 sta številki 5 in 7 umeščeni tudi v spremenljivki a oziroma b: c 5 d 7 a 5 b 7

Da bi se spremenljivke c in d, a in b nanašale na iste pomnilniške celice (če se spremenijo vrednosti a in b, se spremenijo tudi vrednosti c in d), pri opisu formalnih parametrov dodajte beseda VAR pred zahtevanimi spremenljivkami: procedure obmen (var a, b: celo število); s 5 d 7 a b

Funkcije Nabor vgrajenih funkcij v jeziku Pascal je precej širok (ABS, SQR, TRUNC itd.). Če je v program vključena nova, nestandardna funkcija, jo je treba opisati v besedilu programa, nato pa se lahko nanjo sklicujete iz programa. Funkcija se kliče na desni strani operatorja dodelitve, kar označuje ime funkcije in dejanske parametre. Funkcija ima lahko lastne lokalne konstante, tipe, spremenljivke, postopke in funkcije. Opis funkcij v Pascalu je podoben opisu postopkov.

Posebnosti funkcij: - rezultat izvajanja - ena vrednost, ki se dodeli imenu funkcije in prenese v glavni program; - ime funkcije se lahko vključi v izraz kot operand.

Opis funkcije: funkcija (): vrsta; (razdelek, ki opisuje lokalna imena) Begin (razdelek izvedljivih stavkov): =; (zahtevan parameter) End;

Klic funkcije:: = (); 1 . Na desni strani operatorja dodelitve. 2. V izrazu v pogoju operaterja razvejanja. 3. V izhodnem postopku kot rezultat funkcije.

Rekurzije Procedure in funkcije v Pascalu se lahko pokličejo, t.j. imajo lastnost rekurzivnosti. Rekurzivna funkcija mora vsebovati rekurzivni končni pogoj, da ne povzroči zanke programa. Vsak rekurzivni klic ustvari nov nabor lokalnih spremenljivk. To pomeni, da se spremenljivke, ki se nahajajo zunaj klicane funkcije, ne spremenijo.

Napišite rekurzivno funkcijo, ki izračuna faktorial števila n na naslednji način: n! = 1, če je n = 1 n! = (N -1)! N, če je n> 1

funkcija f (n: celo število): celo število; začne, če je n = 1, potem f: = 1 drugače f: = n * f (n -1); (funkcija f kliče samo sebe) end;

Naloge Spremenite vrednosti spremenljivk a, b, c tako, da so razporejene v nepadajočem vrstnem redu (a ≤ b ≤ c). Danih vam je n celih števil. Med njimi poiščite število, katerega vsota števk ima največjo vrednost.



Podprogrami v Turbo pascal


  • Podprogram je poimenovana, logično popolna skupina ukazov, ki jih je mogoče priklicati za izvedbo poljubno število krat z različnih mest v programu.

Razlogi za uporabo podprogramov

  • poenostaviti razvoj velikih programov z razčlenitvijo (razdelitvijo) naloge na več podnalog;
  • večja prepoznavnost programa;
  • varčevanje pomnilnika.

Vrste podprogramov

postopkov

funkcije

  • Postopek Je neodvisen poimenovani del programa, zasnovan za izvajanje določenih dejanj.

Postopki brez parametrov

  • Format snemanja :

postopek ;

konec ;

  • Vse spremenljivke, ki se uporabljajo v procedurah brez parametrov, so opisane v glavnem programu (v modulu Var).

Primer . Naredite program za iskanje prostornine cilindra.

Programski cilinder;

Var R, H, V: realni;

Vnos postopka; (postopek vnosa podatkov)

Writeln ('vnesite vrednost polmera');

writeln ('vnesite vrednost višine');

Formula postopka; { postopek izračuni glasnost }

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

Izhod postopka; (postopek za prikaz rezultatov)

zapiši ('V =', V);


Postopki c parametrov

  • V postopkih lahko opišete konstante, spremenljivke in druge postopke.
  • Razdelek z opisom v postopkih ima enako strukturo kot v glavnem programu.
  • Lokalne spremenljivke- to so spremenljivke, opisane znotraj postopka.
  • Lokalne spremenljivke niso na voljo zunaj postopka.
  • Spremembe lokalnih spremenljivk znotraj postopka ne vplivajo na vrednosti spremenljivk z enakimi imeni, vendar opisane zunaj tega postopka.

Postopki c parametrov

  • Globalne spremenljivke

Primer .

Program zadacha;

Var a, b: celo število;

Lokalni postopek;

Var a, x: char; Za postopkov lokalno:

začeti spremenljivka x - lokalna spremenljivka

a: = '! '; (program ne more spremeniti svoje vrednosti)

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

konec; (vse spremembe vrednosti te spremenljivke v postopku

BEGIN se shranijo po izhodu iz postopka)

b: = 100; spremenljivka a v glavnem programu cela vrsta,

lokalna; in v postopku je znakovnega tipa. Spremenljivka a

writeln ('a =', a); vrsta celega števila ni na voljo v lokalni proceduri.

napiši ('b =', b);

Rezultat izvajanja programa: a = 0; b = 101.


); začeti; konec; "širina =" 640"

Posredovanje parametrov v Turbo Pascal

  • 1. Posredovanje parametrov po vrednosti
  • Vrednostni parametri spremenljivke, opisane za imenom postopka v oklepajih. Pred njimi ni službene besede Var.
  • Format snemanja :

postopek (:

spremenljivka);

konec ;


  • formalni parametri .
  • dejanski parametri .

Primer .

parameter programa;

Var m, n: celo število;

Vsota postopka (a, b: celo število);

zapiši ('S =', S);

vsota (m, n); ali vsota (100,10);

spremenljivke a in b so formalni parametri in spremenljivke m in n - dejansko. Vrednosti dejanskih parametrov m = 100 in n = 10 se prenese na formalne parametre a in b .

Spremembe dejanskih parametrov se pojavijo samo znotraj postopka in ne vplivajo nanje zunaj tega postopka.


; Var spremenljivka :); začeti; konec; "širina =" 640"

Posredovanje parametrov v Turbo Pascal

  • 2. Posredovanje parametrov po imenu
  • Spremenljivi parametri spremenljivke, ki so opisane za imenom procedure v oklepajih in pred njimi je servisna beseda Var.
  • Format snemanja :

postopek (:

spremenljivka; Var

spremenljivka :);

konec ;



b nato min: = b; če min c, potem min: = c; konec; BEGIN writeln ('vnesite tri številke'); readln (a1, b1, c1); writeln ('vnesite tri številke'); readln (a2, b2, c2); najmanj (a1, b1, c1, min1); najmanj (a2, b2, c2, min2); S: = min1 + min 2; zapiši ('S =', S); KONEC. Primer. Podani dve trojki števil: a 1, b 1, c 1 in a 2, b 2, c 2. Poiščite vrednost vsote: S = min (a1, b1, c1) + min (a2, b2, c2) "širina =" 640"

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

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

če je min b, potem min: = b;

če min c, potem min: = c;

writeln ('vnesite tri številke');

readln (a1, b1, c1);

writeln ('vnesite tri številke');

readln (a2, b2, c2);

najmanj (a1, b1, c1, min1);

najmanj (a2, b2, c2, min2);

S: = min1 + min 2;

zapiši ('S =', S);

Primer... Dani dve trojki števil: a 1, b 1, c 1 in a 2, b 2, c 2. Poiščite vrednost vsote: S = min (a1, b1, c1) + min (a2, b2, c2)


Funkcija Je podprogram, katerega rezultat je neka vrednost.

  • Format snemanja :

funkcijo (:

konec ;

  • V telesu funkcije mora biti imenu funkcije dodeljen rezultat njenega izvajanja.
  • Pri klicu funkcije mora biti njeno ime s seznamom dejanskih parametrov vključeno v izraz kot operand.

Program vyrazenie;

funkcijski modul (a: real): realni;

writeln ('vnesite vrednost spremenljivke');

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

writeln ('y =', y);

Primer . Izračunaj vrednost izraza: y = | x -3 | + | x +6 |

8. razred. Programiranje ABC Pascal

Učitelj informatike NIS Uralsk FMN Zelenov Boris Aleksandrovič


  • Učenci uporabljajo postopke in funkcije za reševanje problemov
  • Učenci se naučijo reševati velike probleme tako, da jih razčlenijo na manjše

  • Oblikujte koncept postopkov in funkcij v programskem jeziku.

  • Študentje poznajo pojma "postopki" in "funkcije", definirajo formalne in dejanske parametre

Pričakovani rezultati – deskriptorji:

1. Pozna definicijo "postopka"

2. Pozna definicijo "funkcije"

3.Opredeljuje dejanske in formalne parametre

4.Razlikuje med vrednostnimi in spremenljivimi parametri

5. V programski kodi najde klic postopka ali funkcije



Elvirin standardni načrt

1. Odstranite papirje

2. Zalijte rože

3. Pomivalne mize

4. Obrišite steklo

Konec algoritma

Kako lahko izboljšamo organizacijo tega procesa?




Tema lekcije

Podprogrami:


Ішкі baғdarlama

Podprogram

Postopek

Postopek

Parameterler

Uporabne fraze:

Za prenos vrednosti spremenljivk v proceduro (funkcijo) se uporabljajo dejanski parametri ...

Za opis postopka je treba najprej ...., nato ...


Koncept podprograma

Opredelitev

Podprogram je ločen funkcionalno neodvisen del programa.

Podprogrami

Postopki


  • odpraviti potrebo po večkratnem ponavljanju podobnih fragmentov v besedilu programa;
  • izboljšati strukturo programa in ga olajšati za razumevanje;
  • povečati odpornost na programske napake in nepredvidene posledice pri spremembah programa.

  • Narišite ograjo s programskim jezikom

V tej nalogi lahko ustvarite postopek, ki bo izvedel algoritem za risanje enega fragmenta (ograja), nato pa se nenehno sklicujete na ta postopek in spreminjate začetni položaj peresa


  • Opišite, kako racionalno izvesti risbo božičnega drevesa v programskem okolju

  • So samostojni fragmenti programov, zasnovani na poseben način in imajo svoje ime.

Interakcija med glavnim programom in podprogramom



Blok diagram

  • Blok klica podprograma (postopek ali funkcija)

Ime podprograma (postopka ali funkcije).


Blok diagram


Opis postopka je naslednji:

postopek ime (seznam formalnih parametrov); razdelek z opisom začeti operaterji konec ;


Opis funkcije izgleda takole:

funkcijo ime (seznam formalnih parametrov): vrsta vrnitve;

razdelek z opisom začeti operaterji konec ;


Lokacija v programu

Program ...;

// Opis razdelka Uses, Const, Var, ...

postopek A ;

začeti ....... konec ;

postopek B ;

začeti ........ konec ;

Funkcija C ;

začeti ........ konec ;

// Glavni program

začeti ........ konec .


  • Razlika med funkcijo in proceduro je v tem, da je rezultat izvajanja operatorjev, ki tvorijo telo funkcije, vedno neka posamezna vrednost, zato je klic funkcije mogoče uporabiti v ustreznih izrazih skupaj s spremenljivkami in konstantami.

Postopki

Funkcije

Lahko ima več rezultatov ali izvede nekaj dejanj

Ima samo en rezultat, katerega vrsta je določena ločeno, ko je funkcija deklarirana.

Rezultati so lahko vrednosti katere koli vrste, nizi, nizi, številke itd.

Rezultat je lahko samo vrednost tipa real, celo število ali char.

Ukaz za klic postopka je ločen ukaz, ki se uporablja neodvisno

Klic funkcije se lahko uporablja samo kot komponenta izraza ustreznega tipa.

Telo funkcije mora vsebovati vsaj en operator dodelitve z imenom funkcije na levi strani.


b potem max: = a drugače max: = b; Največje število: = največ; konec; "širina =" 640"

Postopek ali funkcija?

MaxNumber (a, b: celo število): celo število;

var max: celo število;

Največje število: = največ;


b potem max: = a drugače max: = b; konec; "širina =" 640"

Postopek ali funkcija?

MaxNumber (a, b: celo število; var max: celo število);

če ab potem max: = a drugače max: = b;


Postopek ali funkcija?

Spremeni barvo (C1, C2: Word);

TextBackGround (C2)


Postopek ali funkcija?

Dodaj (X, Y: Celo število): Celo število;


Dejanski

  • Navedeno v glavnem razdelku programa

Formalno

  • Označeno v podprogramu
  • Označeno v podprogramu

Postopek pokliče operater z naslednjo obliko:

ime postopka (seznam dejanskih parametrov);

  • Seznam dejanskih parametrov- to je njihov seznam, ločen z vejicami.

  • V jezikovnem standardu Pascal se lahko parametri posredujejo na dva načina - po vrednosti in po referenci. Pokličejo se parametri, ki jih posreduje vrednost vrednostnih parametrov preneseno po povezavi - spremenljivi parametri... Slednji se razlikujejo po tem, da je pred njimi v glavi postopka (funkcije) postavljena funkcijska beseda var.

Prehodni parametri. Formalni parametri

spremenljivke

Vrednosti

Parametri po vrednosti

Formalni parametri

spremenljivke


Formalni parametri

Parametri po vrednosti

  • Pri prvi metodi (prehajanje po vrednosti) se vrednosti dejanskih parametrov kopirajo v ustrezne formalne parametre.

Postopek

Ime postopka (a, b: celo število);

Glavni program

Če se te vrednosti spremenijo med izvajanjem postopka (funkcije), se začetni podatki (dejanski parametri) ne morejo spremeniti.


Var c, d: celo število;

  • Pri prehodu po referenci vse spremembe, ki se pojavijo v telesu postopka (funkcije) s formalnimi parametri, vodijo do takojšnjih podobnih sprememb v ustreznih dejanskih parametrih.

Postopek

Ime postopka (a, b: celo število, Var c: realno);

Glavni program

Spremenljivke klicnega bloka se spremenijo, zato se izhodni parametri posredujejo s sklicevanjem. Ko jih pokličete, so lahko ustrezni dejanski parametri le spremenljivke.


Pišete:

1.Dejanski parametri ___________

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

2.Formalni parametri ___________

3. Formalne vrednosti parametrov __________

5. Ime postopka ___________

6. Sklicevanje na postopek iz programa _____________________


Interaktivna naloga

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


Elvira je vodja razreda. Narediti bo morala načrt generalnega čiščenja v razredu: odstraniti papirje, zaliti rože, oprati mize, obrisati steklo. Kako lahko najbolje organizira svoje delo? Pomagaj Elviri.


Elvirin napredni načrt

Podprogrami:

Arsen - odstrani papirje

Mila - zalivanje rož

Vitalij - pomiva mize

Indira - obriše steklo

1. Izvedite Arsena

2. Teci Mila

3. Izvedite Vitaly

4. Izvedite Indiro

Konec algoritma


  • Katere nove strukture programskega jezika smo spoznali danes?
  • Poimenujte naučene parametre
  • Kako se parametri posredujejo postopku?

  • Povzetek lekcije
  • Poiščite definicije: "Lokalne spremenljivke" in "Globalne spremenljivke"
  • Ustvarite dve nalogi, v katerih lahko uporabljate postopke ali funkcije.

  • Kako bi opredelili temo lekcije? (izmisli svoje ime)
  • Kaj menite, da bi se morali naučiti v naslednji lekciji?

Spoznaj se

v naslednji lekciji!

Diapozitiv 1

Diapozitiv 3

Podprogrami: globalne in lokalne spremenljivke Vsi podprogrami morajo biti opisani v razdelku z opisom. Vsak podprogram mora imeti ime. Informacije med glavnim programom in podprogrami se prenašajo z globalnimi parametri (spremenljivkami), ki so učinkoviti v katerem koli delu programa in imajo ime, opisano v glavnem programu. Lokalne parametre (spremenljivke) je mogoče uporabiti znotraj podprograma - njihova imena in vrednosti so smiselni samo znotraj meja tega podprograma in niso na voljo klicnemu programu

Diapozitiv 4

Formalni in dejanski parametri V opisu podprogramov so parametri označeni samo z imeni, zato jih imenujemo formalni. Nimajo pomena, dokler se podprogram ne pokliče. Rezervirajo samo prostor za dejanske parametre, pri čemer določijo njihovo število in vrsto podatkov. Dejanski tipi parametrov: parametri vrednosti kažejo, katero vrednost je treba dodeliti določenemu parametru podprograma. Ko se podprogram konča, se vrnejo na prejšnje vrednosti, tudi če so bile spremenjene v podprogramu. Spremenljivi parametri v podprogramu nadomeščajo formalne, lahko spremenijo svojo vrednost med izvajanjem podprograma in shranijo spremembe ob izstopu iz podprograma (pred spremenljivimi parametri je ključna beseda Var).

Diapozitiv 5

Diapozitiv 6

Opis postopka programa Pr1; Const ... Vrsta ... Var ... Postopek (); Opisni del Začetek Telo postopka Konec; Začeti ... (); ... konec. Ko se postopek pokliče, se formalni parametri nadomestijo z dejanskimi.

Diapozitiv 7

Postopek za izračun vsote dveh števil program pr1; Uporablja crt; Var a, b, s: realna; vsota postopka (x, y: realna; var z: realna); začetek z: = x + y; konec; začni clrscr; writeln ("vnesite a, b"); readln (a, b); vsota (a, b, s); writeln ("vsota številk", a: 3: 1, "in", b: 3: 1, "=", s: 3: 1); readln; konec. x, y, z - formalni parametri, lokalne spremenljivke a, b, s - globalne spremenljivke a, b, s - dejanski parametri х y z a b s Vrednostni parametri Parameter spremenljivke

Diapozitiv 8

Diapozitiv 9

Diapozitiv 10

Ocenite vrednost izraza a: = (3n! + 2m!) / (M + n)! Katere vrste spremenljivk je priporočljivo uporabiti za iskanje faktoriala? program pr2; Uporablja crt; Var m, n, x, y, z: celo število; a: pravi; dejstvo postopka (d: celo število; var q: celo število); var i: celo število; začetek q: = 1; za i: = 1 do d do q: = q * i; konec; začni clrscr; writeln ("vnesite vrednosti n, m"); readln (n, m); dejstvo (n, x); dejstvo (m, y); dejstvo (m + n, z); a: = (3 * x + 2 * y) / z; writeln ("vrednost izraza pri m =", m: 4, "in n =", n: 4, "je enako", a: 8: 3); readln; konec. N! = 1 · 2 · 3 ·… · N

Diapozitiv 11

Vhodni izhod elementov enodimenzionalnega niza Funkcija Random (X) generira naključno število od 0 do X celega ali realnega tipa (pred klicem funkcije jo je treba inicializirati s postopkom Randomize). Če parameter X ni podan, bo rezultat tipa Real, v razponu od 0,0 do 1,0. Za pridobitev niza naključnih celih števil iz naključnega obsega (BA + 1) + A Naloga: Izvedite vnos elementov enodimenzionalnega niza z generatorjem naključnih števil (območje vrednosti od -10 do 20) in izvedite elemente kot postopek. Za A = -10 B = 20 naključno (20 - (- 10) +1) + (- 10)

Diapozitiv 12

Diapozitiv 13

Diapozitiv 14

Opis funkcije Funkcije so zasnovane za izračun samo ene vrednosti, 1. zato je njena prva razlika v tem, da ima postopek lahko nove vrednosti za več parametrov, funkcija pa samo enega (to bo rezultat). 2. Druga razlika je v naslovu funkcije. Sestavljen je iz besede FUNCTION, ki ji sledi ime funkcije, nato pa je v oklepaju seznam formalnih parametrov, po katerem je tip rezultata funkcije napisan, ločen z dvopičjem. 3. Telo funkcije mora vsebovati vsaj en operator dodelitve, kjer je ime funkcije na levi, njena vrednost pa na desni. Funkcija (): Opisni del Začetek Telo funkcije: =; Konec;

Diapozitiv 15

Ocenite vrednost izraza a: = (3n! + 2m!) / (M + n)! program fn2; Uporablja crt; Var m, n: celo število; a: pravi; dejstvo funkcije (d: celo število): longint; var i: celo število; q: longint; začetek q: = 1; za i: = 1 do d do q: = q * i; dejstvo: = q; konec; začni clrscr; writeln ("vnesite vrednosti n, m"); readln (n, m); a: = (3 * dejstvo (n) + 2 * dejstvo (m)) / dejstvo (m + n) ;; writeln ("vrednost izraza pri m =", m: 4, "in n =", n: 4, "je enako", a: 8: 3); readln; konec.

Diapozitiv 16

Ustvarite program, ki bo našel ab, to je b-to potenco števila A, kjer sta A in B celi števili in B> 0, vneseni s tipkovnice. Zgradite program tako, da funkcijo zamenjate s postopkom pr2; Uporablja crt; Var a, b: celo število; c: longint; Funkcija stepen (x, y: celo število): longint; var i: celo število; s: longint; začetek s: = 1; za i: = 1 do y naredi s: = s * x; Stepen: = s; konec; začni clrscr; writeln ("vnesite vrednosti a, b"); readln (a, b); C: = stepen (a, b); writeln ("s =", s); readln; konec.

Diapozitiv 17

Diapozitiv 18

Mehanizem za posredovanje parametrov funkcijam in proceduram Kaj bo natisnil postopek in kaj program? Globalne spremenljivke Lokalne spremenljivke a b 3 3 -3 Naslov c a b c 48 Naslov c A: = b + 3 B: = 3 * a C: = a + b Država C 24 5 8 Odgovor

Diapozitiv 19

Namen lekcije

izobraževalni

  • oblikovati za študente enoten sistem pojmov, povezanih s pojmi postopka in funkcije;
  • naučiti, kako uporabljati podprograme pri reševanju problemov v Pascalu, pa tudi naučiti razumeti, kakšen podprogram je potreben pri reševanju določenega problema;
  • prikazati osnovne tehnike uporabe podprogramov;

izobraževalni

  • vzgajati natančnost, pozornost, organiziranost;
  • kultura računalniških veščin;

razvijajo

  • razvijati logično mišljenje, algoritemsko kulturo učencev;
  • razvijati znanje in veščine za sestavljanje in odpravljanje napak podprogramov v jeziku Pascal.

Študenti morajo:

  • poznati pravila za pisanje postopkov brez parametrov in s parametri;
  • poznati pravila za pisanje funkcij;
  • biti sposoben uporabljati postopke in funkcije za reševanje preprostih problemov.

Med poukom

I. Org. trenutek

II. Uvod. Relevantnost

Izdajte nalogo na kosih papirja ( Priloga 1 ). Poiščite ponovitve.

Včasih morate na različnih mestih v programu izvesti praktično enaka zaporedja dejanj z različnimi začetnimi podatki. Takšna zaporedja dejanj je mogoče formalizirati v obliki t.i podprogrami (iz angleščine, podprogram) - stavke združi v blok, na katerega se lahko sklicujemo po imenu, več kot enkrat.

Podprogrami zmanjšajo besedilo programa, znatno skrajšajo čas njihovega izvajanja, olajšajo življenje programerjem, ki lahko programe ustvarjajo modularno, torej sestavljajo kompleksen program iz celotnih kosov enostavnejših komponent. To omogoča skupini programerjev ustvarjanje velikih programov, skupini šolarjev pa razvoj in izvajanje vseh globalnih projektov.

Podprogrami so razdeljeni na procedure in funkcije.

Vgrajeni (standardni) postopki in funkcije so del jezik in ga je mogoče poklicati po imenu brez predhodnega opisa. Na primer , abs, sqrt, ln, sin ... - funkcije (vrnejo rezultat), readln, write ... - procedure (ne vrnejo rezultata). Njihova prisotnost močno olajša razvoj aplikacijskih programov. Vendar pa v večini primerov nekatere specifične dejanja za ta program ne najdejo neposrednih analogov v knjižnicah Turbo Pascal, nato pa mora programer razviti svoje nestandardno postopkov in funkcij.

III. Razlaga novega gradiva

Uporabniški postopki so napisani sami programer v skladu s sintakso jezika v razdelek z opisom podprogramov.

Struktura postopka ponavlja strukturo programa, je »miniaturni program« – predstavljata ga tudi naslov in telo.

Glava je sestavljena iz besede, rezervirane za postopek, identifikatorja (ime) postopkov.

VAR ... // razdelek, ki opisuje spremenljivke glavnega programa

procedure ProcedureName;

// glavno telo programa

Zapiše se klic postopka za nadaljnjo izvedbo v telesu glavnega programa.

Primer 1. Program za izračun površine in oboda.

Prednosti podprogramov:

  • Programi, napisani s podprogrami lažji za testiranje in odpravljanje napak, imajo bolj jasno logična struktura.
  • Neodvisna narava podprogramov omogoča, da njihovo sestavljanje zaupamo različnim programerjem. To loči delo programiranja in tako pospeši njegovo dokončanje;
  • Uporaba podprogramov prihrani pomnilnik. Pomnilnik za shranjevanje spremenljivk, ki se uporabljajo v podprogramu, je dodeljen samo za čas njegovega delovanja in se sprosti takoj, ko se njegovo izvajanje konča.

Primer 2. Uporabnik vnese obe strani treh pravokotnikov. Pokažite njihovo območje.

Težavo lahko rešite takole:

za i: = 1 do 3 do

writeln ('Vnesite a in b:');

writeln ('Območje =', a * b);

Šteje se za dober slog programiranja za uporabo postopkov. Potreben je postopek, ki bo izračunal površino pravokotnika. Tako bo shematično izgledal glavni program:

računanje

računanje

računanje

Besedilni postopek je že tam (glej primer 1). Ustvarimo drugi postopek, ki izračuna površino. Toda za izračun S morate poznati 2 strani, zato mora postopek pokazati, katere strani naj pomnoži.

postopek pl (c, d: celo število);

writeln ("površina pravokotnika s stranicami", c, "", d, "=", S);

Parameter je spremenljivka, ki ji je dodeljena določena vrednost. Obstaja formalni parametri definirano v glavi podprograma, in dejanski parametri - izrazi, ki določajo posebne vrednosti, ko se sklicujejo na podprogram.

Postopek se izvede, če ga pokličete po imenu in podate dejanske parametre , ločeno z vejicami in zaprto v oklepaju:

Dejanski parametri morajo biti po vrsti in količini enaki formalnim.

Torej glavni program:

za i: = 1 do 3 do

Komentar. Pri reševanju tega problema je potrebno preveriti številke, ki jih je vnesel uporabnik (ne smejo biti negativne, sicer bo program prekinjen).

Sestavimo postopek preverjanja:

napaka postopka (f, g: celo število);

če (f<0) or (g<0) then begin

writeln („stranice pravokotnika ne morejo biti negativne“);

ustaviti; // prekinitev programa

Končni program - Dodatek 4

Torej oblika postopka:

Postopek<имя>(formalni parametri);

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

Primer 3. Naredite program za zamenjavo dveh številk z = 5 in d = 7.

program obmenDan;

var c, d: celo število;

postopek obmen (a, b: celo število);

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

writeln ("Vnesite 2 številki:");

zapiši (c, "", d);

Po zagonu programa lahko vidite, da so se formalni parametri (v postopku) zamenjali, dejanski (ki se uporabljajo v glavnem programu) pa se niso spremenili. Razmislite o sliki, ki prikazuje del RAM-a:

1) pri klicu postopka obmen z dvema parametroma 5 in 7 sta številki 5 in 7 postavljeni tudi v spremenljivki a oziroma b:

3) toda v spremenljivkah c in d se podatki niso spremenili, saj so na drugih pomnilniških mestih.

Za spremenljivke c in d, a in b nanašajo na iste pomnilniške lokacije (če se spremenita vrednosti a in b, se bosta spremenili vrednosti obeh c, d) pri opisovanju formalnih parametrov dodajte besedo VAR pred zahtevanimi spremenljivkami:

postopek obmen (var a, b: celo število);

Spremenite program obmenDan:

Napaka zaradi var. Številke so konstante, ki jih v postopku ni mogoče spremeniti.

Primer 4. Poiščite površino kroga s postopkom, ki samo izračuna, vendar ne prikaže rezultata na zaslonu.

proceduralni krog (r: realni);

Postopek mora vrniti rezultat:

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

readln (a, e);

Komentar: Spremenljivka v postopku S se uporablja za vrnitev rezultatov postopka v glavni program. Ko se spremeni, se spremeni tudi dejanski parameter v klicnem programu, t.j. spremenljivka e.

Pogosteje se za to v Pascalu namesto postopkov uporabljajo funkcije (podprogrami, ki nekaj vrnejo).

Funkcija je enaka postopku, vendar obstajata dve razliki.

  • Funkcija posreduje rezultat svojega dela programu - edina vrednost, katere nosilec je ime njene funkcije.
  • Ime funkcije je lahko vključeno v izraz kot operand. Funkcija vrne rezultat na točki svojega klica.

Na primer, sqr (x) - bo kvadrirala vrednost x in vrnila izračunano vrednost kvadrata števila x klicni točki: y: = sqr (x);

Uporabniško definirana funkcija je sestavljena iz glave in telesa funkcije. Struktura telesa funkcije je podobna programu. Opis oznak, konstant, vrst itd. velja le v okviru tega postopka.

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

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

Odsek operaterja mora vsebovati vsaj en operator, ki imenu funkcije dodeli vrednost. Rezultat zadnje dodelitve se vrne klicni točki.

Primer 5. Ponovimo problem o površini kroga.

funkcijski krog (r: real): realen;

a: = krog (5); (OBVEZNA dodelitev)

Primer 6. Najdi 1! +2! +… + N!

Uporabimo funkcijo iskanja faktoriala, ker jo damo na vhod in dobimo rezultat.

dejstvo funkcije (a: celo število): celo število;

za i: = 1 do a

V vrstici dejstvo: = dejstvo * I;

prevajalnik bo našel napako, ker je treba dejstvo poklicati s parametri. Zato se običajno uvede dodatna spremenljivka, v katero se postavi rezultat. In potem je ta rezultat dodeljen spremenljivki fact:

programski faktorial;

var vsota, n, j: celo število;

dejstvo funkcije (a: celo število): celo število;

var i, d: celo število;

za i: = 1 do a

za j: = 1 do n do

vsota: = vsota + dejstvo (j);

IV. Povzetek lekcije

V tem času se proces programiranja spremeni v proizvodnja industrijske programske opreme temelji programske tehnologije... Večina strokovnjakov meni, da metoda načrtovanja programa od zgoraj navzdol najbolj priročno za reševanje kompleksnih problemov. Najprej je naloga opredeljena na splošno, nato pa se njena struktura postopoma izpopolnjuje. V naslednjem koraku je vsaka podnaloga razčlenjena na več drugih. Rešitev ločenega fragmenta kompleksnega problema je neodvisen programski blok - podprogram.

V. Domača naloga

Reši naloge (pisno):

  1. Napišite postopek, ki v vnesenem nizu zamenja vse črke a z *.
  2. Podana sta dva stavka. Poiščite skupno število črk "n" v njih. (Določite funkcijo za izračun števila "n" črk v stavku.)