Ciclul - o repetare a unei anumite secvențe de acțiuni.
Structura algoritmică a „ciclului“ este format din declarații executate în mod repetat. Această secvență de instrucțiuni formează un corp buclă.
Structura algoritmică Ciclic sunt de două tipuri:
1) cicluri cu parametrul în care corpul este executat un anumit număr (pre-cunoscute) de ori;
2) cicluri cu condiția în care corpul este executat până când condiția este adevărată sau falsă.
Parametrul ciclu este utilizat atunci când se cunoaște dinainte cât de multe repetiții ale corpului buclei trebuie să efectueze (Figura 6).
Figura 6 - Seria cu opțiune de
La începutul ciclului de valoarea variabilei i este setat în.
La fiecare variabilă ciclu de trecere i este incrementat cu mărimea pasului.
Când se ajunge la o valoare mai mare decât Ik, ciclul este terminat, iar următoarele afirmații sunt executate pentru ei.
În Pascal ciclu cu un număr predeterminat de repetiții se realizează prin intermediul operatorului FOR.
Vedere generală a declarației FOR
FOR i: = din TO Ik do <тело цикла>;
FOR i: = din TO Ik do
începe <тело цикла> se încheie;
în care FOR (pentru), TO (înainte), nu (executa) - cuvinte auxiliare, i - ciclul variabil manipulate (parametru ciclu), care trebuie enumerate tip (întreg, caracter, etc.)
In cele mai multe cazuri, parametrul ciclu este utilizat ca o variabilă de tip întreg, pas este +1 (sau - 1).
Parametrii ciclului nu poate fi tipul de reală;
In, Ik - expresie al cărui tip corespunde cu tipul de variabila de control i,
In - valoarea inițială a variabilei bucla,
Ik - valoarea finală a ciclului variabil manipulat
iteratie - declarație simplu sau compus Turbo Pascal.
De lucru pentru declarația
1. Parametrul ciclu se atribuie o valoare inițială;
2. Valoarea inițială este comparată cu valoarea finală, iar în cazul în care nu este mai mare decât valoarea finală, corpul buclei este executat;
3. Setarea ciclului își modifică valoarea - a crescut cu pas (unul dacă parametrul ciclu are un tip);
4. Fracțiune Cyclic se efectuează în mod repetat pentru fiecare valoare a parametrului ciclului de la valoarea sa inițială la o valoare finală în Ik inclusiv;
5. Când parametrul ciclului depășește valoarea finală, operatorul FOR reziliază și trece controlul la următoarea declarație.
Ciclul I Parametrul nu trebuie redefinit în partea ciclică.
Dacă o schimbare pas în parametrul buclă este +1, și în> Ik, partea ciclică să fie niciodată executat.
Exemplul 3. Să fie un fragment de cod cu o variabilă întreg:
PENTRU I: = 1 până la 5 do
Partea ciclică a programului se efectuează în mod repetat de cinci ori, iar parametrul ciclul I își modifică valoarea de la 1 la 5. Ca urmare a variabilelor de program sunt următoarele valori:
La programarea ciclului de o altă formă a operatorului poate fi utilizat, în care reducerea variabilei manipulate:
FOR i: = În downto Ik do
FOR i: = În downto Ik do
Exemplul 4. Să fie un fragment de cod cu o variabilă întreg:
PENTRU I: = 1 do 5 downto
În timpul execuției acestui program variabile de fragmente au următoarele valori:
Exemplul 5. Imprimați toate literele alfabetului latin, în ordine inversă. soluții algoritm în formă de diagramă bloc este prezentată în figura 7.
Figura 7 - Un algoritm pentru rezolvarea problemei
Programul în Pascal, după cum urmează:
FOR i: = 'Z' downto 'A' do
1 Având în vedere un număr întreg pozitiv N. Calculate:
2 Având în vedere un număr întreg pozitiv N. Calculate:
3 Având în vedere un întreg pozitiv N. Se calculează produsul primelor multiplicatorilor N
4 Date fiind un număr întreg pozitiv N. Calculate:
5 este dat un număr întreg pozitiv n. Calculați:
6 este dat un număr natural n. Calculate: unde n> 2.
7 este dat un număr întreg pozitiv n. Calculați: (n> 1).
8 este dat un număr întreg pozitiv n. Calculați:
10 este dat un număr întreg pozitiv n. Calculați:
In cicluri Pascal, cu un număr necunoscut de repetiții în avans (cicluri iterative) aranjate prin timp operatori și se repetă.
Aceste declarații, în contrast cu declarația FOR, au o gamă mai largă de aplicații.
Cicluri cu o condiție prealabilă
Ciclul cu condiție prealabilă realizată de către operatoraWhile Pascal. În timp ce declarația titlu (tradus ca „lung“) nu conține nicio referire explicită la numărul de iterații - conține o expresie logică. a cărei valoare este calculată automat înainte de executarea fiecărei iterații (Figura 8). Atâta timp cât expresia logică „adevărat“ iterare buclă va continua; o dată după finalizarea următoarea iterație a expresiei logice ar fi „fals“, următoarea iterație a buclei nu va fi executat, iar gestionarea programului va primi o declarație emisă după while.
Evident, în cazul în care antetul bucla pune expresie identic fals logic, acest ciclu nu îndeplinește niciunul dintre iterații sale, iar în cazul în care această expresie este identic adevărat, bucla va fi infinită (această din urmă situație se numește program de looping). Pentru a evita situații similare în numărul de operanzi ale unei expresii logice trebuie să fie incluse una sau mai multe variabile care isi schimba valorile lor în bucla, astfel încât ciclul a fost să se încheie.
Figura 8 - Ciclu cu condiție prealabilă
Pascal lucreaza cu operatorul, în timp ce următoarea structură:
în cazul în care în timp ce (încă), nu (executa) - cuvinte funcționale, x - o expresie logică care specifică o condiție pentru a continua activitatea;
<тело цикла> - Operatorii Turbo Pascal;
Corpul buclei este executat atât timp cât expresia x logică este adevărată, altfel se iese din bucla.
Operatorul ciclu variabil trebuie definit înainte de intrarea în partea ciclică. Ar trebui să existe o cale de ieșire a ciclului. Dacă acest lucru nu este furnizat, de exemplu, expresia x logică - este întotdeauna adevărul, calculele ciclice vor fi executate la nesfârșit. În acest caz, se spune că a existat o „buclă“ a programului.
WHILE Locuri de munca operatorului
1 verifică valoarea x expresie logică.
2 Atât timp cât valoarea lui x este adevărată, partea ciclică.
3 În cazul în care valoarea de start a lui x este fals, atunci operatorii de inelul nu este executată nici măcar o dată.
Exemplul 6. Găsiți cât de mulți termeni este necesar ca suma 2 + 4 + 6 + ... a fost mai mult decât un număr întreg pozitiv N.
Vom introduce următoarea notație:
S - valoarea curentă a sumei;
Sl - valoarea termenului următor;
K - numărul de termeni din suma.
soluții algoritm în formă de diagramă bloc este prezentată în figura 9. Programul este discutat mai jos.
Var N, K, S, Sl: integer;
Write ( 'Introduceți numărul pozitiv');
Figura 9 - Exemplul 6 Un algoritm pentru rezolvarea problemei
Exemplul 7. Având în vedere numărul x. e. Calculați = sinx x la termen e.
Pentru a asigura acuratețea necesară e. aveți nevoie pentru a calcula suma unei serii alternante include numai acei termeni ONU. care satisfac condiția.
Pentru a calcula următorul număr de membru Un este util să se utilizeze formula recurență U1 = x;
soluții algoritm în formă de diagramă bloc este prezentată în figura 10.
Programul în Pascal:
Scrieți ( 'Enter valoare x');
Write ( 'introduceți precizie');
In timp ce abs (U)> = e do
Writeln ( 'sin (x) =' S: 8: 4);
Figura 10 - Un algoritm pentru rezolvarea problemei din exemplul 7
Cicluri cu postconditie
starea de ieșire a buclei poate fi plasată după corpul buclei. Un astfel de ciclu se numește ciclu cu postconditie (Figura 11).
Bucla este executată atâta timp cât expresia logică se evaluează la fals. Odată ce expresia booleană este evaluată la true, bucla se termină.
cu bucla postconditie se execută cel puțin o dată.
Figura 11 - ciclul cu postconditie
Ciclul cu postconditie Pascal implementat folosind operatorii Se repetă ... până când, care are forma:
repetare (repetare) și până la (până în prezent) - cuvinte funcționale,
<тело цикла> - orice operatori Turbo Pascal,
x - o expresie logică care specifică starea de terminare.
Locuri de munca operator de repetare ... până
1 executa corpul buclei
2 verifică expresia logică.
Dacă valoarea este adevărată, atunci operatorul se repetă oprește de lucru și trece de control să-l urmeze operatorului.
Altfel, dacă expresia logică este falsă, corpul buclei este executat.
Exemplul 7 prin utilizarea operatorului repeta dupa cum urmeaza (Figura 12):
Programul în Pascal:
Scrieți ( 'Enter valoare x');
Write ( 'introduceți precizie');
Writeln ( 'sin (x) =' S: 8: 4);
Figura 12 - Un algoritm pentru rezolvarea problemei din exemplul 7
folosind REPEAT
Distincții operatori ciclu cu un număr necunoscut de repetiții repetate, și în timp ce
1 operator de lucru în timp ce, în cazul în care valoarea unei expresii logice - adevăr, se repetă - atunci când o minciună.
2 Operatorul repeta corpul buclei este executat cel puțin o dată, chiar dacă valoarea expresiei logice este adevărată; în situația în timp ce, în cazul în care valoarea expresiei logice este falsă, corpul buclei este executa deloc.
Astfel, pentru organizarea procesului de calcul ciclic în limbajul Turbo Pascal are trei operatori:
· Pentru - pentru looping un anumit număr de repetări;
· În timp ce, repet - pentru organizarea structurilor ciclice cu un număr necunoscut de repetiții.
Rezolva folosind o buclă cu o condiție prealabilă.
Creare program de calcul al intervalului în funcția F (x) [a; b] la pasul h. Rezultatul prezentat într-un tabel, prima coloană din care - valoarea argumentului, al doilea - valoarea corespunzătoare a funcției. Date de referință sunt prezentate în tabelul 5.
Tabelul 5 - Baseline