Buclele în Pascal
În rezolvarea problemelor poate fi necesar să repetați aceeași acțiune de mai multe sau de mai multe ori. În programare, blocuri de cod care trebuie să se repete de mai multe ori, rândul său, la proiectarea de construcții - cicluri. Lansăm cicluri de antet și un corp. Titlu specifică cât de mult sau cât de multe ori corpul bucla va fi executat. Corpul conține expresii care sunt executate daca expresia este returnat adevăr logic în ciclul antet (Adevărat, nu este zero). Odată ce a ajuns la ultimul corpul de execuție de instrucțiuni se întoarce la ciclul de curgere antet. Condiția este testat din nou bucla. În funcție de rezultatul corpului buclei sau repetate, sau efectuarea avansurilor de debit la următoarea expresie după ciclul.
În limbajul de programare Pascal, există trei tipuri de structuri ciclice.
Adesea menționată ca un ciclu pentru un ciclu cu un contor. Acest ciclu este utilizat în cazul în care numărul de repetiții nu este legată de ceea ce se întâmplă în corpul buclei. Ie repetiții număr poate fi calculat în avans (deși nu este calculat).
Ciclul antet indică două valori. Prima valoare este atribuită așa-numita variabila contor, de la această valoare începe numărarea numărului de iterații (repetiții). Numărătoarea inversă este întotdeauna un pas egal cu unu. A doua valoare indică la ce valoare a contorului ciclului pentru a opri. Cu alte cuvinte, numărul de iterații determinat de diferența dintre a doua și prima valoare plus unu. În Pascal expresii ale corpului bucla nu trebuie să conțină modificarea contorului.
Pentru bucla există în două forme:
Counter - este o variabilă de oricare dintre tipurile enumerate (întreg, boolean, caracter, gama, de transfer). Valorile inițiale și finale pot fi reprezentate nu numai de valorile, dar expresia returnează un compatibile tipurile de date de tip contor. Dacă între expresia specificată cuvântul inițială și finală a funcției. apoi pe fiecare parametru pas ciclu va fi incrementat cu unu. Dacă specificată downto. valoarea parametrului va scădea cu unul.
Numărul de iterații pentru bucla este cunoscută înainte de execuție, dar nu pentru a efectua intregul program. Astfel, în exemplul de mai jos, numărul de execuții ale unui ciclu definit de utilizator. Valoarea atribuită variabilei, și apoi utilizate în ciclul antet. Dar atunci când este utilizat, ciclul este deja cunoscut exact cât de multe ori pentru a executa.
în timp ce bucla
în timp ce ciclul este un ciclu cu o condiție prealabilă. Ciclul antet este o expresie logică. Dacă se returnează adevărat. atunci corpul este executat în cazul în fals - nu este.
Atunci când corpul buclei a fost executat, fluxul de program revine la antetul ciclului. Implementarea stării corpului este verificată din nou (este o valoare expresie logică). Corpul buclei este executat ori de câte ori expresia logică returnează true. Prin urmare, este foarte important în corpul buclei pentru a oferi o schimbare de variabilă, care apare în antetul ciclului, astfel încât vine vreodată o situație este falsă. În caz contrar, va exista o buclă de așa-numitele. Una dintre cele mai grave greseli in programare.
repeta ciclul
în timp ce ciclul nu poate fi executat chiar și o singură dată, în cazul în care titlul de expresie logică întoarce imediat fals. Cu toate acestea, această situație nu poate fi întotdeauna acceptabilă. Se întâmplă că corpul buclei trebuie să fie executată cel puțin o dată, indiferent pentru că returnează o expresie booleană. Într-un astfel de caz, un ciclu de repetare - ciclu cu postconditie.
Ciclul de repetare a expresiei logice apare după corpul buclei. Mai mult, în contrast cu bucla in timp. aici opusul este adevărat: dacă adevărat este ieșit din bucla, dacă este falsă - repetarea ei.
În exemplu, chiar dacă n este 0, o stea va fi în continuare tipărite.