Operatorul ciclului cu Postcondition

În exemplul de mai sus, se folosește operatorul buclă cu o condiție ulterioară. Sintaxa acestei instrucțiuni este:

repeta <операторы> până <условие>

Aici, repetați, până la cuvinte cheie (repetați sangl și repetați până);







<операторы> Orice operatori Turbo-Pascal (ei sunt numiți corpul unui ciclu);

<условие> - o expresie logică a tipului de comparație folosit pentru a ieși din bucla. Operatorul funcționează după cum urmează: mai întâi, instrucțiunile sunt localizate în corpul bucla, atunci condiția este evaluată și, dacă se obține o adevărată valoare, bucla este ieșită. Dacă valoarea expresiei este falsă, atunci se repetă executarea instrucțiunilor corpului bucla și apoi se verifică din nou condiția. Și astfel, operatorii corpului buclei sunt executați cel puțin o dată și apoi totul depinde de starea de ieșire a buclei. Evident, unul dintre operatorii corpului buclei trebuie să influențeze valoarea expresiei condiționale, altfel buclă va fi repetată pe termen nelimitat.

Se ilustrează utilizarea unui operator de buclă cu o condiție postcondițională în exemplul în care sunt extrase numere impare mai mici de 10. Algoritmul este prezentat în figura 10, iar programul din exemplu este pr10.

Operatorul ciclului cu Postcondition

Ca urmare a acestui program, în coloană vor fi tipărite toate numerele impare de la 1 la 9.







Declarație ciclu cu condiție prealabilă

Spre deosebire de un operator cu buclă cu o condiție ulterioară, un operator cu o condiție preliminară evaluează și verifică starea înainte de a executa instrucțiunile care alcătuiesc corpul bucla. În caz contrar, acești operatori sunt asemănători. Sintaxa acestei instrucțiuni este:

în timp ce <условие> face <оператор>;

Aici, în timp ce, faceți-cheie (traduceți sangl pentru acum și face);

<оператор> Orice operator Turbo-Pascal, inclusiv un operator compozit (acest operator este numit corpul ciclului);

<условие> - o expresie logică a tipului de comparație folosit pentru a ieși din bucla.

Operatorul funcționează după cum urmează: în primul rând, condiția este evaluată, iar dacă se obține adevărata valoare, operatorul care este corpul bucla este executat și apoi condiția este verificată din nou. Dacă valoarea expresiei condiționate este falsă, atunci ieșiți din bucla. Astfel, dacă condiția a fost falsă la prima intrare în buclă, atunci operatorii corpului bucla nu sunt executați o singură dată. Evident, unul dintre operatorii corpului buclei trebuie să influențeze valoarea expresiei condiționale, altfel buclă va fi repetată pe termen nelimitat. De exemplu, următorul fragment de program va imprima un mesaj plin de bucurie un număr infinit de ori, deoarece nu există construcții în buclă care să modifice valoarea lui i:

Pentru a obține un fragment de lucru al programului, adăugați la corpul bucla un operator care crește valoarea lui i:

Se ilustrează folosirea operatorului buclă cu o condiție prealabilă pentru exemplul pr11 de a găsi secvența aritmetică medie a numerelor (schema algoritmului este prezentată în figura 11). Secvența de numere este introdusă de la tastatură și se termină cu un cod de oprire. Utilizarea codului de oprire în acest caz este că o anumită valoare numerică este exclusă în mod deliberat din secvența de intrare și folosită ca un cod de oprire. Dacă știm în avans că -1 nu va apărea niciodată în secvență, atunci -1 poate fi folosit pentru a indica sfârșitul acesteia.

Operatorul ciclului cu Postcondition







Articole similare

Trimiteți-le prietenilor: