Prezentare - algoritmi ciclici. Algoritmi ciclici Algoritm ciclic ICT exemplu pascal

19.11.2020 Știri

Algoritmi ciclici04.06.2017
Algoritmi ciclici
Tipuri de cicluri și ciclice
Comenzi Pascal

Un ciclu este multiplu
repetarea secvenței
actiuni
Parte repetitivă a algoritmului
numit CORPUL BUCLEI
Tipuri de cicluri
Cu un număr dat
repetari
Condiție de îndeplinire
ciclu
Cu conditie
Condiție de ieșire
ciclu

Tipuri de cicluri (conținut)
Buclă cu precondiție
Practică
Bucla cu postcondiție
Practică
Buclă cu parametri
Practică
Rezolvarea problemelor complexe

Buclă cu precondiție

Practică

condiția și acțiunea care trebuie efectuată numai
După verificarea condițiilor, utilizați o buclă în precondiția.


Înainte de fiecare execuție a corpului buclei, are loc o verificare
condiții, dacă rezultatul este „adevărat”, atunci corpul buclei este executat
Încă o dată, dacă „fals”, atunci bucla iese.
Pe schema bloc
Începutul ciclului
Nu
Condiție
DA
Corpul buclei
Sfârșitul ciclului
În Pascal
In timp ce<условие>do
ÎNCEPE
<тело цикла>
Sfârşit;

Bucla cu postcondiție

Practică
Dacă numărul de repetări este necunoscut în prealabil, dar numai dat
condiția și acțiunea care trebuie efectuată înainte
Testele de condiție folosesc o buclă cu o postcondiție.
O expresie logică este folosită ca condiție, corp
buclă – operator simplu sau compus.
După fiecare execuție a corpului buclei, are loc o verificare
condiții, dacă rezultatul este fals, atunci corpul buclei este executat
Încă o dată, dacă „adevărat”, atunci bucla iese.
Pe schema bloc
În Pascal
Repeta
Corpul buclei
<тело цикла>
da
Nu
Condiție
Pana cand<условие>;

Buclă cu parametru

Practică
Buclă cu parametru
În cazurile în care numărul de repetări este cunoscut dinainte
în parametru se aplică o buclă.
Se numește variabila care specifică numărul de repetări
parametrul buclei sau variabila de control.
După fiecare execuție a corpului buclei, controlul
variabila creste sau scade, bucla
se execută până când depăşeşte oricare
vor fi mai puține restricții.
Pe schema bloc
În Pascal
Pentru X:=A la B faceți
X:=A,B,C
Corpul buclei
X – variabila de control (parametru de ciclu)
A - valoarea initiala X, B – finalul X
C – schimbați pasul X
ÎNCEPE
<тело цикла>
Sfârşit;
Ca pas pe care îl puteți folosi
numai:
„la” = 1;
„în jos” = -1

Exemplu de sarcină folosind o buclă cu o precondiție
Teorie

Algoritm verbal:
Înmulțiți numărul X inițial egal cu 1
un număr dat de ori (N) cu 3.
start
ProgramStep;
Var
H,B,X:întreg;
ÎNCEPE
Writeln('Grad?');
Readln(H);
X:=1;
B:=1;
În timp ce B<=H do
ÎNCEPE
X:=X*3;
B:=B+1;
Sfârşit;
Writeln('Rezultat',X);
Sfârşit.
Pascal
N
Introducerea gradului dorit
X:=1
Valorile inițiale
B:=1
Nu
Contor de grade „B”.
B≤H
da
X:=X*3
Înmulțiți cu 3
B=B+1
Contracreștere
X
Ieșirea rezultatului
valorile
Sfârşit
Diagramă bloc
Explicații

Exemplu de sarcină care utilizează o buclă cu o postcondiție
Teorie
SARCINA: Ridicați numărul 3 la o putere dată
Algoritm verbal:

ProgramStep;
Var
H,B,X:întreg;
ÎNCEPE
Writeln('Grad?');
Readln(H);
X:=1;
B:=0;
Repeta
X:=X*3;
B:=B+1;
Nu
Până la B>=H;
Writeln('Rezultat',X);
Sfârşit.
start
N
Introducerea gradului dorit
X:=1
Valorile inițiale
B:=0
Înmulțiți cu 3
X:=X*3
Contracreștere
B=B+1
da
B>=H
Contor de grade „B”.
X
Ieșirea rezultatului
valorile
Sfârşit
Pascal
Diagramă bloc
Explicații

Exemplu de sarcină folosind o buclă cu un parametru
Teorie
SARCINA: Ridicați numărul 3 la o putere dată
Algoritm verbal:
Înmulțiți numărul X, inițial egal cu 1, de un anumit număr de ori (H) cu 3.
ProgramStep;
Var
H,B,X:întreg;
ÎNCEPE
Writeln('Grad?');
Readln(H);
X:=1;
Pentru B:=1 la H faceți
ÎNCEPE
X:=X*3;
Sfârşit;
Writeln('Rezultat',X);
Sfârşit.
Pascal
start
N
X:=1
B:=1,H,1
X:=X*3
X
Sfârşit
Diagramă bloc
Introducerea gradului dorit
Valoarea inițială X=1
Parametri de la 1 la H
Înmulțiți cu 3
Ieșirea rezultatului
valorile
Explicații

Alegerea ciclului depinde de caracteristicile condițiilor problemei. Doar practica vă va spune soluția optimă.

Sarcină: După ce a început antrenamentul, sportivul în prima zi
a alergat 10 km. În fiecare zi a crescut zilnic
norma este de 10% din norma zilei precedente.
Care este distanța totală pe care o va parcurge sportivul în 7 zile?
Variabile de intrare:
d – numărul de zile
Sd – distanța pentru ziua curentă
Variabile de ieșire:
S – cale comună

Diagrama bloc pentru soluție

start
S:=10
Sd:=10
d:=1
d:=d+1
Sd:=Sd*1,1
S:=S+Sd
Nu
D=7
da
s
Sfârşit

Program în Pascal

Ciclul „Pentru”
Ciclul „La revedere”
Ciclul „Înainte”
Program beg;
Program beg;
Program beg;
Var
Var
Var
S,Sd: real;
S,Sd: real;
S,Sd: real;
d:octet;
d:octet;
d:octet;
ÎNCEPE
ÎNCEPE
ÎNCEPE
S:=10;
S:=10;
S:=10;
Sd:=10;
Sd:=10;
Sd:=10;
Pentru d:=2 până la 7 faceți
ÎNCEPE
În timp ce d<7 do
ÎNCEPE
Repeta
d:=d+1;
Sd:=1,1*Sd;
d:=d+1;
Sd:=1,1*Sd;
S:=S+Sd;
Sd:=1,1*Sd;
S:=S+Sd;
Sfârşit;
S:=S+Sd;
până la (d=7);
Writeln(‘S=‘,S);
Sfârşit;
Writeln(‘S=‘,S);
Sfârşit.
Writeln(‘S=‘,S);
Sfârşit.
Sfârşit.

Întrebări pentru control:
1. Ce operator în Pascal definește o buclă cu
condiție prealabilă
2. Cum să specificați pasul „1” și „-1” ca parametri într-o buclă
3. Din ce ramură iese bucla?
postcondiție
4. Există condiții într-o buclă cu un parametru?
5. Care poate fi corpul unei bucle
6. Când utilizați o buclă cu parametri
Sfârşit























Inapoi inainte

Atenţie! Previzualizările diapozitivelor au doar scop informativ și este posibil să nu reprezinte toate caracteristicile prezentării. Dacă sunteți interesat de această lucrare, vă rugăm să descărcați versiunea completă.

Ţintă: 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 și constructele de bază ale unui limbaj algoritmic.
  • Să poată dezvolta un model matematic, un algoritm și o diagramă bloc pentru rezolvarea unei probleme.
  • Aveți o înțelegere a limbajelor de programare și a scopurilor acestora.
  • Să fie capabil să lucreze într-un mediu de programare.
  • Cunoașteți structurile programului.
  • Să fie capabil să scrie expresii care conțin mărimi numerice și simbolice.
  • Cunoașteți structurile operatorilor și caracteristicile muncii lor.
  • Să fie capabil să folosească operatori atunci când scrieți programe cu structuri liniare și ramificate.
  • Să poată crea și rula programe pe un computer pentru depanare.

II. Materialul teoretic al lecției

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

Să presupunem că trebuie să introduceți și să procesați o secvență de numere. Dacă există doar cinci numere, puteți crea un algoritm liniar. Dacă există o mie de ele, este posibil să scrieți un algoritm liniar, dar este foarte obositor și irațional. Dacă numărul de numere este necunoscut în momentul în care algoritmul este dezvoltat, atunci un algoritm liniar este fundamental imposibil.

Alt exemplu. Pentru a găsi numele de familie al unei persoane pe listă, trebuie să verificați primul nume de familie din listă, apoi al doilea, al treilea etc. până când se găsește cel dorit sau se ajunge la sfârșitul listei. Puteți depăși astfel de dificultăți cu ajutorul ciclurilor.

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

Există două tipuri de cicluri: cu un număr cunoscut de repetări și cu un număr necunoscut de repetări. În ambele cazuri, aceasta se referă la numărul de repetări în etapa de dezvoltare a algoritmului.

Există 3 tipuri de structuri ciclice:

  • Bucla cu precondiție;
  • Bucla cu postcondiție;
  • Buclă cu parametru;

În caz contrar, aceste structuri sunt numite cicluri precum „În timp ce”, „Înainte”, „Pentru”.

Forma grafică a datelor de înregistrare a structurilor algoritmice:

Buclă cu precondiție (alias buclă Pa) are forma:

condiție – expresie de tip logic.

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

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

Pentru asta pentru ca ciclul să se termine, este necesar ca succesiunea de instrucțiuni dintre BEGIN și END să modifice valoarea variabilelor incluse în condiție.

Bucla cu postcondiție (aka bucla inainte de) are forma:

condiție – expresie de tip logic.

Notă:

Secvența de instrucțiuni întrerepeta Șipana cand va fi întotdeauna împlinită cel puțin o dată;

Pentru ca bucla să se completeze, este necesar ca șirul de instrucțiuni întrerepeta Șipana cand a modificat valorile variabilelor incluse în expresia condiției.

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

Buclă cu un parametru (alias bucla Pentru) are forma:

i – parametrul ciclului;
a – valoarea inițială a ciclului;
b – valoarea finală a ciclului;
h – pas de modificare a parametrilor.

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

Această comandă se execută astfel: parametrul i este setat la valoarea inițială a, în comparație cu valoarea finală b, iar dacă este mai mică sau egală cu valoarea finală b se execută o serie de comenzi. Parametrului i se atribuie valoarea celui precedent, mărită cu h– pas de modificare a parametrului și se compară din nou cu valoarea finală b.

În limbajul de programare Pascal, pasul de modificare a parametrilor poate fi egal cu unu sau cu minus unu.

Dacă există o singură instrucțiune între început și sfârșit, atunci parantezele operatorului nu trebuie să fie scrise. Această regulă funcționează pentru bucle precum „While” și „For”.

Să ne uităm la 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:

Р= 1·2·3·4·5=120

Să compunem algoritmul sub forma unei diagrame bloc.

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

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

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

Primul pas: P i se atribuie o valoare de unu.

Pasul doi: i se atribuie valoarea unu.

Pasul trei: când i este egal cu unu, verificăm că condiția unu este mai mică sau egală cu cinci, da, condiția este adevărată, ceea ce înseamnă că lui P i se atribuie valoarea unu înmulțită cu unu, vor fi două. Pentru i: unu plus unu este egal cu doi.

Pasul patru: când i este egal cu doi, verificăm că condiția doi este mai mică sau egală cu cinci, da, condiția este adevărată, ceea ce înseamnă că lui P i se atribuie valoarea de 2 ori unu, va fi 2. Pentru i: doi plus unu, vor fi trei.

Pasul cinci: cu i egal cu trei, verificăm că condiția trei este mai mică sau egală cu cinci, da, condiția este adevărată, ceea ce înseamnă că lui P i se atribuie valoarea a doi înmulțit cu trei, va fi șase. Pentru i: trei plus unu este egal cu patru.

Pasul șase: cu i egal cu patru, verificăm că condiția patru este mai mică sau egală cu cinci, da, condiția este adevărată, ceea ce înseamnă că lui P i se atribuie valoarea de șase ori patru, va fi douăzeci și patru. Pentru i: patru plus unu este egal cu cinci.

Pasul șapte: cu i egal cu cinci, verificăm că condiția cinci este mai mică sau egală cu cinci, da, condiția este adevărată, ceea ce înseamnă că 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: când i este egal cu șase, verificăm că condiția șase este mai mică sau egală cu cinci, nu, condiția este falsă, apoi ieșim din buclă și, ca rezultat, obținem ultima valoare egală cu o sută douăzeci .

Programul Pr1;
Var i: întreg;
ÎNCEPE
P:=1;
i:=1;
In timp ce eu<=5 do
ÎNCEPE
P:=P*i;
i:=i+1;
Sfârşit;
Scrie('P=', P);
Sfârşit.

Pentru o buclă cu o postcondiție, vom construi o diagramă bloc și un tabel de urmărire. (diapozitivul 16)

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

Și pentru Ciclul cu un parametru vom construi o diagramă bloc și un tabel de urmărire. (diapozitivul 17)

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

Sarcină:

Afișează numerele de la 1 la 5 în:

  1. comanda directă;
  2. în ordine inversă.

Model matematic:

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

Diagrama bloc și programul de rezolvare a 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. Rezumând lecția

Și așa am luat în considerare următoarele întrebări:

  1. Ciclul structurii algoritmice;
  2. Tipuri de structuri algoritmice:
    1. Bucla cu precondiție;
    2. Bucla cu postcondiție;
    3. Buclă cu parametru;
  3. Am căutat modalități de a înregistra aceste structuri;
  4. Am analizat exemple de rezolvare a problemelor folosind aceste structuri.

Slide 2

Plan

Conceptul unei bucle Instrucțiune buclă For Loop While Loop Repeat Literatura

Slide 3

Literatură

Kastornov A.F., Evstratova G.A. Limbajul de programare Pascal: manual pentru universități. - Cherepoveți: Instituția de Învățământ de Stat de Învățământ Profesional Superior ChSU, 2010. - 117 p. - Bibliografie: P.114. Manual electronic despre limbajul de programare Pascal /http://pascal.guti.ru Plan

Slide 4

Conceptul de ciclu

Algoritmii pentru rezolvarea multor probleme sunt ciclici, în care o anumită secvență 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ă răspunsul, adaugă un punct pentru răspuns la scorul total, apoi repetă aceste acțiuni până când subiectul răspunde la toate întrebările. Sau, de exemplu, pentru a căuta numele de familie dorit în listă, ar trebui să verificați primul nume din listă pentru a vedea dacă se potrivește cu cel căutat, apoi al doilea, al treilea etc. până când se găsește numele de familie dorit sau se ajunge la sfârșitul listei.

Slide 5

Un algoritm în care există un grup de instrucțiuni care este executat 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

Slide 6

Operator pentru buclă

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

Slide 7

Prima formă de scriere a operatorului de buclă For

Prima formă de scriere a operatorului For în general arată astfel: ForCounter:=Start_valuetoFinal_valuedoOperator; Unde For, to, do sunt cuvintele funcționale. Un contor este o variabilă ordinală (de obicei un număr întreg) care determină de câte ori se va repeta bucla. Numărul de repetări se calculează folosind formula: Valoare_finală – Valoare_inițială+1. End_Value trebuie să fie mai mare sau egală cu Start_Value.

Slide 8

Dacă corpul buclei este format din mai mulți operatori, atunci prima formă de scriere a operatorului For arată astfel: ForCounter:=Start_valuetoFinal_valuedo Begin (corpul buclei) End;

Slide 9

Să ne uităm la algoritmul pentru bucla For în prima formă de scriere. Contorului i se atribuie o valoare Initial_. Este verificată condiția: valoarea contorului este mai mare 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 mărită cu unu și condiția este verificată din nou, adică. clauza 2.

Slide 10

A doua formă de scriere a operatorului de buclă For

A doua formă de scriere a operatorului For în general arată astfel: For Counter:=Start_valuedowntoFinal_valuedoOperator; Unde: Pentru, downto, do sunt cuvinte funcționale. Un contor este o variabilă ordinală (de obicei un număr întreg) care determină de câte ori se va repeta bucla. Numărul de repetări se calculează folosind formula: Start_value–Final_value+1. Start_Value trebuie să fie mai mare sau egală cu End_Value.

Slide 11

Dacă corpul buclei este format din mai mulți operatori, atunci a doua formă de scriere a operatorului For arată astfel: ForCounter:=Start_valuedowntoFinal_valuedo Begin //Loop body End;

Slide 12

Să luăm în considerare algoritmul buclei For în a doua formă de notație: Contorului i se atribuie o valoare Initial_. Este verificată condiția: 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 unu și condiția este verificată din nou, adică. clauza 2.

Slide 13

Operator pentru buclă

programEx1; var i, n:întreg; (i – contor, n – numărul necesar de stele) s:string;(s – şirul de stele generat) begin Writeln("Introduceţi numărul de stele"); (interogează numărul de stele) Readln(n); (utilizatorul introduce numărul de stele n) s:=""; (formarea unui șir de asteriscuri începe cu un șir gol) (Șirul este format folosind o buclă For. Valoarea_inițială a contorului este 1, Valoarea_finală este numărul necesar de stele n.) fori:= 1 la n do s :=s+"*"; (la fiecare pas al buclei un asterisc este lipit de linie) Writeln(s);(o linie este tipărită) Readln; Sfârşit. Exemplu de plan: Programul generează un șir de stele. Numărul de stele dintr-o linie este determinat de utilizator.

Slide 14

While 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 general, instrucțiunea While este scrisă după cum urmează: Condiție While doOperator; Unde While, do sunt cuvinte funcționale. Condiția este o expresie logică care determină continuarea buclei.

Slide 15

Dacă corpul buclei este format din mai multe instrucțiuni, atunci bucla While este scrisă după cum urmează: WhileCondition do Begin //Loop body End;

Slide 16

Să ne uităm la algoritmul pentru bucla While: condiția este verificată. Dacă condiția este adevărată, atunci corpul buclei este executat. După care starea este verificată din nou. Dacă condiția este falsă, atunci bucla se termină.

Slide 17

Astfel, While este o buclă cu o precondiție sau o buclă „While” (corpul buclei este executat în timp ce condiția este adevărată). Dacă la prima trecere a buclei condiția este falsă, atunci corpul buclei nu va fi executat nici măcar o dată. Dacă condiția nu devine niciodată falsă, atunci bucla se va repeta la infinit, adică. va avea loc bucla.

Slide 18

ProgramEx2; varAccount: Real; (dimensiunea contului) Luna: Integer; (numar de luni care au trecut de la deschiderea contului) begin Account:=1000; (1000 de ruble au fost depuse în cont) Luna:=0; (contul tocmai a fost deschis) whileAccount

Slide 19

Repetați ciclul

Bucla Repeat, ca și bucla While, este folosită într-un program dacă este necesar să se execute corpul buclei de mai multe ori, dar numărul de repetări este necunoscut în prealabil. În general, o buclă Repeat este scrisă după cum urmează: Repeat //Corpul buclei Până la Condiție; Unde Repeat, Până sunt cuvinte funcționale. Condiția este o expresie booleană care determină sfârșitul buclei.

Slide 20

Să luăm în considerare algoritmul buclei Repeat: Corpul buclei situat între cuvintele rezervate Repeat și Until este executat. Se verifică starea. Dacă condiția este adevărată, bucla se termină. Dacă condiția este falsă, corpul buclei este executat din nou.

Slide 21

Astfel, Repet este o buclă cu o postcondiție sau o buclă „Înainte” (corpul buclei 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 va deveni infinită.

Slide 22

ProgramEx3; var Timp:întreg; (timp de diviziune) Celule: întreg;(număr de celule) Timp de începere:=0;(celula nu a început încă diviziunea) Celule:=1;(o celulă) Timp de repetare:=Timp+3;(în următoarele trei ore) ) Celule: =Cells*2;(numărul de celule a crescut de 2 ori) Până la Cells>24; (până când condiția „numărul de celule este mai mare de 24” este adevărată) Writeln(Time); (iese rezultatul) Readln; Sfârşit. Exemplu de plan: O ameba unicelulară se împarte în 2 celule la fiecare 3 ore. Determinați câte ore mai târziu numărul de celule va depăși 24.

Vizualizați toate diapozitivele






Bucla cu o precondiție Dacă numărul de repetări este necunoscut în prealabil, dar este specificat doar de o condiție și o acțiune care trebuie efectuată numai după verificarea condițiilor, utilizați o buclă cu o precondiție. O expresie logică este folosită ca condiție, corpul buclei este un operator simplu sau compus. Înainte de fiecare execuție a corpului buclei, condiția este verificată, dacă rezultatul este „adevărat”, atunci corpul buclei este executat din nou, dacă „fals”, atunci bucla este ieșită. Pe diagrama bloc În Pascal începe sfârşitul; Condiție Corpul buclei Nu Practică Începutul buclei Sfârșitul buclei DA În timp ce do


Buclă cu o postcondiție Dacă numărul de repetări este necunoscut în prealabil, dar este specificat doar de o condiție și acțiunea care trebuie efectuată înainte de verificarea condiției, utilizați o buclă cu o postcondiție. O expresie logică este folosită ca condiție, corpul buclei este un operator simplu sau compus. După fiecare execuție a corpului buclei, condiția este verificată, dacă rezultatul este „fals”, atunci corpul buclei este executat din nou, dacă „adevărat”, atunci bucla este ieșită. Pe diagrama bloc În Pascal Repetare Condiție Corp buclă Da Nu Practicați până la ;


Buclă cu parametru În cazurile în care numărul de repetări este cunoscut dinainte, se utilizează o buclă cu parametru. Variabila care specifică numărul de repetări se numește parametru de buclă sau variabilă de control. După fiecare execuție a corpului buclei, variabila de control este mărită sau micșorată, bucla se execută până când depășește sau devine mai mică decât limita. În diagrama bloc în Pascal, X este variabila de control (parametrul ciclului) A este valoarea inițială a lui X, B este valoarea finală a lui X C este pasul de schimbare a X. Ca pas puteți utiliza doar: „la” = 1; „downto” = -1 X:=A,B,C Loop Body Practice Pentru X:=A to B do Begin End;


Un exemplu de problemă folosind o buclă cu o precondiție Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțiți numărul X, inițial egal cu 1, de un anumit număr de ori (H) cu 3. începe H BHBH X: =1 X:=X*3 final X Introduceți gradele date Valorile inițiale Contorul de grade „B” B=B+1 Înmulțirea cu 3 Creșterea contorului Emiterea valorii rezultate Program Stepen; Var H,B,X:întreg; Începeți Writeln(Grad?); Readln(H); X:=1; B:=1; În timp ce B


H X:=1 X:=X*3 end X Introduceți o putere dată Valori inițiale" title="Exemplu de sarcină folosind o buclă cu o postcondiție Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțire numărul X inițial egal cu 1 număr dat de ori (H) pentru 3. start N B>=H X:=1 X:=X*3 final X Introduceți un grad dat Valori inițiale" class="link_thumb"> 8 !} Un exemplu de problemă folosind o buclă cu o postcondiție Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțiți numărul X inițial egal cu 1 de un anumit număr de ori (H) cu 3. începe H B>=H X:= 1 X:=X*3 final X Introducerea unui grad dat Valori inițiale Contor de grade „B” B=B+1 Înmulțirea cu 3 Creșterea contorului Emiterea valorii rezultate Program Stepen; Var H,B,X:întreg; Începeți Writeln(Grad?); Readln(H); X:=1; B:=0; Repetați X:=X*3; B:=B+1; Până la B>=H; Writeln(Rezultat,X); Sfârşit. Nu Da Teoria Pascal Diagramă bloc Explicații B:=0 =H X:=1 X:=X*3 sfârşit X Introducerea unui grad dat Valori iniţiale"> =H X:=1 X:=X*3 sfârşit X Introducerea unui grad dat Valori iniţiale contor de grade "B" B=B +1 Înmulțirea cu 3 Mărește contorul Afișează valoarea rezultată Program Stepen; Var H,B,X:întreg; Începe Writeln(Grad?); Readln(H); X:=1; B:=0; Repetă X:= X*3; B: =B+1; Până la B>=H; Scriere (Rezultat,X); End. Nu Da Teorie Pascal Diagramă bloc Explicații B:=0"> =H X:=1 X:=X*3 end X Introduceți un anumit grad Valori inițiale" title=" Exemplu de problemă folosind o buclă cu o postcondiție Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțiți numărul X inițial egal cu 1 un număr dat de ori (H) cu 3. începutul N B>=H X: =1 X:=X*3 sfârşitul X Introducerea gradului specificat Valorile iniţiale"> title="Un exemplu de problemă folosind o buclă cu o postcondiție Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțiți numărul X, inițial egal cu 1, de un anumit număr de ori (H) cu 3. începe H B>=H X :=1 X:=X*3 end X Introducerea unui grad dat Valori inițiale"> !}


Un exemplu de sarcină care utilizează o buclă cu parametrul Ridicați numărul 3 la o putere dată SARCINA: Algoritm verbal: Înmulțiți numărul X, inițial egal cu 1, de un anumit număr de ori (H) cu 3. începe H X:=1 X:=X*3 final X Introduceți o putere dată Valoarea inițială X=1 Parametri de la 1 la N Înmulțirea cu 3 Ieșirea valorii rezultate Program Stepen; Var H,B,X:întreg; Începeți Writeln(Grad?); Readln(H); X:=1; Pentru B:=1 până la H, începeți X:=X*3; Sfârşit; Writeln(Rezultat,X); Sfârşit. B:=1,H,1 Explicații diagrame bloc teorie Pascal




Sarcină: După ce a început antrenamentul, sportivul a alergat 10 km în prima zi. În fiecare zi a crescut norma zilnică cu 10% din norma din ziua precedentă. Care este distanța totală pe care o va parcurge sportivul în 7 zile? Variabile de intrare: Variabile de ieșire: S – calea totală d – numărul de zile Sd – distanța pentru ziua curentă


Sfârșit Întrebări pentru control: 1. Ce operator în Pascal definește o buclă cu o precondiție 2. Cum se specifică pasul „1” și „-1” într-un parametru dintr-o buclă 3. Ce ramură urmează bucla cu o postcondiție? 4. Există un parametru de condiție 5. Care poate fi corpul unei bucle 6. Când este folosită o buclă cu parametri

Descrierea prezentării prin diapozitive individuale:

1 tobogan

Descriere slide:

Tema lecției: „Algoritmi pentru structura ciclică. Bucle de programare în Pascal" Disciplina "Informatică"

2 tobogan

Descriere slide:

Concepte de bază ale temei În această lecție sunt studiate următoarele concepte: conceptul de ciclu; tipuri de algoritmi ciclici (buclă cu precondiție, buclă cu postcondiție, buclă cu parametru); diagrame bloc ale algoritmilor ciclici; reprezentarea operatorilor de buclă în limbaj Programare Pascal; utilizarea buclelor în rezolvarea problemelor.

3 slide

Descriere slide:

Conceptul de ciclu La rezolvarea multor probleme, aceeași succesiune de acțiuni este efectuată de mai multe ori. De exemplu, la admiterea la instituție educațională studentul susține examene și se calculează punctele pe care le obține (variabila S; valoarea sa inițială este S:=0;). Pentru fiecare examen promovat primește nota N. Dacă nota este mai mare de „2”, atunci S:= S + N; în caz contrar, opriți calculele (ieșiți din buclă).

4 slide

Descriere slide:

Conceptul de buclă O buclă este o secvență de instrucțiuni care poate fi executată de mai multe ori. Un algoritm ciclic este un algoritm care presupune repetarea repetată a 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 slide

Descriere slide:

Buclă cu precondiție. Tipul buclei WHILE WHILE Instruiește să execute corpul buclei până când este îndeplinită condiția scrisă după cuvântul while. Organigrama unei bucle cu o precondiție

6 diapozitiv

Descriere slide:

Buclă cu precondiție. Tipul buclei WHILE WHILE O buclă cu o precondiție este utilizată atunci când numărul de repetări ale corpului buclei este necunoscut în prealabil, dar depinde de îndeplinirea condiției. 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 slide

Descriere slide:

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

8 slide

Descriere slide:

Bucla cu postcondiție. Tip de buclă DO Ordinea de execuție a unui operator de buclă cu o postcondiție Execuția operatorilor 1-N se repetă până când condiția devine adevărată. În această buclă, condiția este verificată numai după ce corpul buclei este executat. Rezultă că corpul este întotdeauna executat cel puțin o dată.Diagrama de flux a unei bucle cu o postcondiție

Slide 9

Descriere slide:

Bucla cu postcondiție. Tipul de ciclu IMPORTANT! O buclă cu o postcondiție este executată cel puțin o dată, indiferent dacă condiția este îndeplinită. Confortul incontestabil al unei bucle cu o postcondiție este că mai multe instrucțiuni pot fi scrise în interiorul acesteia fără a utiliza un operator compus. Verificarea stării este situată după corpul buclei. Cuvânt de serviciu PÂNĂ

10 diapozitive

Descriere slide:

Operator de buclă cu o postcondiție (tip LOC DO - UNTIL) Forma generală (formatul) a unui operator de buclă cu o postcondiție în Pascal este următoarea: Repetați<Оператор 1>; <Оператор 2>; … <Оператор N>; Pana cand<условие>;

11 diapozitiv

Descriere slide:

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

12 slide

Descriere slide:

Buclă cu un parametru. Bucla de tip FOR O buclă cu un parametru este utilizată atunci când este necesar să se efectueze un anumit număr de pași în buclă. Trebuie remarcat faptul că bucla FOR în Pascal nu este foarte flexibilă (spre deosebire, de exemplu, de acest tip de buclă în C). Pentru că, în Pascal, parametrul buclei (sau contorul) este modificat cu o sumă egală cu unu. Astfel, atunci când trebuie să efectuați un pas fracționar, trebuie să utilizați o buclă WHILE. Există două tipuri de bucle FOR: valori crescătoare și descrescătoare ale contorului (sau ale parametrilor). Diagrama bloc a unei bucle cu un parametru (bucla FOR)

Slide 13

Descriere slide:

Slide 14

Descriere slide:

Operator buclă cu parametru. Bucla FOR Vedere generală (format) a unui operator de buclă cu un parametru for<счетчик> := <начальное значение>la<конечное значение>începe<Операторы>Sfârşit; pentru<счетчик> := <начальное значение>jos la<начальное значение>începe<Операторы>Sfârşit; cu valori crescătoare ale contorului (parametrului) cu valori descrescătoare ale contorului (parametrului).

15 slide

Descriere slide:

Operator buclă cu parametru. Bucla FOR Un operator care implementează o buclă FOR - FOR este utilizat dacă este necesar ca un fragment de program să fie repetat de un număr specificat de ori FOR<переменная цикла>: = <начальное значение>ACEA<конечное значение>DO<оператор>; Aici: PENTRU, PENTRU, FAC - cuvinte rezervate(Engleză: for, before, perform);<счетчик (параметр) цикла>- o variabilă de tip INTEGER, care se modifică pe un segment din<начального значения>, crescând cu unu la sfârșitul fiecărei etape a ciclului;<оператор>- orice operator (de obicei compus).

16 slide

Descriere slide:

Operator buclă cu parametru. bucla FOR PENTRU operator constă dintr-un cap și corp buclă. O instrucțiune compusă din corpul unei bucle trebuie inclusă în parantezele de început și de sfârșit. ·De obicei, „i” este folosit ca identificator de contor. · Variabila contor trebuie să fie de tip ordinal. De exemplu, tipul întreg: octet, întreg. · Valorile de început și de sfârșit ale unui parametru de buclă nu pot fi modificate în timp ce bucla rulează. · Operatorul FOR este folosit pentru a organiza bucle cu un număr fix de repetări, cunoscute în prealabil sau determinate în timpul execuției programului.

Slide 17

Descriere slide:

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

18 slide

Descriere slide:

Sarcina nr. 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 sistem folder de lucru PABCWork.NET \Numele_dvs.\Cikl_1.pas Salvați ca...

Slide 19

Descriere slide:

Sarcina nr. 1 Folosind bucla WHILE (cu o precondiție), creaț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 - suma: S: Longint; Programul Ex1; Var A: Integer; S: Longint; (Număr întreg lung) Începe A:=1; S:=0; (variabila S pentru suma acumulată) Î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 de diapozitive

Descriere slide:

SARCINA 2. Depanarea unui program de structură ciclică în Pascal în mediul PascalABC.NET Program abc; var x, y: întreg; începe x:=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