Slide 2

Plan

Concept de buclă pentru declarația de buclă în timp ce bucla repetă referințe de buclă

Slide 3

Literatură

Kastornov A.F., Evstratova G.A. Limbajul de programare Pascal: un manual pentru universități. - Cherepovets: GOU VPO ChGU, 2010 .-- 117 p. - Bibliografie: P.114. Manual electronic despre limbajul de programare Pascal /http://pascal.guti.ru Plan

Diapozitivul 4

Conceptul ciclului

Algoritmii pentru rezolvarea multor probleme sunt ciclici, în care o anumită succesiune de acțiuni este efectuată de mai multe ori pentru a obține un rezultat. De exemplu, un program de control al cunoștințelor afișează o întrebare, acceptă un răspuns, adaugă o notă pentru un răspuns la totalul punctelor, apoi repetă aceste acțiuni până când subiectul răspunde la toate întrebările. Sau, de exemplu, pentru a găsi numele de familie solicitat în listă, verificați primul nume al listei pentru coincidența cu cel dorit, apoi al doilea, al treilea etc. până când se găsește numele de familie solicitat sau se ajunge la sfârșitul listei.

Diapozitivul 5

Un algoritm în care există un grup de operatori executați de mai multe ori se numește ciclic. Grupul de afirmații repetate se numește corpul buclei. În Pascal, buclele pot fi implementate folosind instrucțiunile de buclă For, While și Repeat. Plan

Diapozitivul 6

Pentru operator buclă

Operatorul buclă For este utilizat atunci când corpul buclei trebuie executat de mai multe ori, iar numărul de repetări este cunoscut în prealabil.

Diapozitivul 7

Prima formă de scriere a operatorului buclă For

Prima formă a instrucțiunii For în general arată după cum urmează: ForCounter: \u003d Start_valuetoEnd_valuedoOperator; Unde Pentru, a, face sunt cuvinte de serviciu. Un contor este o variabilă de tip ordinal (de obicei de tip întreg) care determină de câte ori se va repeta bucla. Numărul de repetiții este calculat folosind formula: Valoare_ sfârșit - Valoare_început + 1. End_value trebuie să fie mai mare sau egal cu Start_value.

Diapozitivul 8

Dacă corpul buclei constă din mai multe instrucțiuni, atunci prima formă de scriere a instrucțiunii For arată astfel: ForCount: \u003d Start_valuetoEnd_valuedo Begin (Corpul buclei) End;

Diapozitivul 9

Să luăm în considerare algoritmul buclei For în prima notație. Contorului i se atribuie Start_value. Condiția este bifată: Valoarea contorului este mai mare decât Valoarea_indică? Dacă condiția este adevărată (Da), bucla se termină. Dacă condiția este falsă (Nu), atunci corpul buclei este executat, atunci valoarea contorului este mărită cu una și condiția este verificată din nou, adică punctul 2.

Diapozitivul 10

A doua formă de scriere a operatorului For loop

A doua formă a instrucțiunii For, în general, arată după cum urmează: For Counter: \u003d Start_value downto End_valuedo Statement; Unde: Pentru, până la, face - cuvinte de serviciu. Un contor este o variabilă de tip ordinal (de obicei de tip întreg) care determină de câte ori se va repeta bucla. Numărul de repetări este calculat prin formula: Start_value - End_value + 1. Start_value trebuie să fie mai mare sau egal cu End_value.

Diapozitivul 11

Dacă corpul buclei constă din mai multe instrucțiuni, atunci a doua formă a instrucțiunii For arată astfel: ForCount: \u003d Start_value downto End_valuedo Begin // Corpul buclei End;

Diapozitivul 12

Să luăm în considerare algoritmul buclei For în a doua formă de notație: contorului i se atribuie valoarea Start_value. Condiția este bifată: Valoarea contorului este mai mică decât Valoarea finală? Dacă condiția este adevărată (Da), bucla se termină. Dacă condiția este falsă (Nu), atunci corpul buclei este executat, atunci valoarea contorului este redusă cu una și condiția este verificată din nou, adică punctul 2.

Diapozitivul 13

Pentru operator buclă

programEx1; var i, n: întreg; (i - contor, n - numărul necesar de stele) s: șir; (s - șir generat de asteriscuri) începe Writeln ("Introduceți numărul de stele"); (se solicită numărul de asteriscuri) Readln (n); (utilizatorul introduce numărul de asteriscuri n) s: \u003d ""; (Formarea unui șir de asteriscuri începe cu un șir gol) (Șirul este format de bucla For. Valoarea start_valorului contorului este 1, Valoarea_Final este numărul necesar de asteriscuri n.) Fori: \u003d 1 to n do s: \u003d s + "*"; (la fiecare pas al buclei un asterisc este lipit de linie) Writeln (s); (linia este afișată) Readln; Sfârșit. Exemplu de plan: Programul generează un șir de asteriscuri. Numărul de asteriscuri pe linie poate fi definit de utilizator.

Slide 14

În timp ce Loop

Bucla While este utilizată atunci când numărul de repetări ale corpului buclei în timpul dezvoltării programului este necunoscut și poate fi determinat numai în timp ce programul rulează. În termeni generali, declarația While este scrisă după cum urmează: While Condition doOperator; Unde sunt În timp ce, nu sunt cuvinte de serviciu. Condiția este o expresie booleană care determină continuarea buclei.

Diapozitivul 15

Dacă corpul buclei constă din mai multe afirmații, atunci bucla While este scrisă după cum urmează: WhileCondition do Begin // Bucla corp End;

Diapozitivul 16

Să luăm în considerare algoritmul buclei While: Starea este verificată. Dacă condiția este adevărată, atunci corpul buclei este executat. Apoi starea este verificată din nou. Dacă condiția este falsă, atunci bucla se termină.

Diapozitivul 17

Astfel, While este o buclă cu o precondiție sau o buclă „Bye” (corpul buclei este executat în timp ce condiția este adevărată). Dacă în timpul primei treceri a buclei, condiția se dovedește a fi falsă, atunci corpul buclei nu va fi executat nici măcar o dată. Dacă starea nu devine niciodată falsă, atunci ciclul se va repeta la nesfârșit, adică va apărea o buclă.

Diapozitivul 18

Programul Ex2; varAccount: Real; (dimensiunea contului) Luna: Număr întreg; (numărul de luni de la deschiderea contului) începe Contul: \u003d 1000; (1000 de ruble au fost depuse în cont) Luna: \u003d 0; (contul abia deschis) în timp ce Account

Diapozitivul 19

Repetați bucla

Bucla Repeat, la fel ca bucla While, este utilizată în program atunci când este necesar să executați corpul buclei de mai multe ori, dar numărul de repetări nu este cunoscut în prealabil. În general, ciclul Repetare este scris după cum urmează: Repetați // Corpul ciclului Până Condiția; Unde Repetați, Până când sunt cuvinte de serviciu. Condiția este o expresie booleană care determină sfârșitul buclei.

Diapozitivul 20

Să luăm în considerare algoritmul de funcționare al buclei Repeat: se execută corpul buclei dintre cuvintele rezervate Repeat și Until. Starea este verificată. Dacă condiția este adevărată, bucla se termină. Dacă condiția este falsă, corpul buclei este executat din nou.

Diapozitivul 21

Astfel, Repetarea este un ciclu cu o postcondiție sau un ciclu „Înainte” (corpul ciclului este executat până când condiția este adevărată). Prin urmare, corpul buclei este executat cel puțin o dată. Dacă condiția nu devine niciodată adevărată, atunci bucla devine infinită.

Diapozitivul 22

Programul Ex3; var Timp: întreg; (timpul de divizare) Celule: întreg; (numărul de celule) începe Ora: \u003d 0; (celula nu a început încă divizarea) Celule: \u003d 1; (o celulă) Timpul de repetare: \u003d Timp + 3; (după următoarele trei ore) Celule: \u003d Celule * 2; (numărul de celule s-a dublat) Până la celule\u003e 24; (până când condiția „numărul de celule este mai mare de 24” este adevărată) Writeln (Time); (rezultatul rezultat) Readln; Sfârșit. Exemplu de proiectare: o amibă cu o singură celulă se împarte în 2 celule la fiecare 3 ore. Determinați după ce număr de ore numărul de celule va depăși 24.

Vizualizați toate diapozitivele

Descrierea prezentării pentru diapozitive individuale:

1 diapozitiv

Descriere diapozitiv:

Tema lecției: „Algoritmi de structură ciclică. Cicluri de programare în Pascal "Disciplina" Informatică "

2 diapozitiv

Descriere diapozitiv:

Concepte de bază ale subiectului În această lecție sunt studiate următoarele concepte: conceptul de ciclu; varietăți de algoritmi ciclici (o buclă cu o precondiție, o buclă cu o postcondiție, o buclă cu un parametru); diagrame bloc ale algoritmilor ciclici; reprezentarea operatorilor de buclă în limbajul de programare Pascal; utilizarea ciclurilor la rezolvarea problemelor.

3 diapozitiv

Descriere diapozitiv:

Conceptul ciclului La rezolvarea multor probleme, aceeași succesiune de acțiuni este efectuată de mai multe ori. De exemplu, la admiterea într-o instituție de învățământ, un student susține examene, iar punctele pe care le-a câștigat sunt calculate (variabila S; valoarea sa inițială S: \u003d 0;). Pentru fiecare examen promovat, el primește nota N. Dacă nota este mai mare decât „2”, atunci S: \u003d S + N; în caz contrar, terminați calculele (ieșiți din buclă).

4 diapozitiv

Descriere diapozitiv:

Concept de buclă O buclă este o secvență de instrucțiuni care poate fi executată de mai multe ori. Un algoritm de buclă este un algoritm care oferă repetări multiple ale aceleiași acțiuni pe date noi. Există trei tipuri de operatori de buclă: bucle cu o precondiție; bucle cu postcondiție; cicluri cu un contor.

5 diapozitiv

Descriere diapozitiv:

Buclă cu condiție prealabilă. Bucla de tip WHILE WHILE Indică executarea corpului buclei atâta timp cât condiția scrisă după cuvânt este îndeplinită în timp ce diagrama bloc Buclă cu o precondiție

6 diapozitiv

Descriere diapozitiv:

Buclă cu condiție prealabilă. Bucla WHILE WHILE tip O buclă cu o condiție prealabilă este utilizată atunci când numărul de repetări ale corpului buclei nu este cunoscut în prealabil, dar depinde de condiție. Dacă condiția este adevărată, atunci corpul buclei este executat, atunci condiția este verificată din nou și așa mai departe până când condiția devine falsă.

7 diapozitiv

Descriere diapozitiv:

Operator de buclă cu precondiție (buclă WHILE) Acest operator de repetiție cel mai frecvent utilizat are o formă generală Pascal (format): WHILE<условие> DO<оператор>; aici WHILE, DO - cuvinte rezervate (din engleză: while - deocamdată, do - to do);<условие> - exprimarea unui tip logic;<оператор> - un operator arbitrar (posibil compus).

8 diapozitiv

Descriere diapozitiv:

Buclă cu postcondiție. Buclă de tip DO. Ordinea de execuție a unei instrucțiuni buclă cu o condiție post. Execuția instrucțiunilor 1-N se repetă până când condiția devine adevărată. În această buclă, starea este verificată numai după ce corpul buclei este executat. Prin urmare, rezultă că corpul este întotdeauna executat cel puțin o dată Diagrama bloc a unei bucle cu o condiție post

9 diapozitiv

Descriere diapozitiv:

Buclă cu postcondiție. Tipul ciclului ÎNAINTE DE IMPORTANT! O buclă cu o postcondiție este executată cel puțin o dată, indiferent dacă condiția este îndeplinită. Comoditatea fără îndoială a unei bucle cu o condiție postală este că mai mulți operatori pot fi scrise în interiorul ei fără a utiliza un operator compus. Verificarea stării este localizată după corpul buclei. Cuvânt de serviciu PÂNĂ

10 diapozitiv

Descriere diapozitiv:

Bucla operator cu postcondiție (buclă de tip DO - PÂNĂ) Vizualizarea generală (format) a operatorului buclă cu postcondiție în Pascal este următoarea: Repetați<Оператор 1>; <Оператор 2>; … <Оператор N>; Pana cand<условие>;

11 diapozitiv

Descriere diapozitiv:

Un exemplu de utilizare a unui operator de buclă cu o condiție postală Pentru a afișa în perechi valorile variabilei n \u003d 1, 2, 3, 4, 5, 6, 7, 8, 9 și variabila a \u003d 10, 20, 30, 40, 50, 60, 70, 80, 90 acest operator va arăta ca: n: \u003d 0; repetați n: \u003d n + 1; a: \u003d 10 * n; writeln (n: 2, '', a: 3); până la n\u003e \u003d 9;

12 diapozitiv

Descriere diapozitiv:

Bucla cu parametru. Bucla de tip PENTRU O buclă cu un parametru este utilizată atunci când este necesară executarea unui număr specificat de pași de buclă. Trebuie remarcat faptul că bucla FOR din Pascal nu este foarte flexibilă (spre deosebire, de exemplu, de acest tip de buclă în limbajul C). Deoarece, în Pascal, parametrul buclei (sau contorul) se modifică cu o sumă egală cu una. Astfel, atunci când trebuie să efectuați un pas fracționat, trebuie să utilizați o buclă WHILE. Există două arome ale unei bucle FOR: incrementarea și decrementarea unui contor (sau parametru). Diagrama bloc a unei bucle cu un parametru (bucla FOR)

13 diapozitiv

Descriere diapozitiv:

14 diapozitiv

Descriere diapozitiv:

Operator buclă cu parametru. FOR Buclă Vizualizare generală (format) a operatorului buclă cu parametrul pentru<счетчик> := <начальное значение> la<конечное значение> începe<Операторы> Sfârșit; pentru<счетчик> := <начальное значение> până la<начальное значение> începe<Операторы> Sfârșit; cu o creștere a valorilor contorului (parametru) cu o scădere a valorilor contorului (parametru)

15 diapozitiv

Descriere diapozitiv:

Operator buclă cu parametru. Bucla de tip FOR Operatorul care implementează bucla FOR - FOR este utilizat dacă este necesar ca un fragment de program să repete un număr specificat de ori pentru<переменная цикла>: = <начальное значение> LA<конечное значение> DO<оператор>; Aici: FOR, TO, DO - cuvinte rezervate (engleză: for, to, execute);<счетчик (параметр) цикла> - o variabilă de tip INTEGER, care se schimbă în interval de la<начального значения>, crescând cu unul la sfârșitul fiecărei etape a ciclului;<оператор> - orice operator (mai des compus).

16 diapozitiv

Descriere diapozitiv:

Operator buclă cu parametru. FOR Loop O instrucțiune FOR constă dintr-un titlu și un corp de buclă. O instrucțiune compusă situată în corpul buclei trebuie să fie inclusă între parantezele declarației de început și sfârșit. · De obicei, „i” este folosit ca identificator al contorului. · Variabila contorului trebuie să fie de tip ordinal. De exemplu, tip întreg: octet, număr întreg. · Valorile inițiale și finale ale parametrului ciclului nu pot fi modificate în timp ce ciclul rulează. · Operatorul FOR este utilizat pentru a organiza bucle cu un număr fix de repetări, cunoscute în prealabil sau determinate în timpul execuției programului.

17 diapozitiv

Descriere diapozitiv:

Utilizarea buclelor în rezolvarea problemelor Fiecare dintre buclele descrise mai sus poate fi utilizată pentru a programa aceleași sarcini Pascal cu un algoritm ciclic.

18 diapozitiv

Descriere diapozitiv:

Task number 1 Deschideți programul PascalABC.NET (mediu de dezvoltare integrat pentru programe în limbajul de programare Pascal) Salvați programul într-un folder cu numele dvs. în folderul de lucru al sistemului PABCWork.NET \\ Your_name \\ Cikl_1.pas Salvați ca ...

19 diapozitiv

Descriere diapozitiv:

Task number 1 Folosind bucla YET (cu o precondiție), compuneți și depanați un program care calculează suma pătratelor tuturor numerelor naturale de la 1 la 100. DATE INIȚIALE: A: întreg; REZULTAT - sumă: S: Longint; Programul Ex1; Var A: Întreg; S: Longint; (Întreg lung) Începeți A: \u003d 1; S: \u003d 0; (variabila S pentru acumularea sumei) În timp ce A<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 diapozitiv

Descriere diapozitiv:

TASK 2. Depanarea programului unei structuri ciclice în limbajul Pascal în programul PascalABC.NET abc; var x, y: întreg; începe x: \u003d 2; în timp ce x<= 10 do begin Y:=x*x; writeln(‘вывод х: ’, x, ‘вывод у: ’, y); x:= x+2; end; end. Применить оператор цикла с предусловием для вычисления значения функции y=x2, при значениях x 2, 4, 6, 8, 10. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_2.pas























Inapoi inainte

Atenţie! Previzualizarea diapozitivelor este utilizată numai în scop informativ și este posibil să nu reprezinte toate opțiunile de prezentare. Dacă sunteți interesat de această lucrare, vă rugăm să descărcați versiunea completă.

Poartă: studierea structurii algoritmice a ciclurilor, crearea de modele și algoritmi pentru rezolvarea problemelor practice.

În timpul orelor

I. Actualizarea cunoștințelor

  • Revedeți conceptul de algoritm, construcțiile de bază ale unui limbaj algoritmic.
  • Să fie capabil să dezvolte un model matematic, un algoritm și o diagramă bloc pentru rezolvarea unei probleme.
  • Înțelegeți limbajele de programare și scopul acestora.
  • Să poată lucra într-un mediu de programare.
  • Cunoașteți structura programului.
  • Să puteți scrie expresii care conțin valori numerice și simbolice.
  • Cunoașteți structura operatorilor și specificul muncii lor.
  • Fii capabil să folosești operatori atunci când scrii programe cu structuri liniare și ramificate.
  • Pentru a putea crea și rula programe pentru depanare pe un computer.

II. Material teoretic pentru lecție

Majoritatea sarcinilor practice necesită repetarea repetată a acelorași acțiuni, adică reutilizarea unuia sau mai multor operatori. (Prezentare)

Să presupunem că doriți să introduceți și să procesați o secvență de numere. Dacă există doar cinci numere, puteți crea un algoritm liniar. Dacă sunt o mie, scrierea unui algoritm liniar este posibilă, dar este foarte plictisitor și irațional. Dacă numărul de numere este necunoscut la momentul dezvoltării algoritmului, atunci algoritmul liniar este fundamental imposibil.

Alt exemplu. Pentru a găsi numele de familie al unei persoane pe listă, verificați primul prenume al listei, apoi al doilea, al treilea etc. până când se găsește cea dorită sau se ajunge la sfârșitul listei. Pentru a depăși aceste dificultăți, puteți folosi cicluri.

O buclă este o secțiune executată în mod repetat a unui algoritm (program). În consecință, un algoritm ciclic este un algoritm care conține bucle.

Există două tipuri de cicluri: cu un număr cunoscut de repetări și cu un număr necunoscut de repetări. Mai mult, în ambele cazuri, ne referim la numărul de repetări în etapa de dezvoltare a algoritmului.

Există 3 tipuri de structuri ciclice:

  • Buclă cu condiție prealabilă;
  • Bucla cu postconditie;
  • Bucla cu parametru;

În caz contrar, aceste structuri sunt numite cicluri precum "Pa", "Înainte", "Pentru".

Forma grafică de înregistrare a datelor structurilor algoritmice:

Buclă cu condiție prealabilă (altfel buclă pana cand) are forma:

condiție - Expresie booleană.

Bucla nu poate fi executată nici măcar o dată dacă valoarea expresiei logice se dovedește imediat a fi falsă.

O serie de comenzi între început și sfârșit sunt executate până la în timp ce condiția este adevărată .

Pentru pentru a încheia ciclul, este necesar ca secvența de instrucțiuni între BEGIN și END să schimbe valoarea variabilelor incluse în condiție.

Buclă cu postcondiție (altfel buclă inainte de) are forma:

condiție - Expresie booleană.

Notă:

Secvența de instrucțiuni întrerepeta șipana cand se va face întotdeauna cel puțin o dată;

Pentru ca bucla să se încheie, este necesar ca succesiunea declarațiilor dintrerepeta șipana cand a modificat valorile variabilelor incluse în condiția de expresie.

Instrucțiunea de repetare, precum instrucțiunea while, este utilizată într-un program dacă este necesar să se efectueze unele calcule repetitive (buclă), dar numărul de repetări nu este cunoscut în prealabil și este determinat de cursul calculului în sine.

Buclă cu parametru (altfel buclă pentru) se pare ca:

i - parametru ciclu;
a este valoarea inițială a ciclului;
b - valoarea finală a ciclului;
h - etapa de modificare a parametrului.

Structura acestui ciclu se numește altfel ciclu i ori.

Această comandă este executată în modul următor: parametrului i i se atribuie valoarea inițială a, comparativ cu valoarea finală b și, dacă este mai mică sau egală cu valoarea finală b, se execută o serie de comenzi. Parametrului i se atribuie valoarea celei anterioare, mărită cu h - pasul modificării parametrului și este din nou comparat cu valoarea finală b.

În limbajul de programare Pascal, pasul schimbării parametrului poate fi egal cu unul sau minus unul.

Dacă există un singur operator între început și sfârșit, atunci parantezele operatorului pot fi omise. Această regulă funcționează pentru buclele „Bye” și „For”.

Luați în considerare un exemplu de rezolvare a problemelor folosind aceste structuri

Exemplu.

Calculați produsul numerelor de la 1 la 5 folosind diferite opțiuni de buclă

Model matematic:

P \u003d 1 2 3 4 5 \u003d 120

Să alcătuim un algoritm sub forma unei diagrame bloc.

Pentru a verifica corectitudinea algoritmului, să completăm tabelul de urmărire.

Etapa Operațiune R eu Verificarea stării
1 P: \u003d 1 1
2 i: \u003d 1; 1 1
3 eu<=5
P: \u003d P * I
i: \u003d i + 1
1 1 1<=5, да (истина)
4 eu<=5
P: \u003d P * I
i: \u003d i + 1
2 2 2<=5, да (истина)
5 eu<=5
P: \u003d P * I
i: \u003d i + 1
6 3 3<=5, да (истина)
6 eu<=5
P: \u003d P * I
i: \u003d i + 1
24 4 4<=5, да (истина)
7 eu<=5
P: \u003d P * I
i: \u003d i + 1
120 5 5<=5, да (истина)
8 eu<=5
P: \u003d P * I
i: \u003d i + 1
6<=5, нет (ложь)

Verificarea unei stări are loc în mai mulți pași: verificarea stării și executarea comenzilor pe una dintre ramuri. Prin urmare, tabelul de urmărire nu înregistrează instrucțiunile algoritmului, ci operațiunile individuale efectuate de computer la fiecare pas.

Primul pas: Lui P i se atribuie valoarea unu.

Pasul doi: i se atribuie valoarea unu.

Pasul trei: dacă i este egal cu unu, verificăm condiția una este mai mică sau egală cu cinci, da, condiția este adevărată, atunci lui P i se atribuie valoarea înmulțită cu una, vor fi două. Pentru i: unu plus unu sunt doi.

Pasul patru:dacă i este doi, verificăm condiția doi este mai mică sau egală cu cinci, da, condiția este adevărată, atunci lui P i se atribuie valoarea 2 înmulțită cu una, va fi 2. Pentru i: doi plus unu, vor fi trei.

Pasul cinci:dacă i este egal cu trei, verificăm condiția trei este mai mică sau egală cu cinci, da, condiția este adevărată, deci lui P i se atribuie valoarea de două ori trei, va fi șase. Pentru i: trei plus unu sunt patru.

Pasul șase:cu i egal cu patru, verificăm condiția patru este mai mică sau egală cu cinci, da, condiția este adevărată, apoi lui P i se atribuie valoarea șase înmulțită cu patru, va fi douăzeci și patru. Pentru i: patru plus unu sunt cinci.

Pasul șapte:cu i egal cu cinci, verificăm condiția cinci este mai mică sau egală cu cinci, da, condiția este adevărată, apoi lui P i se atribuie valoarea douăzeci și patru înmulțită cu cinci, va fi o sută douăzeci. Pentru i: cinci plus unu sunt șase.

Pasul opt:dacă i este șase, verificăm condiția șase este mai mică sau egală cu cinci, nu, condiția este falsă, atunci ieșim din buclă și, ca rezultat, obținem ultima valoare egală cu o sută douăzeci.

Programul Pr1;
Var i: întreg;
Începe
P: \u003d 1;
i: \u003d 1;
In timp ce eu<=5 do
începe
P: \u003d P * i;
i: \u003d i + 1;
Sfârșit;
Scrieți ('P \u003d', P);
sfârșit.

Pentru o buclă cu o condiție postală, să construim o diagramă și un tabel de urmărire. (slide16)

Ca rezultat, obținem ultima valoare egală cu o sută douăzeci la pasul al șaptelea

Și pentru un Loop cu un parametru, construiți o diagramă bloc și un tabel de urmărire. (slide17)

Ca rezultat, obținem ultima valoare egală cu o sută douăzeci la al șaselea pas

O sarcină:

Afișați numere de la 1 la 5 în:

  1. ordin direct;
  2. ordine inversă.

Model matematic:

  1. 1 2 3 4 5;
  2. 5 4 3 2 1.

Schema bloc și programul pentru rezolvarea problemei sunt prezentate pentru numere în ordine înainte și inversă.

(diapozitivul 21)

Să scriem algoritmii considerați în limbajul de programare Pascal.

(diapozitivul 22)

III. Rezumatul lecției

Așa că am analizat următoarele probleme:

  1. Ciclul structurii algoritmice;
  2. Tipuri de structuri algoritmice:
    1. Buclă cu condiție prealabilă;
    2. Bucla cu postconditie;
    3. Bucla cu parametru;
  3. Moduri luate în considerare pentru a scrie aceste structuri;
  4. Am analizat exemple de rezolvare a problemelor folosind aceste structuri.

Tipuri de bucle

bucle cu parametru pentru

bucle cu condiție prealabilă

ciclu in timp ce cu condiție prealabilă

ciclu repetați - până cu postcondiție


Buclă cu condiție prealabilă în Pascal - CÂND

Un operator de buclă cu o condiție prealabilă efectuează acțiuni de un număr necunoscut de ori în avans. Bucla se închide dacă o expresie logică sau rezultatul acesteia se dovedește a fi falsă.

Deoarece corectitudinea expresiei logice este verificată la început, corpul buclei nu poate fi executat nici măcar o dată.


Structura ciclului IN TIMP CE


Diagrama bloc de bucle IN TIMP CE

operator

condiție


Exemplu

Problemă: scrieți un program care calculează suma tuturor numerelor pare de până la 50.

writeln ("Suma este:", sumă);


O sarcină

Scrieți un program care să caute n!.


Buclă cu condiție postală în Pascal - REPETĂ-PÂNĂ

Acest operator este similar cu operatorul unei bucle cu o condiție prealabilă, dar diferă de aceasta prin faptul că starea este verificată după ce corpul buclei (acțiunile) sunt executate. Acest lucru asigură că este executat cel puțin o dată, spre deosebire de buclele analizate anterior.

Vă rugăm să rețineți că acest operator de buclă presupune prezența mai multor operatori în corpul buclei, adică puteți efectua mai multe acțiuni, prin urmare cuvintele de serviciu Începe și Sfârșit nu e necesar.


Structura ciclului

REPETĂ-PÂNĂ


Diagrama bloc de bucle REPETĂ-PÂNĂ

operator

condiție


Exemplu

Sarcină: scrieți un program care determină suma primei și ultimei cifre dintr-un număr.

a, b, c, d: întreg;

writeln („introduceți un număr”);

writeln („Suma primei și ultimei cifre este„ c);


O sarcină

Scrieți un program care determină dacă un număr este prim.


Buclă cu parametru în Pascal - FOR

Ciclu PENTRU setează condiția în care programul va funcționa înainte de execuția sa, să presupunem că trebuie să buclați programul de n ori, atunci acest lucru se poate face cu ușurință folosind această buclă.

Ciclu PENTRU există o trăsătură caracteristică - un contor, care este de obicei notat cu litera i sau j.

În buclă, contorul poate fi setat ca în cel direct (cuvântul de serviciu la ), și în ordine inversă (cuvântul de serviciu până la ).


Structura ciclului PENTRU

PENTRU i: \u003d n1 TO n2 DO

Prima formă de înregistrare

PENTRU i: \u003d n2 DOWNTO n1 DO

A doua formă de înregistrare


Diagrama bloc de bucle PENTRU

i: \u003d n1 ... n2

Corpul buclei


Exemplu

Sarcină: scrieți un program care calculează puterea a n-a unui număr dat.

a, n, i, pr: întreg;

writeln („Introduceți un număr“);

writeln („Introduceți gradul numărului”);

pentru i: \u003d 1 to n do

writeln („Gradul numărului este”, pr);


O sarcină

Scrieți un program care găsește numărul P \u003d (1-1 / 2) (1-1 / 3) *… * (1-1 / n).

N este introdus de la tastatură.