Cicluri cicluri de conținut 1

Întrebări privind schema de evoluție a algoritmului ciclic 2

Ciclul cu condiția WHILE. DO 2

Exemplul 1. Afișează în ordine ascendentă toate numerele impare mai mici decât un număr dat n. 3

Calcularea sumelor, a produselor și a cantităților 3

Exemplul 2. Se calculează produsul cu numere parțiale mai mici decât un număr dat m. 3

Căutați primul obiect care satisface condițiile specificate. 4

Exemplul 4. Calculați valoarea expresiei 12 + 32 + 52 +. până când această sumă depășește 1000. Răspunsul este afișat pe ecran. 5

Sarcini pentru tema "în timp ce se desfășoară" 6

Un ciclu cu un contor. 6

Exemplul 5. Citiți de la tastatură numărul n și afișați factoriali ai numerelor de la 1 la n inclusiv. 7

Sarcini pentru "buclă for" 8

O buclă cu o repetare postcondiționată. până la 9

Exemplul 6. Având în vedere o secvență neimportantă de numere întregi, terminând cu un număr 0. Găsiți suma numerelor. 9

Soluție cu timp

Exemplul 6.1. Afișați cel mai mare divizor de două numere perene 10

Sarcini pe tema "repetarea ciclului ... până la" 11

Utilizarea variabilelor suplimentare 11

Sarcini pentru "utilizarea variabilelor suplimentare" 12

Exemplul 8. Găsiți numărul de cifre dintr-un număr dat. De exemplu, pentru numărul 1232, numărul de cifre este 4. 13

Exemplul 9. Găsiți produsul cifrelor unui număr dat. 13

Probleme cu lucrul cu numere de 13

Sarcini de complexitate sporită. 14

Cicluri de implementare în scheme


O buclă este un proiect algoritmic conceput pentru a repeta acțiunile în mod repetat.

Diagrama bloc prezintă un exemplu de program cu un ciclu. Proiectul ciclului este plasat într-un dreptunghi albastru. Să ne uităm mai îndeaproape și să înțelegem cum va funcționa programul în acest caz. Acțiunea 1, apoi acțiunea 2, apoi se va verifica condiția 1. Dacă este adevărat, se execută acțiunile 3 și 4. Apoi programul va reveni la pasul 2. Evident, atunci toate comenzile plasate în interiorul dreptunghiului se vor repeta din nou și din nou. Aceasta va continua până când, la verificarea condiției 1, se va dovedi că este falsă. În acest caz, programul va ieși din bucla, va executa pasul 5 și va termina lucrul. Astfel, în diagramă, ciclul se realizează cu ajutorul unei săgeți care se întoarce la pașii deja întreprinși.

Acțiunile care sunt efectuate la fiecare pas al bucla formează corpul bucla. O condiție, una dintre ramurile cărora realizează ieșirea din bucla, este numită condiția de continuare a ciclului. Pe fragmentul graficului prezentat în figură, corpul ciclului este format din acțiunile 2, 3, 4. Condiția 1 este condiția pentru continuarea ciclului. În cazul în care făptuitorul a mers la blocul „condiție“, și este adevărat, operațiunile de buclă se repetă din nou, și în cazul în fals - interpret din bucla de pe ramura 0, și continuă cu etapa 5, în urma ciclului. Fiecare trecere a artistului pe un ciclu se numește pasul ciclului.

La elaborarea algoritmilor ciclici, este necesar să se acorde atenție la 3 puncte:



  1. Atribuiți valori inițiale tuturor variabilelor pe care doriți să le utilizați

  2. să se gândească la ce ar trebui să facă algoritmul în fiecare etapă a ciclului

  3. Cât timp se va derula etapele ciclului - această condiție pare să furnizeze condiții, una dintre ramurile cele din urmă se întoarce la condițiile de bloc, iar celălalt din bucla

Întrebări privind schema unui algoritm ciclic


  1. Care este condiția pentru continuarea ciclului în diagrama prezentată?

  2. Ce acțiuni sunt repetate la fiecare pas al ciclului?

  3. Care va fi rezultatul programului dacă n = 4 este introdus?

  4. Ce sarcină rezolvă algoritmul?

Ciclu cu condiția WHILE.DO


Un ciclu cu o condiție prealabilă este una dintre cele mai simple construcții ale unui ciclu. În format, este similar cu forma prescurtată a operatorului de ramură, numai în loc dacă este necesar să scrieți cuvântul în timp. și apoi cuvântul face.

Aici, "condiția" după cuvânt în timp ce este condiția pentru continuarea bucla. Ca o condiție, puteți scrie orice expresie logică. Operatorul scris după cuvântul "face". formează corpul bucla și este executat în mod repetat până când "starea" continuării buclei este adevărată în timpul testului. O diagramă bloc a bucla în timp ce este prezentată în figură. Proiectarea ciclului în diagramă este plasată într-un dreptunghi verde. Rețineți că blocul condiției de continuare este în fața corpului bucla, astfel încât bucla în timp ce se numește o buclă de precondiție. Un alt nume pentru buclă în timp rezultă din traducerea rusă - buclă "în timp".

Așa cum arată schema tehnologică, dacă computerul întâlnește o buclă în timp, acesta verifică starea și, dacă este adevărat, execută instrucțiunea, apoi revine la condiție. Aceste acțiuni sunt repetate de mai multe ori până când condiția este falsă în timpul verificării. În acest caz, calculatorul continuă să execute operatorul 2, care urmează construcția de buclă din diagramă.

Dacă trebuie să executați mai mulți operatori la fiecare pas al bucla, trebuie să le combinați într-o singură instrucțiune compusă, rezultând astfel o structură a formularului:

Exemplul 1. Afișează în ordine ascendentă toate numerele impare mai mici decât un număr dat n.

Vom stoca numerele deduse din variabila i. Mai întâi i: = 1, deoarece 1 este cel mai mic număr impar. La fiecare pas al ciclului, trebuie să afișați valoarea lui i pe ecran și să adăugați la acesta 2 - trecerea la următorul număr impar. acești operatori constituie corpul bucla. Deoarece există 2 dintre ele, trebuie să puneți începutul și sfârșitul. Buclele trebuie executate în timp ce i 0doreadln (x);

Exemplul 4. Calculați valoarea expresiei 1 2 +3 2 +5 2 +. până când această sumă este mai mare de 1000. Răspunsul este afișat pe ecran.


Soluția. Suma este acumulată în variabila s. Condiția de continuare a ciclului este s = con. La fiecare etapă a ciclului, valoarea startului variabil scade cu 1.

La fiecare etapă a buclului for, se execută o instrucțiune. Dacă trebuie să executați mai multe - formați un operator compozit de la ei. de exemplu, ia în considerare problema.

Exemplul 5. Citiți de la tastatură numărul n și afișați factoriali ai numerelor de la 1 la n inclusiv.

Factorialul unui număr este produsul tuturor numerelor de la 1 la acest număr, adică k! = 1 * 2 * 3 *. * k. O multime de multiplicari, atunci ai nevoie de un ciclu. Numărul de repetări pentru a calcula n! fix, în plus, trebuie să înmulțiți numere care diferă de 1. Deci, este convenabil să utilizați buclă pentru. Factorul unui număr va fi stocat în variabila f. Înainte de ciclul f = 1. În prima etapă a ciclului, multiplicați f cu 1. Acesta este 1! Răspunsul imediat trebuie să fie afișat, deoarece prin condiție trebuie să se deducă toți factorii. Apoi trebuie să se înmulțească cu 2, vom obține 2 mai departe cu 3, etc. În buclă for, contorul este incrementat cu câte unul la fiecare pas, deci nu avem nevoie de o variabilă specială pentru a stoca numerele pe care le multiplicăm folosind contorul. Suntem contra tej. Valoarea inițială a contorului este specificată în antetul bucla for: i: = 1, valoarea finală a n. La fiecare pas al ciclului, multiplicați f cu i (f: = f * i) și îl afișați pe ecran.

Sarcini pentru subiectul "pentru buclă"


  1. Citiți numărul n și afișați n!

  2. Citiți numărul n de pe tastatură și afișați cuvântul "salut" n ori pe ecran

  3. Citiți valorile variabilelor n și m de la tastatură și afișați pătratele de întregi de la n la m.

  4. Citiți valoarea n de la tastatură și afișați toate numerele paralele care nu depășesc 2 * n.

  5. Afișați primele 20 de numere naturale în ordine descrescătoare, adică 20 19 18 ... 2 1

Asignări la opțiuni.

  1. Citiți numărul n de pe tastatură și afișați pătratele de numere de la 1 la n în ordine ascendentă.

  2. Citiți numărul n de pe tastatură și afișați suma pătratelor de numere de la 1 la n

  3. Citiți numărul n de pe tastatură și afișați pătratele de numere de la 1 la n în ordine descrescătoare.

  4. . Citiți numerele n și m de la tastatură și afișați numerele de la n la m în ordine ascendentă.

  5. . Citiți numerele n și m de la tastatură și afișați produsul numerelor de la n la m.

  6. Citiți numărul n de pe tastatură. Calculați generarea de numere de la 1 la n și suma de numere de la 1 la n. Afișați diferența dintre suma găsită și produsul.

  7. Citiți numărul n de pe tastatură. Apoi, citiți de la tastatură n numere și afișați suma acestora pe ecran.

  8. Citiți numărul n de pe tastatură. Apoi, citiți de la tastatură n numere și afișați munca lor.

  9. Citiți numărul n de pe tastatură. Apoi, citiți de la tastatură n numere și afișați suma ultimelor lor cifre.

  10. Citiți numărul n de pe tastatură. Apoi, citiți de la tastatură n numere și afișați produsul ultimelor lor cifre.

Ciclu cu postconditionrepeat.until


Construcția unui ciclu cu o condiție ulterioară este

Diagrama bloc corespunzătoare este prezentată în figură. Principalele diferențe de vizibile în timp ciclul particular proiectarea și organigramele (structura buclă în diagrama plasată într-un dreptunghi verde):

Condiția este verificată după executarea corpului bucla, astfel încât corpul bucla va executa în mod necesar cel puțin o dată. Din acest motiv, acest ciclu este numit un ciclu cu o condiție ulterioară.

"Starea" este de fapt condiția pentru încheierea ciclului. Dacă, atunci când verificați condiția, sa dovedit a fi adevărată, atunci ciclul se termină și calculatorul se deplasează la operatorul următor după buclă. În diagramă, această afirmație este de 3.

Liniile "REPEAT" și "UNTIL conditions" formează parantezele operatorului. astfel încât corpul acestui ciclu poate consta din orice număr de operatori. începe. nu este necesar.

În alte privințe, trăsăturile aplicării acestui ciclu și capcanele coincid cu cele ale ciclului în timp.

Repetați ciclurile. până și în timp ce acestea sunt complet interschimbabile, deși există situații în care este mai convenabil să se folosească acest sau acel design, având în vedere diferențele dintre ele.

Exemplul 6. Având în vedere o secvență neimportantă de numere întregi, terminând cu un număr 0. Găsiți suma numerelor.

Deoarece vor fi mai multe numere, este necesar să citiți în mod repetat numărul de la tastatură și să îl adăugați la sumă. Avem nevoie de un ciclu. În variabila x stocăm următorul număr, în variabila s suma. Este mai convenabil să utilizeze repeat..until ciclu, deoarece este necesar să se citească mai întâi numărul (care este, efectuați un corp buclă) și apoi verificați pentru a vedea dacă este egal cu 0. Pentru comparație, în cadru arată soluția problemei cu o buclă în timp. Din comparație, este clar că programul în timp este mai complicat.

Soluție cu timp

Articole similare