9 Instrucțiunea ciclu cu parametrul pentru

Ciclu cu parametru. Clauza pentru

Instrucțiunea pentru buclă execută structura algoritmică a unei buclă cu un parametru (sau o buclă cu un contor). Bucla pentru este utilizată atunci când, în program, înainte de executarea instrucțiunilor buclă, numărul de pași din acest ciclu devine cunoscut (sau predeterminat). În diagramă, instrucțiunea for este afișată după cum urmează:






9 Instrucțiunea ciclu cu parametrul for

sintaxa:

Dacă există o instrucțiune în corpul ciclului, atunci <> pot fi omise. Parametrul variabil al buclă (contor) poate fi orice tip numeric. Acest lucru face ca buclă C ++ la fel de universal ca bucla în timp. Într-o modificare a secțiunii utilizate cel mai frecvent prefix operație sau increment postfixat (sau decrementare), dar poate fi orice expresie de atribuire, modificarea valorii parametrului ciclului. Ciclul funcționează după cum urmează:

  • La început, variabila contor este declarată și inițializată
  • Verificați apoi condiția: dacă expresia este adevărată. se produce o iterație
  • După executarea instrucțiunilor corpului bucla, se modifică valoarea contorului

Notă. în C ++ este regula pentru a face o descriere a contorului variabil în antetul buclă. Dar acest lucru nu este necesar, mai ales dacă se intenționează inițializarea mai multor variabile în secțiunea de inițializare, așa cum este implementată în program 9.2. Cu toate acestea, folosirea descrierii de variabilă a contorului în antetul de buclă are ca rezultat o descriere a variabilei locale care este distrusă automat când se termină buclă. Prin urmare, fără o necesitate extremă, descrierea contorului variabil în afara forului pentru nu ar trebui să fie produsă.
În cursul for loop-ului, nu se recomandă schimbarea operanzilor în expresiile antetului buclă - aceasta va duce la tot felul de erori! Dar valorile variabilelor (sau constantele) însele, inclusiv valorile variabile (contra), pot fi utilizate. Să luăm în considerare un exemplu clasic.

Programul 9.1 Având un număr natural N. Efectuați toate separatoarele acestui număr.

Folosind instrucțiunea continuă din buclă for

Atunci când utilizați instrucțiunea continuă în buclă pentru, este necesar să luați în considerare activitatea acestui ciclu:

  • Instrucțiunile care urmează urmează să continue. va fi omisă
  • Apoi, contorul este actualizat
  • Mergeți la următoarea iterație (altfel, verificați condiția)

Să arătăm un exemplu:

Notă. Notă: deși ieșirea numerelor în funcție de condiție este depășită, se face incrementarea contorului. Acest exemplu este dat doar pentru ilustrare, programarea ciclului nu ar trebui să fie așa! Este mai bine să rezolvăm această problemă după cum urmează:







Mai multe expresii în secțiunea de inițializare și modificare

Așa cum am remarcat mai devreme în antetul declarației pentru, ar trebui să existe trei secțiuni. Expresiile din aceste secțiuni pot fi omise, dar nu pot fi omise ";". În cele din urmă, puteți pleca numai ;. Rubrica în forma:

este capul ciclului "infinit". (Ieșirea din buclă trebuie programată în interiorul corpului bucla).
C ++ acceptă mai multe expresii în secțiunile de inițializare și modificare din antetul de instrucțiuni pentru. În acest caz, condiția pentru continuarea ciclului trebuie să fie una!
De exemplu. Declarația problemei: Calculați factorialul unui număr care nu depășește 20.
Programul 9.2

Notă. Rețineți că fluxul de ieșire din rândul 12 nu se referă la corpul bucla! (La sfârșitul rubricii -;). Astfel, acest ciclu în organism are o declarație goală și toate expresiile sunt evaluate în antet. Programul 9.2 calculează corect factorialul unui număr de la 0 la 20.

Ciclul pentru raza de acțiune (pentru interval)

Pentru a enumera elementele unui tablou sau unui container, trebuie să efectuați același tip de acțiuni, în timp ce utilizați un cod voluminos. Pentru a facilita utilizarea containerelor are o formă specială pentru ciclul în C ++ - gama-based pentru (buclă pentru bazate pe intervalul sau intervalele pentru).
sintaxa:

Folosind arhitectura C bazată pe gamă:
Programul 9.3

Pentru ca elementele matrice să fie schimbate, variabila s trebuie să fie o variabilă de referință (ca în exemplul de mai sus). Dacă variabila nu este o referință, datele vor fi copiate. Pentru a tasta automat în această buclă, se utilizează specificatorul auto. Gama bazată pe o restricție privind lucrul cu matrice dinamice: nu are suport pentru matrice redimensionare, deoarece conține un pointer la un capăt fix al matrice. Atunci când lucrați cu rețele de dimensiuni fixe, intervalul pentru care este o alternativă excelentă și sigură față de cea obișnuită.

Inserate pentru bucle

La fel ca și alte instrucțiuni de buclă, suportă structura de buclă imbricată. Folosirea buclelor imbricate pentru a organiza intrările și ieșirile de tablouri bidimensionale pare mult mai compactă decât utilizarea unei bucla în timp.
Cu toate acestea, atunci când rezolvăm problemele de traversare a unor astfel de rețele, este necesar să evităm utilizarea instrucțiunii condiționate dacă. Adesea, o sarcină poate fi implementată mai rațional, prin manipularea indicilor (variabilele ciclului i și j). Adică, pentru a pune în dependență schimbarea unui indice, de la valoarea altui. Să luăm în considerare două exemple.
Programul 9.4 Având o matrice pătrată de dimensiunea n, ale cărei elemente sunt egale cu 0. Completați elementele situate mai jos și pe cele mai importante unități diagonale.

Programul 9.5 Creați un program pentru a umple un matrice cu numerele triunghiului Pascal și pentru a extrage acest matrice. Triunghiul Pascal arată astfel:

9 Instrucțiunea ciclu cu parametrul for

În acest triunghi pe partea de sus și părțile laterale ale costului unitar (programul 9.5 Triangle „a pus într-o parte“ - parte a triunghiului: prima coloană, și diagonala principală). Fiecare număr este egal cu suma a două numere deasupra acestuia. Rânduri triunghi simetric față de axa verticală și cuprinde un coeficient binomial.

  1. Poate fi înlocuită o instrucțiune pentru buclă pentru buclă cu o instrucțiune în buclă? Este întotdeauna posibil să faci asta?
  2. Când este mai convenabil să folosiți instrucțiunea pentru pentru a organiza buclele? în timp ce?
  3. Sunt posibile următoarele afirmații în antetul declarației pentru:
  4. Variabila i este parametrul bucla exterioară, iar j este parametrul imbricat. Este variabila j disponibilă în bucla exterioară? i în buclă imbricată?
teme pentru acasă
  1. Ass. 29. Scrieți un program în care sunt introduse numerele naturale a și b. iar pe ecran se afișează toate numerele prime din intervalul de la a la b (ideea algoritmului Programul 8.5)
  2. Ass. 30. Perfect este un număr egal cu suma tuturor divizorilor sale din sale mai mici (de exemplu, numărul = 1 + 6 2 + 3). Scrieți un program care introduce un număr natural N și determină dacă numărul N este perfect.
  3. Scrieți un program care afișează un tabel cu număr pătrat cu m x n. care are următoarea formă pentru n = 10.
literatură






Articole similare

Trimiteți-le prietenilor: