Declarații în timp ce Buclă și repetați

Bine ai venit entuziaști de programare și site-ul cititori progmatem.ru. Într-una din paginile anterioare am analizat operatorul ciclu cu opțiunea. așa că e timpul pentru a explora alte tipuri de cicluri - în timp ce declarația și se repetă.







✎ Operatorii și repeta ciclul în timp ce utilizează atunci când nu se cunoaște dinainte numărul total de iterații (calcul repetiție) ciclu, iar finalizarea calculelor depinde de anumite condiții. În cazul în care condiția este plasată la începutul ciclului (la intrare), se folosește în timp ce operatorul, în cazul în care ieșirea - repetă.

Și acum descifreze a spus: în primul rând în timp și repetați apoi mai mici.

ciclu în timp ce operatorul are următoarea structură:

Acest lucru ar trebui să fie înțeles după cum urmează: atâta timp cât condiția este adevărată. în picioare între timp ce și de a face, executa declarația după do, numit corpul buclei. Înainte de fiecare apel într-o stare de buclă este testat: dacă este adevărat, atunci declarația este executată, dacă este falsă, atunci iese automat ciclul.

În cazul în care operatorul este într-un ciclu de mai mulți operatori, acestea trebuie să fie plasate între paranteze operatorul începe - capăt (a se compara pentru bucla). Nu uita că operatorii înșiși sunt separate de către operatorul „virgulă“ (dar înainte de sfârșitul de închidere la sfârșitul anului pentru a pune nu este necesar).

Said demonstrează un exemplu de calcul al sumei cuburilor tuturor numere întregi de la 1 la 10. Din codul se poate observa că în timp ce b ≤ 10 (linia 7), se va executa corpul buclei, în care în fiecare iterație pentru a adăuga suma sumei b 3. Când ultimul calcul la b = 10 calculează suma (linia 9) și creștere mai slabă b 1: b = 11, astfel încât pasul următor este ieșirea din ciclul, ca o condiție de intrare b ≤ 10 încălcate.

Să considerăm bine cunoscut exemplu al expansiunii funcției e x în seria Taylor:

Calculăm valoarea sa cu precizie, de exemplu, 0.000001 (o milionime), iar valoarea este notată cu S. După cum este evident, o primă valoare (sumă) este egal cu a0 = 1, și să calculeze pentru fiecare membru ulterior al unui + 1, anterior se înmulțește cu un x și divide cu n. Într-adevăr, o + 1 = x n + 1 / (n + 1)! = X n · x / (n! · N) = o · x / n. Acest lucru este demonstrat în programul de mai jos.







Sensul este: atâta timp cât termenii de mai mult de 0.000001, va rula corpul buclei, în care se calculează suma menționată. Odată ce un membru al unui număr devine mai mic sau egal cu 0.000001, bucla se iese, iar rezultatul final este de ieșire.

Este necesar să se evite situația în care condiția de intrare în ciclul este întotdeauna adevărat, pentru că atunci programul va bucla. Această situație se numește „buclă infinită.“ Aici este un exemplu.

Programul va afișa salut „Bună ziua!“ infinit, care este, atâta timp cât nu-l opresc. Acest lucru se datorează faptului că starea 1 <100 всегда истинно.

Uită-te la un alt exemplu din seria armonica sau alte programe ale secțiunii În timp ce Taskbook Abrahamyan.

Ieșire cel mai mic divizor de numere x, diferite de la 1

Imprimare număr minim mai mare de 200, care este divizibil cu 17

Operatorul ciclu de repetare are următoarea structură:

Spre deosebire de repeta operatorul ciclu în timp ce de la faptul că acesta este condiția este verificată la ieșirea din ciclul, în cazul în care nu este îndeplinită, atunci ciclul continuă, în cazul în care executat - chiar din bucla. Astfel, în timp ce condiția este adevărată, programul merge la urmatoarea iteratie, condiția este rupt - plece. Prin urmare, se repetă mai mult operatorul numită clauză de evacuare. Chiar și în declarația de repetare nu are nevoie de paranteze operatorul începe - capăt pentru mai mulți operatori:

O altă caracteristică a declarației repeta - până când este că, cel puțin o dată de un operator din corpul buclei este executat ca starea de ieșire este testată la sfârșitul anului. Această caracteristică conduce la faptul că orice operator cu o condiție prealabilă în timp ce poate fi ușor transformată într-un operator cu postconditii repeta, iar acest lucru nu este ușor să se repete fiecare operator este înregistrat de un timp.

Se calculează rădăcina pătrată a numărului introdus cu tastatura. Rulați programul și încercați să introduceți un număr negativ, de fiecare dată când se va reveni la începutul ciclului, după cum puteți ieși din ciclul, dacă introduceți un număr non-negativ x: x> = 0.

Cu tastatura numerică pentru a introduce atâta timp cât valoarea lor este să nu depășească numărul predeterminat în avans. După cum puteți vedea în linia 11, în cazul în care suma depășește suma numărului de M, apoi ieșiți din bucla și afișează rezultatele:

Prezentați numerele de secvență, secvență de 0-end. Pentru a determina dacă o secvență cuprinde cel puțin două numere adiacente egale.