Structura ciclică Algoritmi
Algoritmi structură ciclică sunt cel mai frecvent tip de algoritmi. Algoritmii structură ciclică în funcție de îndeplinirea sau neîndeplinirea oricăror condiții pentru a repeta o secvență de acțiuni ciclu nazyvayuschayasyatelom.
Un exemplu clasic al utilizării structurii „buclă“ este problema funcției tabulare. Sarcina intabulare (tabelul preparare) a unei y funcției = f (x) se reduce la calcularea valorilor acestei funcții cu cicluri ale parametrilor. schimbarea shagomDx constantă într-un interval predeterminat de la o valoare inițială a unui znacheniyaxk argumentaxn final. Pe ecranul afișează monitor] (xk -xn) / Dx [+ 1 perechi de valori argumentax de ieșire prin intermediul operatorului situat în interiorul corpului buclei. Parantezele] [înseamnă că se angajează partea întreagă a diviziunii.
Exemplu. Se calculează valoarea y funcției (x) = x 2 + 1,5 o schimbare în argument x diapazonexn ≤x ≤xk cu shagomDx. Imprimarea unei znacheniyx de masă și Y.
Reprezentarea vizuală a unui algoritm pentru rezolvarea unui tip de „încă“ a ciclului de sarcini cu condiție prealabilă dată în figura 9.13
Fig. 9.30. Reprezentarea vizuală a funcției algoritm intabulare într-o buclă „încă“ de tip - ciclu cu condiția prealabilă
Acest ciclu cu un număr predeterminat de repetiții] (xk -xn) / Dx [+ 1. Înainte este necesar primului ciclu de execuție pentru a seta argumentax valoarea inițială. ravnoexn. urmat] (-xn xk) / dx [+ 1 ori pentru a efectua valorile funktsiiy de calcul și de încheiere. Cu fiecare nouă execuție a buclei este necesară pentru a schimba argumentul la amploarea etapei ravnogoDx. Că procesul nu este infinit, ar trebui să setați condiție sau ciclu de repetare.
In schema sunt prezente sunt necesare în aceste structuri blocuri rotunde robin: stabilirea unei valori inițiale a parametrului (blocul 4), condițiile de verificare a ajunge la o valoare finală a parametrului (blocul 5), parametrul unitate de schimbare (blocul 8).
Corpul acestui proces ciclic sunt blocurile 5, 6, 7 și 8. Parametrul acestui ciclu este variabila x.
Noi reprezentăm acest sistem round robin folosind „pentru“ de tip buclă sau un ciclu cu un parametru care este o modificare a „în timp ce“ buclă pentru o situație în care se cunoaște dinainte numărul de repetiții ale anumitor acțiuni. În acest caz, toate trei unitate necesare - blocul 4, blocul 5 și blocul 8 - sunt colectate într-o singură unitate - blocul 4 (Figura 9.14.), Care specifică valorile inițiale și finale ale parametrului și increment.
Fig. 9.31. Reprezentarea vizuală a funcției algoritm intabulare într-o buclă „pentru“ de tip, sau un parametru ciclu
Figura 9.14 unitatea 4 pentru claritate, este prezentată în formă de „desfăcută“. Este comun pentru imaginea compactă a blocului sub forma unui caracter „Pregătiri“ (fig. 9.15). Este o idee vom folosi în viitor. Dacă dx este absent, atunci umolchaniyudx = 1.
Fig. 9.32. Prezentarea ciclului cu simbolul opțiunea „Pregătirea“
Iată câteva întrebări de testare cu soluții.
Sarcina de testare 9.9.
Precizați ce fel de rezultate vor fi afișate pe ecran dacă următorul fragment al algoritmului (Figura 9.16.):
Fig. 9.33. Figura 9.9 la sarcina
Block 2. Se calculează valoarea variabila y = x + 2 = 2 5 2 + 2 = 27.
Bloc 3. În ecranul monitorului afișează valorile variabilelor x = 5 și Y = 27.
Bloc 4. Variabila x i se atribuie o nouă valoare: x = x + 2 = 5 + 2 = 7.
Bloc 5. Controale condiții x ≤ 10; înlocuind nou znacheniex = 7, 7 obține ≤ 10; condiție este îndeplinită, prin urmare, după ce se realizează blocul 5 blocul 2.
2. Se calculează unitatea cu o nouă valoare a valorii variabilei x = 7, y = x + 2 = 2 7 2 + 2 = 51.
Block 3. Ecranul afișează valorile variabilelor x = 7 și y = 51.
Bloc 4. Variabila x i se atribuie o nouă valoare: x = x + 2 = 7 + 2 = 9.
Bloc 5. Controale condiții x ≤ 10; înlocuind noi znacheniex = 9, 9 get ≤ 10; condiție este îndeplinită, prin urmare, după ce se realizează blocul 5 blocul 2.
2. Se calculează unitatea cu o nouă valoare a valorii variabilei x = 9, y = x + 2 = 2 9 2 + 2 = 83.
Block 3. Ecranul afișează valorile variabilelor x = 9 și Y = 83.
Bloc 4. Variabila x i se atribuie o nouă valoare: x = x + 2 = 9 + 2 = 11.
Bloc 5. Controale condiții x ≤ 10; înlocuind nou znacheniex = 11, obținem 11 ≤ 10; condiție nu este îndeplinită, prin urmare, după ce unitatea 5 iese algoritmul acestui fragment.
Astfel, fragmentul activ al algoritmului descrie sarcina tabelare (tabelul primire) Funcția y = f (x) = x 2 2. Valoarea calculată a acestei funcții la parametrul ciclului x schimbarea de la shagomDx constantă = 2 într-un interval predeterminat de argumentaxn valoarea inițială = 5 până la o znacheniyaxk finală = 10. Afișează] (xk -xn) / Dx [+ 1 = 3 perechi de valori cu argumentax prin intermediul unității de ieșire, situată în interiorul corpului buclei. Rezultatul acestei round robin este următoarea listă de valori (argumentax și funktsiiy):
Deoarece algoritmul se realizează mai întâi o acțiune, și apoi verificați închiderea procesului ciclic este, prin urmare, în acest tip de structură de bază de control algoritm implementat „ciclu cu postconditie“ de tip „DO.“
Blocurile 2 ÷ 5 sunt corpul buclei. Variabila x - setarea ciclului. Numărul de iterații - 3.
Același algoritm poate fi implementat ca o „condiție prealabilă ciclu“ (fig. 9.13) și „parametrul ciclului“ (fig. 9.14).
Precizați ce fel de rezultate vor fi afișate pe ecran dacă următorul fragment al algoritmului (Figura 9.17.):
Fig. 9.34. Reprezentarea vizuală a valorii algoritmului de acumulare
Blocul 2 reprezintă un simbol „preparat“. ciclu antet (Figura 9.14, blocul 4 și ris.9.15.), ceea ce indică faptul inițiala (IN = 1), final tsiklai valoarea parametrului (Ik = 4) și pitch schimbare (ish = 1) - scopul său. Prin urmare, în această etapă ia parametrul inițial ciclu valuei = 1.
Bloc 3. yprinimaet Variabila znacheniey nou = y + i = 0 + 1 = 1. După ce unitatea 3 Unitatea 2 este realizată.
Block 2.Potrivit unitate de destinație 2, care este un ciclu antet (Fig. 9.15) pentru ciclul variabil următoarea etapă iprinimaet nouă valoare incrementată cu shagi = i + 1 = 1 + 1 = 2, atunci starea final este verificată printr-un proces ciclic tsiklaii comparând setarea curentă a valorii sale finale ≤ 4 -I? În această etapă se realizează condiția 2 ≤ 4, prin urmare, blocul 3 se repetă pentru noul znacheniyai.
Bloc 3. yprinimaet Variabila znacheniey nou = y + i = 1 + 2 = 3. După ce unitatea 3 Unitatea 2 este realizată.
Bloc 2. Variabila buclă ia o nouă valoare a crescut cu shagi = i + 1 = 2 + 1 = 3, atunci condiția de terminare se verifică prin compararea procesului ciclic al tsiklai setarea curentă și valoarea finală ≤ 4 -I? În această etapă a condiție se realizează 3 ≤ 4, prin urmare, blocul 3 se repetă pentru noul znacheniyai.
Bloc 3. yprinimaet Variabila znacheniey nou = y + i = 3 + 3 = 6. După ce unitatea 3 este realizată din nou blocată 2.
Bloc 2. Variabila buclă ia o nouă valoare a crescut cu shagi = i + 1 = 3 + 1 = 4, atunci starea este testată de închidere proces ciclic prin compararea setarea curentă tsiklaii valoarea sa finală ≤ 4 -I? În această etapă a condiție se realizează 4 ≤ 4, prin urmare, blocul 3 se repetă pentru noul znacheniyai.
Bloc 3. yprinimaet Variabila znacheniey nou = y + i = 6 + 4 = 10. După ce unitatea 3 este realizată din nou blocată 2.
Bloc 2. Variabila buclă ia o nouă valoare a crescut cu pasul i = i + 1 = 4 + 1 = 5, apoi din nou verificată printr-o stare ciclică de închidere proces prin compararea valorii curente a parametrului ciclului i și valoarea sa finală - i ≤ 4? În această etapă a condiției 5 nu este îndeplinită, prin urmare, are loc ≤ 4 care se încheie proces ciclic. După blocul 2, în acest caz, unitatea de control 4.
Blocați 4. În ecranul de ieșire y = 10.
Numărul de iterații - 4.
Este ușor de observat că acest fragment este descris cantitatea de acumulare algoritm, algoritmul y = 1 + 0 + 2 + 3 + 4.
Atribuirea de valori inițiale ale variabilei y. care se acumulează suma se efectuează înainte de bucla. Divizarea rezultatul, așa cum numai el efectuate după încheierea ciclului.
Specificați ce valoare va fi aibposle variabilă efectua următorul fragment algoritm (Figura 9.18):
Fig. 9.35. Detaliu algoritm de atribuire schemă de la 9.11
Efectuați algoritm secvențial.
Block 2. a = 4? 1 = 4? Există, prin urmare, executa unitatea 3.
3. Bloc a = a + 1 = 1 + 1 = 2, b = b + a = 1 + 2 = 3. După ce unitatea 3 în conformitate cu schema algoritmului se execută întotdeauna unitatea de 2.
Block 2. a = 4. 2 = 4? Există, prin urmare, executa unitatea 3.
3. Bloc a = a + 1 = 2 + 1 = 3, b = b + a = 3 + 3 = 6. După ce unitatea 3 este întotdeauna unitate îndeplinită 2.
Block 2. a = 4? 3 = 4? Există, prin urmare, executa unitatea 3.
Blocul 2 a = 4? 4 = 4? Da, prin urmare, bucla se iese.
Variabila b după încheierea procesului ciclic este de 10, iar variabila luată ca valoare de 4. Acest algoritm este un „ciclu cu precondiție“. Numărul de repetiții ale corpului ciclului este 3.