Contacte

Tabularea metodologiei și funcțiile de programare. Programarea proceselor de calcul ciclic Programarea proceselor de calcul ciclic vba

În programare, ne confruntăm adesea cu sarcini în care apar procese care se repetă. Prin urmare, trebuie să cunoaștem și să putem folosi un astfel de concept ca „ procese de calcul ciclic».

Va fi ușor pentru un programator începător să le înțeleagă folosind un exemplu generalizat. Mai mult, este important să înțelegem că în toate limbajele de programare există modalități de implementare a buclelor.

Ce este o buclă în programare?

Ciclu - în programare, se numește repetare multiplă a acelorași acțiuni sau calcule, dar conform acelorași dependențe cu valori diferite ale variabilelor.

Dăm peste conceptul de ciclu nu numai în programare. Există cicluri în multe domenii ale vieții noastre.

De exemplu - ciclul apei în natură, acesta este un ciclu natural în viața noastră.

Acum să ne uităm la regulile și conceptele generale utilizate în ciclurile de calcul.

Etapele procesului ciclic

În general, ciclul ar trebui implementat în 4 etape:
  • Etapa 1 - pregătirea ciclului (inițializarea).
    Setarea unei valori inițiale pentru un parametru și o variabilă de buclă.
    Parametru de buclă- această valoare, care numără numărul de pași ai ciclului (numărul de repetări ale ciclului).
    Variabilă buclă Este o valoare care își schimbă valoarea în fiecare etapă a ciclului.
    Inițializare Este atribuirea valorilor inițiale parametrului și variabilei buclei.
  • Etapa 2 - corpul ciclului.
    Aceasta este o repetare multiplă a unei acțiuni într-o buclă sau calcule pe aceleași dependențe matematice cu valori diferite ale variabilelor.
  • Etapa 3 - modificarea (modificarea) ciclului.
  • Etapa 4 - managementul ciclului.
    Aceasta este o verificare a condiției pentru continuarea sau începutul ciclului.
Există 3 operatori de buclă în pascal care pot implementa oricare structură algoritmică – ciclică :
  1. Operator buclă cu parametru
  2. Operator de buclă cu precondiție
  3. Operator de buclă cu postcondiție
Le vom analiza în detaliu în articolul următor.

Scopul muncii:

Aflați operatori ciclici pentru, while, do - while, învățați să compuneți și să programați algoritmi ciclici.

Informații teoretice scurte

Operatorii de buclă sunt utilizați atunci când este necesară repetarea unor acțiuni (operatori și operații) de mai multe ori, iar astfel de secțiuni ale algoritmilor se numesc bucle.

Operator pentru buclă

Forma principală a operatorului de buclă for este

pentru (expresie_1; expresie_2; expresie_3)

operator;

Unde expresie_1- valoarea initiala a parametrului ciclului;

expresie_2- verificarea conditiei de continuare a ciclului;

expresie_3- modificarea parametrului ciclului (corecție);

operator- operator simplu sau compus al limbajului C.

Schema de lucru a operatorului este următoarea: expresia_1 se calculează o singură dată, apoi se verifică expresia_2, iar dacă este „adevărat”, atunci se execută secțiunea ciclică a programului, apoi se corectează parametrul și așa mai departe până când expresia_2 preia valoarea „falsă”.

De exemplu: pentru (k = 1; k<5; k++)

printf (“\ n% d”, k);

Ca urmare a executării acestui operator, numerele de la 1 la 4 sunt tipărite într-o coloană.

O variabilă de orice tip de bază poate fi utilizată ca parametru de buclă.

De exemplu:

pentru (ch = „a”; ch<=’z’; ch++) // Вывод на экран букв

printf („% c”, ch); // alfabet latin

Este necesar să controlați cu atenție structura buclelor for din program, astfel încât să nu iasă o buclă infinită (din care nu există cale de ieșire).

De exemplu:

pentru (k = 10; k> 6; k ++)

printf („buclă fără sfârșit \ n”);

Ieși din buclăînainte de termen, în următoarele moduri:

Prin condiție suplimentară;

Folosind următorii operatori:

pauză;- ieșire din bucla în care se află break, controlul este transferat la prima instrucțiune executată după buclă;

ieșire (int Kod);- ieșire din program;

întoarcere;- ieșire din funcție;

Folosind operatorul de salt necondiționat mergi la<метка>;

Din timp finalizarea pasului curent al ciclului posibil cu o condiție sau operator suplimentar continua, care întrerupe execuția pasului curent al buclei, adică. omite instrucțiunile din restul buclei și transferă controlul către instrucțiunea principală a buclei pentru a corecta parametrul și a verifica starea.

Este interzis transferul controlului din exteriorul către interiorul ciclului.

Oricare dintre expresiile din bucla for din paranteze poate lipsi, dar „;” nu poate fi omis.

De exemplu:

pentru (; i<3; i++)

pune („Bună ziua!”);

Buclă instrucțiuni while și do – while

Forma de bază a unui operator ciclic in timp ce:

În timp ce (condiție)

operator;

Unde operator

Bucla este executată atâta timp cât condiția este „adevărată”, adică. o expresie între paranteze returnează un rezultat diferit de zero. Aceasta este o buclă cu o precondiție - mai întâi condiția este verificată, apoi instrucțiunea este executată. Prin urmare, bucla while nu va fi executată nici măcar o dată dacă rezultatul inițial al evaluării condiției este 0.

Formularul de bază al operatorului face în timp ce:

operator;

în timp ce (condiție);

Unde operator Este un operator simplu, compus sau gol.

Operator doin timp ce- operator de buclă cu postcondiție, i.e. instrucțiunea este executată mai întâi, iar apoi condiția este verificată pentru adevărată. Deoarece în bucla do – while condiția este verificată la sfârșitul buclei, bucla va fi executată cel puțin o dată.

În buclele de tip while și do – while, sunt permise aceleași metode de ieșire timpurie din buclă și de terminare timpurie a pasului curent al buclei ca în instrucțiunea for, dar în ultimul caz, spre deosebire de bucla for, control este transferat pentru a verifica starea. Pentru a preveni o buclă infinită în interiorul buclelor while și do – while, este necesar să se prevadă modificarea variabilelor incluse în condiție.

De exemplu:

pentru (i = 1; i<=300;i++) // Печать целых чисел, кратных 5

dacă (i% 5! = 0) continuă;

printf („% 5d”, i);

Exemple de bucle infinite:

operator;

2) în timp ce (număr_nu_0) // Întotdeauna adevărat!

operator;

operator;

în timp ce (număr_nu_0); // Întotdeauna adevărat!

Trebuie să existe o condiție de ieșire printre operatorii de buclă.

Bucle imbricate

În cazul buclelor imbricate, o buclă este în interiorul alteia, de exemplu:

pentru (i = nn; i

pentru (j = mn; j

operator;

Unde operator Este un operator simplu, compus sau gol. Bucla interioară va rula pentru fiecare valoare a parametrului i care îndeplinește condiția buclei exterioare.

Exemplu:

pentru (i = 1; i<10;i++) // Печать таблицы умножения

pentru (j = 1; j<4;j++)

printf (“\ n% d *% d =% 2d”, i, j, i * j);

printf („\ n”);

Un exemplu de utilizare a instrucțiunii for

Calculati. Programul ar trebui să imprime rezultatele intermediare și finale.

Textul programului poate arăta ca

#include

#include

pune („Introduceți N”);

scanf („% d”, & N);

pentru (s = 0, k = 1; k<=N; k++) // В заголовке цикла можно выпол-

(// nat și sarcină dublă

printf ("\ n k =% d s =% f", k, s);

printf ("\ n RĂSPUNS: s =% f, Apăsați orice tastă ...", s);

Opțiuni pentru sarcini individuale

Creați un program pentru a defini un tabel cu valorile funcției laîntr-un interval arbitrar [ A,b] se schimbă argumentul NS cu un pas arbitrar h... Valorile a, b, h introdus de la tastatură. Tabelul trebuie să conțină următoarele coloane: ordinal, valoarea argumentului X, valoarea funcției, un mesaj despre creșterea sau scăderea funcției, diferența dintre două valori adiacente ale funcției.

Determinați valorile maxime și minime ale funcției.

1. a = -p; b = p; h = 0,4.

2. a = 0,7; b = 1,8; h = 0,1.

3. a = -0,5; b = 2,5; h = 0,2.

4. a = -0,9; b = 2,7; h = 0,3.

5. a = -2; b = 0,8; h = 0,2.

6. a = -1,9; b = 2,7; h = 0,3.

7. a = -0,4p; b = 0,4p; h = 0,5.

8. a = -0,3p; b = 1,3p; h = p / 10.

9. a = -p / 2; b = p / 2; h = p / 10.

10. a = -3; b = 3; h = 0,5.

1. Metode de construire a proceselor de calcul ciclic în programe.

2. Se introduce computerulNnumere reale. Creați un program care afișează media aritmetică a acestui set.

Introducere

Programele în buclă sunt folosite în aproape orice software. În acest caz, buclele pot fi explicite sau implicite. În special, bucla implicită este prezentă în manipulatorii de întreruperi, care lucrează de fapt într-o buclă infinită, al cărei corp este inițiat de o întrerupere. Subrutinele, funcțiile ferestre ale aplicațiilor Windows, sunt de asemenea circulare. În plus, luăm în considerare programele cu o buclă, al căror corp conține module funcționale.

Proces ciclic este un proces de calcul în care calculele sunt efectuate în mod repetat folosind aceleași formule pentru diferite valori ale argumentului.

Programe care implementează un proces ciclic se numesc programe ciclice.

În organizarea ciclului se pot distinge următoarele etape:

pregătirea (inițializarea) ciclului (I);

executarea calculelor de ciclu (corp ciclului) (T);

modificarea parametrilor (M);

verificarea stării de sfârșit a ciclului (Y).

Ordinea în care sunt executați acești pași, cum ar fi T și M, poate varia. În funcție de locația verificării, condițiile de sfârșit ale ciclului disting între ciclurile cu capete inferioare și superioare. Pentru o buclă cu capăt de jos, corpul buclei este executat cel puțin o dată, deoarece primele calcule sunt efectuate, iar apoi este verificată condiția de ieșire din buclă.


În cazul unei bucle cu un capăt superior, corpul buclei nu poate fi executat nici măcar o singură dată dacă condiția de ieșire este îndeplinită imediat.

O buclă se numește deterministă dacă numărul de repetări ale corpului buclei este cunoscut sau determinat în prealabil. O buclă se numește iterativă dacă numărul de repetări ale corpului buclei nu este cunoscut în prealabil, dar depinde de valorile parametrilor (unele variabile) implicați în calcule.

Corpul buclei este o secțiune repetitivă a programului.

Parametru de buclă este o variabilă care ia noi valori de fiecare dată când se repetă bucla (buclele pot fi simple sau complexe).

Vedere generală a ciclului de n ori

În general, ciclul este scris de n ori astfel:

nts număr de repetări

Cuvântul de serviciu nts (începutul ciclului) și kts (sfârșitul ciclului) sunt scrise strict unul sub celălalt și sunt conectate printr-o linie verticală. În dreapta acestei linii, este scrisă secvența repetată de comenzi (corpul buclei).

Numărul de repetări este un număr întreg arbitrar.

La executarea algoritmului, secvența de comenzi din corpul buclei se repetă de numărul specificat de ori. Regulile limbajului algoritmic permit specificarea oricărui număr întreg de repetări. Poate fi zero sau chiar negativ. Aceste cazuri nu sunt considerate eronate, doar corpul buclei nu va fi executat nici măcar o dată, iar computerul va proceda imediat la executarea comenzilor scrise după kts

Vedere generală a ciclului de până acum

În general, ciclul este încă scris astfel:

nc până acum stare

| corpul buclei (secvență de comenzi)

În timpul ciclului, computerul repetă următorii pași:

a) verifică starea scrisă după cuvântul de serviciu deocamdată;

b) dacă condiția nu este îndeplinită, atunci execuția ciclului este încheiată și calculatorul începe să execute comenzile scrise după kts. Dacă condiția este îndeplinită, atunci computerul execută corpul buclei, verifică din nou condiția și așa mai departe.

Vedere generală a ciclului pentru

nts pentru i de la i1 la i2

| corpul buclei (secvență de comenzi)

Aici i este numele unei valori întregi, i1, i2 sunt numere întregi arbitrare sau expresii cu valori întregi. Corpul buclei este executat secvenţial pentru i = i1, i = i1 + 1, i1 + 2,... i = i2.

Regulile limbajului algoritmic permit specificarea oricăror numere întregi i1, i2. în special, i2 poate fi mai mic decât i1. acest caz nu este considerat eronat - doar corpul buclei nu va fi executat nici măcar o dată, iar computerul va proceda imediat la executarea comenzilor scrise după kts.

Buclă de n ori și adio buclă

Buclele de n ori și în timp ce sunt formatate în limbajul algoritmic sunt aproape aceleași. Acest lucru nu este surprinzător, deoarece ambele comenzi creează o buclă - o secvență repetată de comenzi. Cuvintele de serviciu nts și kts indică faptul că bucla este în curs de executare, iar antetul buclei specifică un mecanism specific pentru executarea acesteia.

Cu toate acestea, aceste două cicluri au o diferență semnificativă. Începând să execute bucla de n ori, computerul știe de câte ori va trebui să repete corpul buclei. În timpul executării unei bucle, acesta nu este încă cazul: computerul verifică de fiecare dată starea buclei și nu poate determina în prealabil când se va termina execuția. Este posibil să aflați numărul de repetări ale ciclului numai după finalizarea ciclului.

Din aceasta este clar în ce cazuri ce ciclu ar trebui utilizat. Dacă numărul de repetări este cunoscut până la momentul începerii ciclului, este convenabil să folosiți ciclul de n ori. Dacă numărul de repetări nu poate fi determinat în prealabil, este necesar un ciclu până acum.

De exemplu, un program de control automat are structura prezentată în Fig. 1. Module bucle(precum și modulele de procesare a întreruperilor), fiecare cu o intrare și o ieșire, au de obicei o trăsătură caracteristică: modulele conțin variabile statice cărora li se atribuie o valoare în ciclul curent, iar analiza acestor variabile se realizează în ciclul următor . Astfel, variabilele menționate caracterizează starea modulului la sfârșitul ciclului curent sau începutul următorului ciclu de program. În cele ce urmează, vom lua în considerare numai astfel de module de programe ciclice și le vom desemna pe scurt ca MCP.


Fig. 1. Structura tipică a unui program de control cu ​​o buclă infinită.

MCP-urile au o structură variată, a cărei complexitate trebuie evaluată conform unor criterii speciale. V.V.Lipaev a propus un criteriu convenabil și obiectiv pentru complexitatea modulelor software și anume: numărul și lungimea totală a căilor din graficul de control al modulului. În acest caz, sunt luate în considerare numai declarațiile condiționate și de selecție. Cu toate acestea, acest criteriu nu este suficient pentru un MPC cu memorie statică, deoarece atunci când se analizează un MPC este necesar să se rețină valorile tuturor variabilelor statice stabilite în ciclul anterior. În plus, nu există recomandări pentru standardizarea algoritmilor și a programelor, cu excepția mult-cunoscutei programare structurată în limbaje de programare comune, cum ar fi C și Pascal. Acest articol propune completarea acestor lacune în legătură cu MCP.

2. Fragmente de module de programe ciclice

Un fragment bipolar, sau pur și simplu un fragment, va fi considerat o secțiune de program cu o intrare și o ieșire (inclusiv operatori de buclă) în ipoteza că MCP-urile luate în considerare sunt structurate. Cel mai simplu fragment include o singură declarație. O secvență de fragmente este, de asemenea, un fragment. MCP, la rândul său, este un fragment și constă dintr-o secvență de fragmente.

În metoda propusă a fragmentelor independente pentru sinteza structurii modulelor care implementează tabele de decizie. În acest caz, un astfel de fragment este considerat independent dacă poate fi introdus oriunde în secvența de fragmente a modulului. Independența locației unui astfel de fragment se datorează faptului că datele analizate în acesta nu sunt formate în secvența specificată de fragmente, iar datele generate într-un fragment independent nu sunt analizate în această secvență de fragmente. Prin urmare, fragmentele independente pot fi executate în paralel (pseudo-paralel). În fig. 2 prezintă posibile implementări ale unui modul cu două fragmente independente. În variantele „a” și „b” fragmentele sunt rearanjate fără a distorsiona esența programului; în varianta „c”, fragmentele sunt implementate în paralel.


Fig. 2. Opțiuni de implementare pentru un modul cu fragmente independente:

a) și b) - implementare secvențială,

c) - implementare paralelă: o linie orizontală dublă denotă paralelizarea programului, o linie orizontală îngroșată denotă terminarea proceselor paralele.

Un fragment dependent este unul a cărui locație depinde de locația altui(e) fragment(e) în modul. Vom distinge între fragmentele dependente de sus și de jos. Fragmentul dependent de deasupra trebuie să fie întotdeauna situat sub un fragment în care se formează variabilele utilizate în acest fragment (dependent). Fragmentul dependent de fund ar trebui să fie întotdeauna plasat deasupra fragmentului, care utilizează variabilele formate în acest fragment. Două fragmente dependente, dintre care unul de sus este dependent de cel de-al doilea, iar al doilea de jos, dependent de primul, se vor numi fragmente reciproc dependente. Ele nu pot fi schimbate și nu pot fi implementate în paralel. În fig. 3 prezintă un exemplu de modul cu fragmente dependente reciproc. Între fragmentele reciproc dependente pot exista și altele, dependente sau nu de ele. Fig. 3. Un modul cu fragmente dependente.

Fix este un fragment dependent, a cărui locație în modul este strict definită. De exemplu, în modulul de recunoaștere a unui caracter introdus de la tastatură, primul din jos trebuie să fie fragmentul dependent al caracterului introdus în sine. Operatorii „start” și „end” ai modulului sunt fragmente fixe.

Fragmente absolut independente nu există, fie doar pentru că în orice modul există fragmentele fixe menționate ale începutului și sfârșitului. Prin urmare, un fragment independent, în cazul general, are o zonă de posibilă locație limitată de două fragmente reciproc dependente. Adică, o definiție mai riguroasă a unui fragment independent este următoarea: independent față de două fragmente fixe este un fragment care poate fi plasat oriunde într-o secvență de fragmente delimitate deasupra și dedesubt de fragmentele fixe specificate.

„Programarea proceselor de calcul ciclice”

Scopul muncii:însuşirea metodelor de compilare a algoritmilor pentru procese de calcul ciclic şi organizarea programelor ciclice de structură complexă.

Partea teoretică

4.1.1. Algoritmi ciclici.

Un ciclu este o succesiune de acțiuni care pot fi efectuate de mai multe ori.

Un algoritm de buclă este un algoritm care conține una sau mai multe bucle.

Există 3 tipuri de cicluri:

Bucla cu precondiție;

Bucla cu postcondiție;

Counter cycle (ciclu de numărare).

Dacă execuția buclei este asociată cu orice condiție logică, atunci se folosesc bucle cu o precondiție sau cu o postcondiție.

Buclele contrare reprezintă o clasă în care execuția corpului buclei trebuie repetată de un număr prestabilit de ori.

Diagramele bucle arată astfel:

1. Ciclu cu contor.

2. Buclă cu precondiție. 3. Buclă cu postcondiție.

4.1.2 Operatorii buclei în limbajul de programare C++.

În C++, există un operator corespunzător pentru fiecare tip de buclă:

buclă while (cu condiție prealabilă);

Loop like do ... while (cu postcondiție);

Pentru buclă (numărătoare).

1.Operatorul buclă de tip while

Formular de înregistrare:

while (condiție) declarație;

unde: (condiție) - expresie logică;

operator - o instrucțiune executată într-o buclă sau corpul unei bucle.

Dacă corpul buclei este o instrucțiune compusă, atunci trebuie inclusă între paranteze operator (...):

în timp ce (condiție)

grup de operatori

Cum funcționează o astfel de buclă: în timp ce condiția este adevărată, corpul buclei este executat și condiția este verificată din nou etc. Când condiția devine falsă (falsă), bucla iese.

2. Un operator de buclă ca do ... while

Formular de înregistrare:

operator;

în timp ce (condiție);

Schema de lucru a unui astfel de ciclu: mai întâi se execută operatorul, apoi se verifică condiția, dacă condiția este adevărată, se execută operatorul și se verifică din nou condiția etc. Când condiția devine falsă, bucla se termină.

Dacă corpul buclei este o instrucțiune compusă, atunci, ca și în cazul unei bucle cu o precondiție, aceasta trebuie inclusă între paranteze operator (...):



grup de operatori

în timp ce (condiție);

3. Operator al unei bucle de tip for

Formular de înregistrare:

operator;

A este o expresie inițială care stabilește valorile inițiale pentru parametrul buclei și, dacă este necesar, valorile inițiale pentru alți parametri. De exemplu:

i = 0, x = 0,5, p = 1, s = 0

B este o expresie condiționată care verifică condiția pentru continuarea buclei. De exemplu:

C este o expresie de increment care setează un increment la un parametru de buclă și, dacă este necesar, la alți parametri, atunci aceștia sunt scrisi ca o listă. De exemplu: x + = 0,1, i ++

4.1.3 Un exemplu de compilare a unui algoritm și a unui program în C++ pentru un proces de calcul ciclic.

Calculați valoarea expresiei:

b- valoarea inițială, valoarea acesteia se introduce de la tastatură și nu se modifică;

A- modificări ale intervalului cu un pas de 1;

y- rezultatul, valorile sale sunt afișate pe ecran.

Pe baza condiției de setare, variabila a este un număr întreg, deci poate fi folosită ca numărător într-un ciclu de numărare.

Diagrama bloc a algoritmului pentru rezolvarea acestei probleme folosind un ciclu de numărare este următoarea:

#include

#include

#include

printf („Introduceți b:“);

scanf („% f”, & b);

printf („a y \ n”);

pentru (a = 0; a<=10;a++)

printf („% 3d”, a);

printf („% 8,2f \ n”, y);

y = (a-b) / sqrt (a);

printf („% 8,2f \ n”, y);

Diagrama bloc a algoritmului pentru rezolvarea acestei probleme folosind o buclă cu o precondiție este următoarea:

Textul programului C++ corespunzător acestui algoritm arată astfel:

#include

#include

#include

printf („Introduceți b:“);

scanf („% f”, & b);

printf („a y \ n”);

printf („% 3d”, a);

printf („% 8,2f \ n”, y);

y = (a-b) / sqrt (a);

printf („% 8,2f \ n”, y);

else printf („y nu există \ n”);

Diagrama bloc a algoritmului pentru rezolvarea acestei probleme folosind o buclă cu o postcondiție este următoarea:

Textul programului C++ corespunzător acestui algoritm arată astfel:

#include

#include

#include

printf („Introduceți b:“);

scanf („% f”, & b);

printf („a y \ n”);

printf („% 3d”, a);

printf („% 8,2f \ n”, y);

y = (a-b) / sqrt (a);

printf („% 8,2f \ n”, y);

else printf („y nu există \ n”);

In timp ce<=10);

Partea practică

4.2.1 Cerințe pentru efectuarea muncii:

Finalizați sarcina din munca de laborator nr. 3 pentru intervalul de valori ale uneia dintre variabile. Variabila care trebuie schimbată, intervalul modificării acesteia și pasul sunt indicate în Tabelul 4. Întocmește diagrame bloc de algoritmi și programe pentru cele două tipuri de cicluri indicate în sarcina individuală (Tabelul 4).

Formatați ieșirea rezultatelor astfel încât valorile parametrului care se modifică să fie clar evidențiate și pentru fiecare dintre valorile sale specifice, valorile rezultatului (trei variabile din coloana 2 a tabelului 3) sunt afisat sub forma unui tabel.

Ordinea lucrării.

1. Analizați sarcina, formulați enunțul sarcinii.

2. Întocmește diagrame bloc ale algoritmilor.

3. Scrieți un program în C++. Furnizați introducerea datelor inițiale de la tastatură și afișarea rezultatelor pe ecran.

4. Verificați funcționalitatea programului pe diferite date inițiale.

5. Analizați rezultatele.

Opțiuni pentru sarcini individuale.

Opțiunile pentru teme individuale sunt selectate din Tabelul 4 în conformitate cu numărul elevului din lista de grup din jurnalul profesorului.

Tabelul 4. Opțiuni pentru sarcini individuale

P/p nr. Variabilă mutabilă Tipuri de bucle
10 ≤ a ≤ 10,Δ a = 1
-4 ≤ d ≤ 4, Δ d = 0,5
-6 ≤ x ≤ 3, Δ x = 0,5
0 ≤ b ≤ 3 0, Δ b = 1,5 1.Cu precondiție, 2.Numărabil
-15 ≤ j ≤ 1 0, Δ j = 0,5 1.Cu o precondiție, 2.Cu o postcondiție
5 ≤ e ≤ 35,Δ e = 2 1.Numărabil, 2.Cu postcondiție
-5 ≤ m ≤ 15,Δ m = 1 1.Cu precondiție, 2.Numărabil
1 ≤ c ≤ 70,Δ c = 3 1.Cu o precondiție, 2.Cu o postcondiție
1,5 ≤ c ≤ 15,Δ c = 0,5 1.Numărabil, 2.Cu postcondiție
-8 ≤ b ≤ 28,Δ b = 2 1.Cu precondiție, 2.Numărabil
-4,5 ≤ x ≤ 11,5,Δ x = 0,5 1.Cu o precondiție, 2.Cu o postcondiție
-7 ≤ k ≤ 2,Δ k = 0,3 1.Numărabil, 2.Cu postcondiție
-1 ≤ m ≤ 21,Δ m = 1 1.Cu precondiție, 2.Numărabil
-2 ≤ e ≤ 34,Δ e = 2 1.Cu o precondiție, 2.Cu o postcondiție
-11 ≤ c ≤ 23,Δ c = 2 1.Numărabil, 2.Cu postcondiție
-13 ≤ p ≤ 50,Δ p = 3 1.Cu precondiție, 2.Numărabil
3,3 ≤ b ≤ 9,3,Δ b = 0,3 1.Cu o precondiție, 2.Cu o postcondiție
3,5 ≤ y ≤ 12,3,Δ y = 0,4 1.Numărabil, 2.Cu postcondiție
-7,5 ≤ a ≤ 5,7,Δ a = 0,6 1.Cu precondiție, 2.Numărabil
-1,5 ≤ h ≤ 1,2,Δ h = 0,1 1.Cu o precondiție, 2.Cu o postcondiție
0 ≤ h ≤ 10,Δ h = 0,5 1.Numărabil, 2.Cu postcondiție
-15 ≤ b ≤ 15, Δ b = 2 1.Cu precondiție, 2.Numărabil
-7 ≤ l ≤ 3, Δ l = 0,5 1.Cu o precondiție, 2.Cu o postcondiție
-5,5 ≤ b ≤ 6,5, Δ b = 0,5 1.Numărabil, 2.Cu postcondiție
1 ≤ k ≤ 9, Δ k = 0,4 1.Cu precondiție, 2.Numărabil
0 ≤ b ≤ 6,9,Δ b = 0,3 1.Cu o precondiție, 2.Cu o postcondiție
-3 ≤ v ≤ 9,Δ v = 0,6 1.Numărabil, 2.Cu postcondiție
-2 ≤ p ≤ 2,6,Δ p = 0,2 1.Cu precondiție, 2.Numărabil

4.3 Întrebări de testare și sarcini practice:

1. Cum funcționează declarația while?

2. Cum funcționează declarația do ... while?

3. Cum funcționează declarația for?

4. Subliniați enunțurile din program care formează ciclul.

5. Care este diferența dintre declarațiile while și do ... while?

6. Înlocuiți un operator de ciclu cu altul din program.



Ți-a plăcut articolul? Împărtășește-l