Aflați cum să utilizați instrucțiunile de buclă în programele Turbo-Pascal.
Scurte informații teoretice [1-3]
Algoritmii pentru rezolvarea multor probleme sunt ciclice, adică Pentru a obține rezultatul, o anumită secvență de acțiuni trebuie efectuată de mai multe ori.
De exemplu, pentru a găsi numele unei persoane pe listă, trebuie să verificați primul nume al listei, apoi al doilea, al treilea, etc.,
Dacă numele de familie dorit nu este găsit sau nu se ajunge la sfârșitul listei.
Un algoritm în care există o secvență de operații care trebuie efectuată de mai multe ori se numește ciclică. iar secvența de operații se numește ciclu.
Astfel, operatorii buclă sunt utilizați pentru calcule,
Există trei tipuri de cicluri în Pascal:
1) un ciclu cu o condiție prealabilă;
2) un ciclu cu o repetare postcondiționată;
3) o buclă cu parametrul pentru.
Fiecare dintre ele constă dintr-o anumită secvență de operatori.
Blocul, de dragul căruia este organizat ciclul, este numit
corp al ciclului. Operatorii rămași servesc la controlul procesului de repetare a calculelor: acestea sunt setările inițiale, verificarea condiției de continuare a ciclului și modificarea parametrului ciclului. Cu toate acestea, modificarea parametrului bucla poate fi implementată în corpul bucla.
O trecere a ciclului se numește iterație.
Setările inițiale sunt utilizate pentru a seta valorile variabilelor folosite în ea înainte de a intra în bucla.
Condiția continuării buclă este verificată la fiecare iterație sau înainte de corpul buclei (apoi se vorbește o buclă cu o condiție prealabilă) sau după corpul buclei (un ciclu cu o condiție ulterioară). Diferența dintre ele este,
că corpul unui ciclu cu o condiție postcondiționată este întotdeauna executat cel puțin o dată, după care se verifică dacă este necesar să se realizeze din nou. Verificarea necesității unei buclă cu o condiție prealabilă se face spre corpul bucla, astfel încât este posibil să nu se execute o singură dată.
Un parametru de buclă este o variabilă care se utilizează la verificarea condiției de buclă și se schimbă forțat la fiecare iterație,
și, de regulă, cu aceeași sumă. Dacă parametrul bucla este întreg, se numește contorul ciclului. Numărul de repetări ale unui astfel de ciclu poate fi determinat în avans. Nu fiecare ciclu are un parametru.
Ciclul se încheie dacă condiția de continuare nu se menține.
Este posibil să se forțeze finalizarea atât a iterației curente, cât și a ciclului ca întreg. Pentru aceasta, se utilizează instrucțiunile de pauză. continuă și trebuie. Nu este recomandat să transferați controlul din exterior spre interiorul bucla, deoarece este posibil ca setările inițiale să nu fie executate.
Ciclu cu condiție prealabilă în timp ce
Operatorul de timp este utilizat în cazul în care o anumită secvență de acțiuni (declarații de program) trebuie executată de mai multe ori, iar numărul necesar de repetări în cursul dezvoltării programului este necunoscut și poate fi determinat numai în timpul funcționării programului.
În general, declarația de timp este scrisă după cum urmează:
în timp ce condiția face
Condiția în acest caz este o expresie de tip logic,
Aceasta determină condiția pentru executarea secvenței operatorilor corpului ciclului. Dacă corpul bucla conține un singur operator, atunci nu pot fi folosite cuvinte cheie de început și de sfârșit.
Instrucțiunea while este executată după cum urmează:
1) În primul rând, valoarea expresiei condiției este evaluată.
2) Dacă valoarea expresiei este falsă (adică, condiția nu este deținută), executarea instrucțiunii while este finalizată. După terminarea ciclului, controlul este transferat operatorului care îl urmărește.
3) Dacă valoarea expresiei este adevărată (adică condiția este îndeplinită), atunci faceți
între operatorii de început și de sfârșit al corpului bucla. După aceasta, condiția este verificată din nou. Dacă condiția este îndeplinită, atunci operatorii corpului bucla sunt executați din nou. Și așa mai departe, până când condiția devine falsă (adică
O diagramă a unui algoritm care corespunde executării instrucțiunii while. este prezentat în Fig. 1.
Fig. 1. Algoritm pentru executarea timpului
Pentru ca operatorii corpului buclei să fie între început și sfârșit. au fost executate cel puțin o dată, este necesar ca la începutul executării instrucțiunii while value să fie adevărată valoarea expresiei.
Pentru ca buclele să se termine, este necesar ca secvența de operatori între început și sfârșit să afecteze valoarea condiției de exprimare
(a schimbat valorile variabilelor incluse în condiția expresie).
Să examinăm exemplele declarației.
în timp ce x<=5 do x:=x+2;
Să luăm în considerare caracteristicile de performanță ale operatorului dat pentru un caz,
dacă înainte de executarea unui operator al variabilei x a întregului tip a fost atribuită valoarea x = 3:
1) Calculați mai întâi valoarea expresiei logice x<=5 .
2) Pentru că valoarea expresiei 3<=5 равно true. то выполняется оператор x:=x+2. т.е. значение переменной x становится равным x=5 .
3) Valoarea expresiei logice x<=5 .
4) Deoarece valoarea expresiei 5<=5 также равно true. то выполняется оператор x:=x+2. т.е. значение переменной x становится равным x=7 .
5) Valoarea expresiei logice x<=5 .
6) Deoarece valoarea expresiei 7<=5 равно false. то выполнение цикла завершается и начинает выполняться некоторый оператор, следующий за оператором while .
Acum, să luăm în considerare particularitățile acestui operator pentru cazul în care înainte de a executa un operator al unei variabile x de tip integer
a fost atribuită valoarea x = 11:
1) Calculați mai întâi valoarea expresiei logice x<=5 .