Gradul 8 Programarea mea ABC Pascal

Lector în informatică, NIS, Uralsk, FMN Zelenov Boris Oleksandrovici


  • Învață procedurile și funcțiile pentru finalizarea unei sarcini
  • Elevii învață să revizuiască ob'єmnі zavdannya, așezându-le în briză

  • Pentru a forma o înțelegere a procedurilor și funcțiilor limbajului de programare.

  • Învățați să înțelegeți conceptul de „proceduri” și „funcții” care definesc parametrii formali și actuali

Rezultate punctate - Descriptori:

1. Cunoașteți scopul „procedurii”

2. Cunoașteți scopul „funcției”

3.Determină parametrii actuali și formali

4. Recunoașterea parametrilor și valorilor modificării

5. Cunoașteți etapele procedurii sau funcția codului programului



Planul standard Elvira

1. Curățați hârtiile

2. Kviti politicos

3. Amintiți-vă de petrecere

4. Viterti bug-uri

Încheiați algoritmul

Cum să îmbunătățim organizarea cărui proces?




Subiectul lecției

Subprograme:


Ishki bagdarlam

Subprogram

Procedură

Procedură

Parametler

Fraze scurte:

Pentru a transfera valoarea procedurii de modificare (funcție), parametrii actuali sunt selectați ...

Pentru a descrie procedura, urmați înapoi..., apoi...


Înțelegerea subprogramelor

Programare

Subprogram- Tse okrema este o parte independentă din punct de vedere funcțional a programului.

Subprograme

Proceduri


  • să permită necesitatea de a repeta fragmente analoge în textul programului;
  • îmbunătățirea structurii programului, făcându-l mai ușor de înțeles;
  • crește stabilitatea la scutiri de programare și netransferul moștenirii la modificarea programelor.

  • Namalyuvati parkan, programare vikoristovuyuchi mov

Cu această sarcină, puteți crea o procedură precum algoritmul vikonuvatime pentru pictarea unui fragment (gard), apoi treceți treptat la întreaga procedură, schimbând poziția stiloului pe cob


  • Descrieți cum să vikonati rațional pe cei mici din yalinka în mijlocul programării

  • Є fragmente independente de programe, decorate cu un rang special și pot fi în lumina numelui meu.

Interacțiunea dintre programul principal și subprograme



diagramă bloc

  • Blocați subrutinele wiki (proceduri sau funcții)

Subprograme Im'ya (proceduri și funcții)


diagramă bloc


Descrierea procedurii poate arăta astfel:

procedură im'ya (lista de parametri formali); a împărțit descrierea ÎNCEPE operatori Sfârşit ;


Descrierea funcției poate fi văzută:

funcţie nume (lista parametrilor formali): tipul valorii care trebuie rotită;

a împărțit descrierea ÎNCEPE operatori Sfârşit ;


Plasarea programului

program ...;

//Răspândiți descrieri ale utilizărilor, Const, Var, …

procedură A ;

ÎNCEPE ....... Sfârşit ;

procedură B ;

ÎNCEPE ........ Sfârşit ;

Funcția C ;

ÎNCEPE ........ Sfârşit ;

//Programul principal

ÎNCEPE ........ Sfârşit .


  • Recunoașterea unei funcții ca procedură se datorează faptului că rezultatul tastării operatorilor, care stabilesc corpul funcției, duce la o singură valoare, deci trecerea la o funcție se poate realiza în diferite moduri prin modificarea aceleași constante.

Proceduri

Funcții

Fie ca mama să aibă o stropire de rezultate sau să câștige cântecul zilei

Poate exista un singur rezultat, al cărui tip este indicat în cea mai mare parte a funcției vocale.

Rezultatele pot fi semnificative, fie că este vorba despre un tip de matrice, rânduri sau numere.

Rezultatul poate fi mai mult decât real, întreg sau caracter.

Echipa de proceduri săptămânale este doar o echipă care câștigă independent

Revenirea la funcționare poate fi realizată doar ca componentă a unui tip virazu.

Ultima funcție poate avea un operator de atribuire, a cărui parte din stânga are numele funcției.


b atunci max:=a altfel max:=b; MaxNumber:=max; end;" width="640"

Procedura sau functie?

MaxNumber(a,b: întreg): întreg;

var max: întreg;

MaxNumber:=max;


b atunci max:=a altfel max:=b; end;" width="640"

Procedura sau functie?

MaxNumber(a,b: întreg; var max: întreg);

dacă ab atunci max:=a altfel max:=b;


Procedura sau functie?

ChangeColor(C1, C2: Word);

TextBackGround (C2)


Procedura sau functie?

Adaugă (X, Y: Întreger): Întregul;


Real

  • Vă rugăm să contactați distribuitorul programului principal

Formal

  • Contactați subprogramul
  • Contactați subprogramul

Apelul de procedură este setat de operator, care poate fi următorul format:

numele procedurii (lista parametrilor actuali);

  • Lista parametrilor actuali- Tse їх pererahuvannya printr-o comă.

  • În filmul standard Pascal, transferul parametrilor se poate face în două moduri - în funcție de semnificații și puteri. Parametrii care sunt transferați pentru valori sunt apelați parametri-valoare, care sunt transmise pentru possilannyam - modificarea parametrilor. Notă rămasă este că cuvântul de serviciu var este plasat în fruntea procedurii (funcției) їх.

Trecerea parametrilor. Parametri formali

Schimbări

Valoare

Parametri după valoare

Parametri formali

Schimbări


Parametri formali

Parametri după valoare

  • Cu prima metodă (trecerea unei valori), valorile parametrilor actuali sunt copiate din parametrii formali dați.

Procedură

Nume Procedura (a, b: întreg);

Programul principal

La modificarea valorii orei procedurii (funcției), datele de ieșire (parametrii reali) nu pot fi modificate


Var c, d: întreg;

  • La momentul transmiterii, toate modificările care sunt introduse în tipul de procedură (funcție) cu parametri formali duc la obținerea unor modificări similare în parametrii actuali.

Procedură

Nume Procedura (a, b: întreg, Var c: real);

Programul principal

Modificările sunt trimise blocului de modificare, care apelează, parametrii externi sunt transferați în acel bloc. În cazul unei modificări, parametrii actuali pot fi modificați doar.


Tu scrii:

1. Parametrii reali ___________

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

2. Parametri formali ___________

3. Parametrul-valori formali __________

5.Sunt procedura ___________

6. Revenirea la procedura din program _____________________


Sarcini interactive

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


Elvir șeful clasei. Este necesar să alcătuiți un plan pentru curățenia generală a clasei: curățați hârtiile, udați biletele, amintiți-vă de petrecere, ștergeți greșelile. Cum să organizezi mai bine munca? Ajut-o pe Elvira.


Planul de derapaj al Elvirei

Subprograme:

Arsen - ridicați hârtiile

Mila - udarea florilor

Vitaliy - petrecerea mea

Indira - ștergerea greșelilor

1. Viconati Arsen

2. Vikonati Mila

3. Vikonati Vitaliy

4. Vikonati Indira

Încheiați algoritmul


  • Ce structuri noi ați învățat despre programare astăzi?
  • Denumiți parametrii
  • Cum se transmit parametrii procedurii?

  • Rezumatul lecției
  • Cunoașteți semnificația: „Modificări locale” și „Modificări globale”
  • Adăugați două sarcini, în care puteți câștiga proceduri și funcții.

  • Cum ați alege tema lecției? (Vino cu propriul tău nume)
  • Ce poți afla, după părerea ta, la lecția care urmează?

Zusstrimos

la lecția următoare!

meta lectie

iluminare

  • formulează în manuale sistem unic să înțeleagă, legat de conceptele de proceduri și funcții;
  • învață cum să zastosovuvaty subprograme la ceremonia de la Pascal, și, de asemenea, să învețe să înțeleagă ce fel de subprograme sunt necesare atunci când se execută sarcina cântec;
  • arată principalele metode și selecții ale subprogramului;

vihovna

  • umflați curățenia, respectul, organizarea;
  • cultura numărării noilor veniți;

în curs de dezvoltare

  • dezvoltarea ideilor logice, cultura algoritmică a elevilor;
  • extinde cunoștințele care vmіnnya pliază și ajustează programul lui Pascal meu.

Indatoriri invatate:

  • cunoaște regulile de scriere a procedurilor fără parametri și cu parametri;
  • cunoașterea regulilor de înregistrare a funcțiilor;
  • vmiti zastosovuvati proceduri și funcții pіd hour vyrіshennya sarcini simple.

Lecția ascunsă

I. Org. moment

II. Introducere. Relevanţă

Puteți vedea sarcina pe frunze ( Anexa 1 ). Să știi să repeți.

Uneori, în perioade diferite ale programului, este necesar să câștigăm practic aceleași secvențe de evenimente cu sărbători diferite. Astfel de secvențe pot fi emise ca astfel de titluri subprogram (Vid în engleză, subrutină) - grupează operatorii într-un bloc, la care îi poți activa, de altfel, de mai multe ori.

Subprogramele accelerează textul programului, pur și simplu schimbă ora nopții, ușurează viața programatorilor, deoarece aceștia pot crea programe într-un mod modular, adică să aleagă programul din completarea depozitelor simple. Acest lucru permite unui grup de programatori să creeze programe grozave, iar unui grup de cercetători să extindă și să implementeze unele proiecte globale.

Subprogramele sunt subdivizate în proceduri și funcții.

Proceduri și funcții Vbudovanie (standard). parţial film și pot tweet pe im'ya fără o descriere înainte. De exemplu , abs, sqrt, ln, sin... sunt funcții (rotiți rezultatul), readln, write... sunt proceduri (nu rotiți rezultatul). Disponibilitatea Їх facilitează semnificativ dezvoltarea programelor de aplicație. Cu toate acestea, majoritatea faptelor specific pentru aceste programe, nu există analogi directe în bibliotecile Turbo Pascal și chiar și programatorul trebuie să-și extindă propria non-standard proceduri si functii.

III. Explicarea noului material

Procedurile Koristuvach sunt scrise de unii singuri programatorul înțelege sintaxa filmului în a distribuit descrierea subprogramului.

Structura procedurii repetă structura programului, dar „program în miniatură” – este reprezentată și de titlu și corp.

Titlul este compus din procedura cuvântului rezervat, identificator (Nume) proceduri.

VAR … // a distribuit o descriere a programelor principale modificate

procedura Im'yaProcedura;

//Numele programului principal

Sunt înregistrate procedurile Viklik pentru viconnannyul ticălos la programul principal.

exemplu 1. Programul pentru calcularea ariei perimetrului.

Beneficiile subprogramului:

  • Programe scrise pentru participarea la subprograme, este mai ușor să testuvati și nalagojuvati, au chitkish structura logica
  • Natura autonomă a subprogramului vă permite să predați structura acestuia către diverși programatori. Deci funcționează de unii singuri, grăbește-te її finalizat;
  • Subprogramul Vikoristannya vă permite să economisiți memorie. Memorie de dragul de a-i salva pe victorioși care sunt învingători în subprogram, vezi mai puțin de o oră, iar munca vibrează, de parcă numai învingătorii se vor termina.

fundul 2. Koristuvach să introducă două laturi a trei dreptunghiuri. Vreau sa-i vad.

Puteți schimba sarcina astfel:

pentru i:=1 la 3 do

writeln('Introduceți a și b:');

writeln('area=', a * b);

Un stil bun de programare este selectarea procedurilor. Este necesară o procedură pentru a calcula aria unui dreptunghi. Axa ca vedere schematică a programului principal:

facturare

facturare

facturare

Procedura pentru text este deja є (div. butt1). Să creăm o procedură pentru un prieten, cum să calculăm zona. Ale, pentru a calcula S, trebuie să cunoașteți 2 laturi, așa că procedura trebuie să arate că laturile trebuie înmulțite.

procedura pl(c, d: întreg);

writeln('aria unui dreptunghi cu trei laturi ',c, '',d, '=',S);

Parametru - tse zminna, kakіy speră deyake valoare. Іsnuyut parametri formali , atribuit titlului subprogramului, că parametrii efectivi - Virazi, pentru ce să setați anumite valori atunci când intrați în subprogram.

Procedura este verificată, astfel încât să puteți da clic pe nume și să indicați parametrii actuali , vіdokremlіnі one vіd one komami i z'yaznennyh într-o lanț rotund:

Parametrii efectivi se datorează tipului și numărului celor formali.

Din nou, programul principal:

pentru i:=1 la 3 do

Respect.În cazul încălcării acestei sarcini, este necesar să se verifice din nou numerele introduse (duhoarea nu se datorează faptului că este negativă, altfel robotul va rupe programul).

Să facem o procedură de re-verificare:

eroare de procedură (f, g: întreg);

dacă (f<0) or (g<0) then begin

writeln('laturile unui dreptunghi nu pot fi negative');

oprire; // repornirea programelor

program Podsumkova - Anexa 4

Iată formatul procedurii:

procedură<имя>(Parametri formali);

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

exemplu 3. Alcătuiește programul pentru schimbul spațiilor a două numere z=5 și d=7.

schimb de programeDan;

var c,d:intger;

procedura obmen (a, b: întreg);

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

writeln("Introduceți 2 numere:");

writeln(c," ",d);

După lansarea programului, este clar că parametrii formali (ai procedurii) s-au schimbat, dar cei actuali (cum sunt selectați pentru programul principal) nu s-au schimbat. Să aruncăm o privire asupra celor mici, asupra cărora a fost îndreptată o parte din memoria operațională:

1) la apelarea procedurii obmen cu doi parametri 5 și 7, schimbând a și b, numerele 5 și 7 sunt de asemenea plasate în același mod:

3) dar datele pentru c și d modificate s-au schimbat, deoarece duhoarea este în alte locuri ale memoriei.

Pentru a schimba c și d, a și b a cerut una și aceeași memorie din mijloc (dacă se schimbă valorile a și b, atunci se schimbă valorile c, d) este necesar când descrieți parametrii formali, înainte de modificările necesare, adăugați cuvântul VAR:

procedura obmen (var a, b: întreg);

Schimbați programul obmenDan:

Iertare prin var. Numerele sunt constante, care nu pot fi modificate în proceduri.

fundul 4. Cunoașteți zona mizei cu diferite proceduri, de parcă ar fi mai mult decât un calcul, dar fără a afișa rezultatul pe ecran.

cerc procedura (r:real);

Procedura poate roti rezultatul:

cerc procedura (r:real; var S:real);

readln(a, e);

Notă: Procedura S este modificată pentru a returna rezultatele procedurii robotizate în programul principal. La modificare, parametrul actual al programului, care este apelat, este de asemenea modificat. schimbare e.

Sarcina cea mai comună a lui Pascal este înlocuirea procedurilor cu funcții (subprograme, cum ar fi strunjirea).

Funcția este similară cu procedura, dar există două uși.

  • Funcția transferă rezultatul muncii sale în program - o singură valoare, purtând un fel de funcție proprie.
  • Aceste funcții pot fi incluse într-un virus ca operand. Funcția rotește rezultatul în punctul său săptămânal.

De exemplu, sqr(x) – steaua la pătratul valorii lui x i se întoarce la punctul de calcul al valorii pătratului numărului x: y:=sqr(x);

Funcția, desemnată ca stenografie, este compusă din antetul și corpul funcției. Corpul funcției din spatele structurii este similar cu programul. Descrierea etichetelor, constantelor, numai a tipurilor. dіysnі mai puțin între tsієї proceduri.

funcţie<имя>(parametri formali):<тип результата>;

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

Operatorii separați sunt responsabili pentru unul sau mai mulți operatori, care determină valoarea funcției. Rezultatul atribuirii rămase este rotit la punctul wiki.

Exemplul 5. Să regândim sarcina cu privire la zona mizei.

function circle(r:real): real;

a:=cerc(5); (OBOV'YAZKOVO este atractiv)

Exemplul 6. Știi 1! +2! + ... + N!

Vykoristovuєmo funcție znakhodzhennya factorial, la acel scho podєmo pe vhіd i otrimuєmo rezultat.

function fact(a:intger): intreg;

pentru i:=1 la a do

În ordine fapt: = fapt * I;

Compilatorul știe scuze că faptul este responsabil pentru apelarea parametrilor. Este obov'yazkovo să introduceți o modificare suplimentară, astfel încât rezultatul să fie postat. Și apoi să schimbăm faptul pentru a da rezultatul:

factorial de program;

var sum, n, j: întreg;

function fact(a:intger): intreg;

var i,d: întreg;

pentru i:=1 la a do

pentru j:=1 la n face

suma:=sumă+fapt(j);

IV. Husă pentru lecție

Deocamdată, procesul de programare este schimbat în pregătirea programului bazat pe tehnologii de programare. Mai multe fakhivtsiv dorimuyutsya puncte de zori, scho metoda de proiectare software scăzută cel mai convenabil pentru rezolvarea problemelor complexe. Pe spatele capului este marcat ca slogan, apoi rafinam pas cu pas structura. Pe pielea neagră a pielii, pidzavdannya, la negru, este împărțit în cele joase. Soluția fragmentului încadrat al sarcinii de pliere ca bloc de program independent - subprogram.

V. Tema pentru acasă

Rozvyazati zavdannya (în scris):

  1. Îndoiți procedura astfel încât rândul introdus să înlocuiască literele a cu *.
  2. Sunt date două propoziții. Aflați câte litere „n” au. (Determinați funcția rozrahunka a numărului de litere „n” din discurs.)

Recursiune în Pascal Cititor: Tlekhurai Yu.V. MOU „Liceul nr. 8” Ce vedeți în imagini? Acest fenomen din univers se numește recursiunea Pentru a înțelege recursiunea, trebuie să înțelegeți puțin recursiunea. recursiunea - o desemnare parțială a unui obiect prin el însuși, o desemnare a unui obiect dintr-o varietate de denumiri anterioare. Agățat științific: recursiunea - metoda de atribuire a unei clase obiectelor și metodelor sarcinilor anterioare ale uneia sau mai multor (sună simplu) dintre tipurile de bază de metode, iar apoi sarcinilor pe baza regulii lor de a induce clasa care este aleasă. Peter Deutsch Peter Deutsch

Iterație de oameni.

Recursiunea este vederea lui Dumnezeu.

Recursiune în fizică Recursiune în mov și literatură doi plasați unul în fața unei oglinzi: au două coridoare de oglinzi care se estompează. Ultimul capăt al recursiunii inepuizabile este efectul autoexcitarii (legatură inversă pozitivă) în circuitele electronice de amplificare dacă semnalul de la ieșire este trimis la intrare, acesta este întărit, este din nou trimis la intrarea circuitului și este întărit din nou. Pіdsilyuvachi, kotrim un astfel de mod de lucru є personal, sunt numite auto-oscilatoare. Un exemplu de statut de dicționar recursiv: „Preotul are un câine...” - o recursivitate tipică Descrierea dekilka a lui Stanislav Lem a incidentelor cu recursivitate inepuizabilă: O poveste despre morminte („Zorienii lui Ioan cel liniștit”), în care eroul trece secvențial în statistici despre morminte la statistici , uită-te la articolul despre sepulcarie, într-un mod nou de a face față articolului „sepulka” Rozpovid despre mașina inteligentă, cât de mică este mintea suficientă și noaptea, astfel încât pentru finalizarea setului de sarcini, induceți-vă să fiți similar și predați decizia, suma de bani a devenit noua mașină a fost similară cu sine și a transmis comanda). Recursiunea în programare este o modalitate de organizare a unui proces de enumerare, în care procedura are funcția de a rula operatori de depozit în sine. Pentru ca o asemenea atrocitate să nu fie de neiertat, textul subprogramului poate avea minte, pentru o atrocitate atât de îndepărtată nu este necesar. într-un astfel de rang, animalul recursiv poate fi inclus doar într-unul dintre subprograme. fundul. Calcularea factorialului unui număr natural Adăugați o funcție recursivă, ca și cum ați calcula factorialul unui număr n printr-un rang avansat: funcția f (n: întreg): longint; începe dacă n = 1 atunci f:= 1 altfel f:= n * f(n -1); (Funcțiile se apelează la sine) termina programul Pascal cu recursivitate: Var n: întreg; a:longint; factorial(n: întreg): longint; începe dacă n = 1 atunci factorial:= 1 altfel factorial:= n * factorial (n -1); Sfârşit; Începeți scrierea('n='); readln(n); A:=factorial(n); Scrie('n!=',a); readln; Sfârşit. Leonardo Pisanski Fibonacci

Numerele Fibonacci - elementele șirului numeric

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Sarcină: Introduceți pe ecran o serie de numere Fibonacci care sunt formate din n elemente. Descrierea modificărilor: n - numărul de elemente este scăzut; a, b - valorile celor două elemente rămase sunt scăzute; c - schimbarea tampon („de rezervă”); i - lichilnik. Algoritm de rezolvare a problemelor: 1. Se ia valoarea lui n. 2. Atribuiți a și b valorile 0 și 1 în mod corespunzător (ultimele numere din seria Fibonacci). Arată-le pe ecran. 3. Pornind de la al 3-lea element cu n: a) se afișează pe ecran suma lui a și b; b) salvați valoarea modificării b la c; c) scrieți suma lui a și b pentru b; d) atribuiți a la c. Programul iterației mele victorioase Pascal: programul Fibonacci; var a, b, c, i, n: întreg; ÎNCEPE scrie ("n = "); readln(n); a:=0; scrie o," "); b:=1; scrie(b," "); pentru i:=3 până la n începe scrie (a+b," "); c:=b; b:=a+b; a:=c; Sfârşit; readln; Sfârşit. Programul recursiunii mele victorioase Pascal: O atribuire recursivă pentru calcularea numerelor Fibonacci poate arăta astfel: Este ușor să convertiți alocarea numerelor Fibonacci într-o funcție recursivă: funcția f(n: Integer) : longint; începe dacă n<= 1 Then f:= n else f:= f(n– 1) + f(n - 2); end; Program chislaFibonacci; var n,i: integer; a: longint; function fib (n: integer): longint; begin If n <= 1 Then fib:= n else fib:= fib(n– 1) + fib(n - 2); End; begin write(‘n=’); readln(n); for i:=0 to n do begin A:= fib (n); write (‘ ’,a); end; readln; end. Домашнее задание Написать программу нахождения НОД двух натуральных чисел, используя алгоритм Евклида и рекурсию Даны два натуральных числа Aі b. Yakscho A= b, apoi nid ( A,b) = a. Yakscho A>b, apoi nid ( A,b)= nid ( a -b,b). Yakscho A< b, apoi nid ( A,b)= nid ( A,b-a). Programul noddxxіsel; var a, b: longint; function nod(a,b:longint): longint; begin If a = b Then nod : = a else if a > b then nod : = nod (a-b, b) else nod : = nod (a, b-a) End; incepe sa scrie('a='); readln(a); scrie('b='); readln(b); A:= încuviințare (a,b); scrie('din cap=',a); readln; Sfârşit. Zavdannya despre Hanoi Vezhi. În cazul obov'yazkovo, datorați următoarele reguli:

  • puteți muta un singur disc o dată;
  • un disc mai mare nu poate fi plasat pe un disc mai mic;
  • scoaterea discului trebuie pusă pe un fel de turlă în fața lui, de parcă va fi un alt disc.
  • Pratsioviti buddіyski chentsi zi și noapte pentru a transfera discuri de la turlă la turlă. Legenda este puternică, dacă vrei să-ți termini munca, vino să sfârșești lumea. Ar fi posibil să se îmbunătățească faptul că, pentru finalizarea sarcinii cu 64 de discuri, este necesară relocarea 264-1. Pentru cel care merită sfârșitul lumii, atunci vinurile vor deveni sute de milioane în cinci ani, după cum știți, acel disc se mișcă într-o secundă. În 1883, matematicianul Eduard Luca de la Colegiul Saint-Louis a inventat pentru ea o legendă.

Pe unul dintre cele trei turle de diamant sunt îmbrăcate 64 de discuri rotunde de aur. Discurile sunt realizate din diferite raze și ciufulite pe turle în ordinea modificării razelor de la bază la vârf. Este necesar să transferați discurile de pe prima spire pe alta, iar a treia spire pentru consum.

Administrator. Compuneți un program recursiv, de parcă ar fi mai bine să puneți o ordine mai mare despre Hanoi cu numărul de discuri, care este mai scump n (n = 1, 2, ...). Soluţie. Să introducem nume pentru turle: a, b, c. Haide hanoi(n,a,b,c)- este necesară o funcție care rotește succesiunea de discuri în mișcare din A pe b din victorii c conform regulilor descrise mai sus. Când n=1, rezolvați problema prin mi vmієmo. Trebuie doar să efectuați operația „Mutare A pe b". Să spunem, dar vom întrerupe sarcina pentru n - 1 disc. Mutați n-1 discuri A pe h. Să mutăm un disc care este afară A pe bі, narashti, mutați n-1 disc z c pe b. Date de intrare: numărul de discuri, care se află pe pătratul a; Date săptămânale: secvenţă dіy; Krok0: (în funcție de tipul modificării); Krok1: (descrierea procedurii Hanoi, modul de afișare a secvenței de acțiuni); Krok1.1: (mutați (n-1) discuri din caseta a în caseta b); Krok 1.2: (mută al n-lea disc de la a la c); Croc1.3: (mută (n-1) disc de la b la c); (Kroki 1.2-1.3 sunt numărate recursiv); Krok2: (programul principal); Krok2.1: (introducerea numărului de discuri); Krok2.2: (wiki procedura Hanoi). Rezolvarea problemelor la Programul Pascal bahnya; varn: întreg; a, b, c: char; procedura hanoi(n: integer; a, b, c: char); începe dacă n>0 atunci începe hanoi(n-1,a,c,b); writeln ("Peremestit disc so sterzhnya ",a,"na sterzhen" ",b); hanoi(n-1,c,b,a); final; final; n);a:="a";b:= "b";c:="c";hanoi(n,a,c,b);readln;end. X pas indicator inainte de Fie k = 0, fie pas(k, x) = 1, altfel pas(k, x) = x pas(k-1, x) Program stepen; variază: reală; n: întreg pasul funcției(k:întreg, x:real): real; începe Dacă k = 0 Atunci pas:= 1 alt pas:= x * pas(k-1, x) Sfârșit; begin write('vvedite foundation stepeni x='); readln(y); write('vvedite pokazatel stepeni k='); readln(n); scrie('x v stepeni k=', pas(n, y)); readln; Sfârşit. Muncă independentă

  • Aflați suma cifrelor unui număr
  • În mod semnificativ, chi є dat un număr natural, să iertăm
  • Găsiți prima cifră a unui număr
  • Traduceți un număr natural în zecimi. la Dviykov
  • Cunoașteți suma elementelor unui întreg tablou, care este format din 20 de elemente
  • Amintiți-vă semnificațiile a două numere întregi
  • Ordonați semnificațiile lui trei a, c, hîn ordine
  • Aflați numărul de cifre pentru un număr natural n
  • Găsiți cel mai mare dintre trei numere date
  • Aflați numărul de numere pozitive din mijlocul chotirioxului A, B, C, D
Vіdpovіdі munca independentă №2 Program simplu; var n, m, s: întreg; funcția prost(m, n:întreg): boolean; începe Dacă n = m Atunci prost:= adevărat altfel prost:= (n mod m<>0) și simplu (m+1, n); Sfârşit; începe scrierea('n='); readln(n); M:=2; Dacă prost(m,n) atunci scrieți (n,'prostoechislo') Altfel scrieți (n,'compoziție'); readln; Sfârşit.

traducere program;

procedura dvd(n:longint);

Dacă n >1 Atunci dvd(n div 2);

scrie (n mod 2);

slide 1

slide 3

Subprograme: modificări globale și locale Subprogramele de utilizare pot fi descrise în divizia de descriere. Subprogramul pielii poate mama im'ya. Informațiile dintre programul principal și subprograme sunt transmise prin parametri globali (modificări), care sunt descriși în programul principal. Subprogramele din mijloc nu pot decât să modifice parametrii locali (modificări), – numele și valorile lor pot fi sensibile numai în limitele dintre subprograme și programele indisponibile care sunt apelate.

slide 4

Parametri formali și actuali În descrierea subprogramului, parametrii sunt dați numai prin nume, deci se numesc formali. Înainte de subprogramele săptămânale, duhoarea poate fi semnificativă. Nu rezervă mai mult spațiu pentru parametrii efectivi, fixându-le numărul și tipul de date. Tipuri de parametri actuali: Parametrii de valoare arată cum ar trebui să fie atribuită valoarea parametrului principal al subrutinei. După finalizarea subprogramului, duhoarea va crește valorile anterioare, astfel încât acestea au fost modificate în subprogram. Parametrii-modificări în subprograme rămân în spațiul formal, își pot modifica valorile pe parcursul subprogramului și pot salva modificările la ieșirea din subprograme (înainte de modificarea parametrilor, puneți cuvântul cheie Var).

slide 5

slide 6

Descrierea procedurii Programul Pr1; Const...Type...Var...Procedure(); Partea de descriere Început Corpul procedurii Sfârșit; ÎNCEPE ... (); …Sfârşit. Când procedura se repetă, parametrii formali sunt înlocuiți cu cei efectivi.

Slide 7

Procedura de calcul a sumei a două numere program pr1; Utilizați crt; Var a, b, s: real; procedura summa(x,y:real;var z:real); beginz:=x+y; Sfârşit; începe clrscr; writeln("introduceți a,b"); readln(a,b); suma(a, b, s); writeln(" suma numerelor ",a:3:1," i ",b:3:1," = ",s:3:1); readln; Sfârşit. x,y,z – parametri formali, modificări locale a,b,s – modificări globale a,b,s – parametri actuali x y z a b s Parametru-valoare Modificare-parametru

Slide 8

Slide 9

slide 10

Enumerați valorile virasei a:=(3n!+2m!)/(m+n)! Pentru semnificația factorialului, ce tip de schimbare dotally vikoristati? programpr2; Utilizați crt; Varm,n,x,y,z:întreg; a:real; procedura fapt (d:intger;var q:intger); var i:intger; beginq:=1; pentru i:=1 la d q:=q*i; Sfârşit; începe clrscr; writeln("introduceți valorile n, m"); readln(n,m); fapt (n, x); fapt (m,y); fapt (m+n,z); a:=(3*x+2*y)/z; writeln("valoare spirală pentru m=",m:4," și n=",n:4,"even",a:8:3); readln; Sfârşit. N! = 1 2 3 ... N

slide 11

Introducerea elementelor într-o matrice unidimensională Funcția Random(X) formează un număr aleator de la 0 la X de un întreg sau de tip vorbire (înainte de a intra în funcție, este necesară inițializarea procedurii Randomize). Dacă parametrul X nu este specificat, rezultatul va fi de tip Real în intervalul 0,0 până la 1,0. Pentru a crea o matrice de numere aleatoare multiple din intervalul aleatoriu (B-A+1)+A Sarcină: Aranjați intrarea unui element într-o matrice unidimensională pentru un generator suplimentar de numere aleatoare (interval de valori de la -10 la 20) și introducerea elementelor ca procedură. Pentru A=-10 B=20 aleatoriu(20-(-10)+1)+(-10)

slide 12

slide 13

slide 14

Descrierea funcției Funcțiile sunt recunoscute pentru a număra mai mult de o valoare, 1. În primul rând, înseamnă că procedura poate avea noi valori pentru mulți parametri, iar funcția este doar una (va fi rezultatul ). 2. O altă definiție a titlului funcției. În plus, se adaugă cuvintele FUNCȚIE, după care se află numele funcției, apoi în brațele rotunde, există o listă de parametri formali, după care se scrie prin dublu tipul rezultatului funcției. 3. La aceeași funcție, este posibil să existe un operator de atribuire a limbii, dar în partea stângă ar trebui să existe funcția lor, iar în partea dreaptă - valoarea її. Funcție (): Parte de descriere Început Funcție body:=; Sfârşit;

slide 15

Enumerați valorile virasei a:=(3n!+2m!)/(m+n)! programul fn2; Utilizați crt; Varm,n:întreg; a:real; function fact(d:intger) :longint; var i:intger; q:longint; beginq:=1; pentru i:=1 la d q:=q*i; fapt:=q; Sfârşit; începe clrscr; writeln("introduceți valorile n, m"); readln(n,m); a:=(3*fapt(n)+2*fapt(m))/fapt(m+n); writeln("valoare spirală pentru m=",m:4," și n=",n:4,"even",a:8:3); readln; Sfârşit.

slide 16

Compilați programul, după cum știți ab, deci pasul b al numărului A, de A і B - întregul număr i> 0, care se introduce de la tastatură. Stocați programul prin înlocuirea procedurii cu funcția program pr2; Utilizați crt; Var a, b: întreg; c:longint; Pașii funcției(x,y:întreger):longint; var i:intger; s:longint; începe s:=1; pentru i:=1 la y face s:=s*x; Stefan:=s; Sfârşit; începe clrscr; writeln("introduceți valorile a, b"); readln(a,b); C:=etapa(a,b); writeln("s=",s); readln; Sfârşit.

diapozitivul 17

slide 18

Mecanism de transfer al parametrilor la funcții și proceduri Modificări globale Modificări locale a b 3 3 -3 Adrese s a b c 48 Adrese s A:=b+3 B:=3*a C:=a+b Stan s 24 5 8

diapozitivul 19

Pentru a accelera prezentarea din timp, creați-vă propria postare Google și vedeți înainte: https://accounts.google.com


Subtitrări înainte de diapozitive:

Proceduri și funcții în Pascal. Recursie Vikonav profesor de informatică școala DBOU 1362 Sanina Marina Sergiivna

Un subprogram este o parte autonomă a programului care implementează algoritmul cântecului și permite accesul la acesta din alte părți ale programului principal. Subrutina vă permite să implementați una dintre cele mai moderne metode de programare - programarea structurală.

Funcția de procedură de subprogram FUNCȚIE DE PROCEDURĂ

Procedurile și funcțiile în Pascal sunt descifrate în descrierea subdiviziunii subdiviziunilor.

Funcțiile și procedurile au parametri (modificare, modul de transmitere a valorilor). Există două feluri de mirosuri: 1) Formale - tі, care sunt în descrierea subprogramelor 2) Factual - tі, care sunt transferate din programul principal în funcție și procedură. Parametrii efectivi se datorează formalității cantității, ordinii tipului.

De asemenea, subprogramele au modificări. cu yakim a câștigat nadali pracyuє. Duhoarea este din nou împărțită în două tipuri: 1) Modificări globale, astfel încât acestea să fie incompatibile cu toate programele 2) Locale - cele, care sunt mai puține pentru proceduri și funcții

Proceduri Vikoristovuyutsya în toamnă, dacă în program este necesar să se ia puțin din rezultate. Există două tipuri de proceduri: cu parametru; nici un parametru.

Structura procedurii este similară cu structura programului și este alcătuită din antet și bloc (corpul procedurii). procedura Im'yaProcedura; var … începe … // Sfârșitul corpului procedurii; begin // program principal body end.

Proceduri fara parametri procedura pr; var i: întreg; Programul este dat să afișeze un rând de 60 de stele.

Procedura parametrilor. Îndoiți programul pentru schimbul a două numere cu z=5 și d=7 programul obmenDan; var c,d:intger; procedura obmen (a, b: întreg); var m:întreg; beginm:=a; a:=b; b:=m; scrieln(a,b); Sfârşit; begin writeln("Introduceți 2 numere:"); readln(c, d); obmen(c, d); writeln(c," ",d); Sfârşit.

Analiza problemei 1) la apelarea procedurii obmen cu doi parametri 5 și 7, schimbând a și b, numerele 5 și 7 sunt de asemenea plasate în același mod: s 5 d 7 a 5 b 7

Pentru a schimba c і d , a і b au fost trimise către acele celule de memorie în sine (dacă valorile lui a і b sunt modificate, atunci valorile lui і c , d sunt modificate) este necesar atunci când se descrie parametri formali, înainte de modificările necesare, adăugați cuvântul VAR: schimb de procedură (var a, b: întreg); h 5 d 7 a b

Funcții Setul de funcții folosit de filmul Pascal este larg (ABS, SQR, TRUNC subțire). Dacă programul este pornit cu o funcție nouă, non-standard, este necesar să descrieți programul în text, după care este posibil să îl accesați din program. Revenirea la funcție este atribuită în partea dreaptă a operatorului, din numele funcției atribuite și parametrii actuali. Funcțiile pot fi mame ale constantelor, tipurilor, modificărilor, procedurilor și funcțiilor locale. Descrierea funcțiilor Pascal este similară cu descrierea procedurilor.

Vіdminnі risi funktsіy: - rezultat vikonannya - o valoare, așa cum este atribuită numelui funcției și transferată în programul principal; - Aceste funcții pot fi incluse într-un virus ca operand.

Descrierea funcției: funcția (): tip; (descrierea divizată a numelor locale) Începe (operatorii împărțiți pentru a se potrivi) :=; (parametrul obv'language) End;

Funcții Wiklik: = (); 1 . Partea dreaptă a operatorului este atribuită. 2. La o virazi, scho să stea pentru mintea operatorului de decontaminare. 3. La procedura de vizualizare, ca urmare a muncii funcției.

Recursie Procedurile și funcțiile Pascal se pot numi așa. mama recursivității puterii. Funcția recursivă este obov'yazkovo datorată răzbunării sfârșitului minții de recursivitate, reduce bucla programului. Cu absorbția recursivă a pielii, se creează schimbări locale impersonale. Pentru a schimba, schimbați poziția funcției, care este numită, nu schimbați.

Adăugați o funcție recursivă care calculează factorialul numărului n cu un rang avansat: n! = 1 deci n = 1 n! = (n-1)! n, deci n > 1

funcția f(n: întreg): întreg; începe dacă n = 1 atunci f:= 1 altfel f:= n * f (n -1); (funcția f se cheamă la sine) end;

Țineți cont de valorile modificării a, b, c, astfel încât duhoarea să fie sortată în aceeași ordine (a ≤ b ≤ c). Date n numere întregi. Cunoașteți numărul din mijloc, astfel încât suma cifrelor să fie valoarea maximă.