secvențe de cod de un număr de ori. Iteratiile împreună cu structurile de decizie formează baza construcției algoritmilor. Structura de programare care implementează iterațiile se numește buclă. Dacă dorim afișarea numerelor de la 1 la 5, putem folosi funcția print de 5 ori, ca în exemplul de mai jos: Dar dacă dorim să afișăm toate numerele de la 1 la 5000? Scriem print de 5000 de ori??? -este posibil, dar nu este practic!
Soluția este folosirea unei variabile, de ex. i pe care o
inițializăm cu 1 și pe care o incrementăm, luând pe rând toate valorile de la 1 la 5000.
De fiecare dată când variabila i este incrementată, este și
afișată.Acești pași de afișare și incrementare se repetă până când i ajunge la valoarea 5000 sau 5 (pentru exemplul de mai sus).
Pentru a permite aceste iterații, PYTHON folosește 2
structuri:WHILE și FOR Instrucțiunile iterative • Instrucțiunile iterative au rolul de a executa repetitiv o instrucțiune sau un set de instrucțiuni, până la îndeplinirea unei condiții de ieșire. • Instrucțiunea iterativă while se utilizează pentru a repeta o instrucțiune sau un bloc de instrucțiuni atâta timp cât condiția este adevarată. WHILE
În exemplul de mai sus, instrucțiunile print(i) și i+=1 se repetă de 5
ori (pentru i=0, i=1, ...i=5) Dacă dorim să afișăm toate numerele de la 1 la 5000, înlocuim 5 cu 5000. Sintaxa lui WHILE este:
• while - este un cuvânt cheie care marchează începutul iteratiei.
• conditie - determină dacă instrucțiunile din block vor fi sau nu executate. În cazul în care conditie este True, instrucțiunile din block (corpul lui while) vor fi executate până când condiția devine False. Atunci când condiția este falsă, instrucțiunile nu vor mai fi executate. După conditie se pune întotdeauna două puncte (:) • block - este format din una sau mai multe instrucțiuni care sunt executate dacă condiția este adevarată. • dacă conditie este falsă de la început, atunci nu se execută nici o instrucțiune și while se termină Sintaxa lui WHILE este: Exemplu: Să se calculeze suma tuturor numerelor pozitive introduse de la tastatură. Introdurecea unui numar negativ va opri structura while. Funcția EVAL() Funcția eval evaluează input-ul produs de funcția input și transformă automat în tipul de date corespunzator: Exemplu: Funcția eval poate fi utilizată pentru a introduce mai multe valori folosind functia input • Variabila nr este inițializată cu 0, astfel încât condiția să fie cel puțin o dată adevarată. Aceasta garantează ca instrucțiunile din structura while (nr=eval(input("Introduceti un numar: ")) și sum+=nr) sunt executate cel puțin o data. • Variabila nr va conține numărul introdus de utilizator. Valoarea acesteia se va schimba de fiecare dată când utilizatorul introduce un nou număr. • Variabila sum se mai numește și acumulator, deoarece acumulează toate numerele pe care utilizatorul le introduce. • Programul nu numară câte valori au fost introduse, doar adună aceste valori în variabila sum. Bucla definită/Bucla nedefinită • În exemplul de mai sus în care ne dorim afișarea tuturor numerelor de la 1 la 5, putem determina incă de la începutul programului numărul de iterații pe care bucla while il va executa (în acest caz, 5 iterații). Aceasta buclă se numeste buclă definită. • În exeplul al doilea, în care se adună numerele pozitive introduse de utilizator, nu putem prezice numărul de iterații de la început. Numărul de iterații depinde de ceea ce va introduce utilizatorul. În acest caz, această buclă se numește buclă nedefinită. Bucla infinită Exemple Rezolvă independent, utilizând WHILE 1. Se introduc succesiv numere nenule până la introducerea numărului 0. Să se afişeze suma tuturor numerelor introduse. Exemplu: Date de intrare 3 5 4 2 0 Date de ieşire 14. 2. Se citesc pe rând temperaturile medii ale fiecărei luni a unui an, ca numere întregi. Să se afişeze cu două zecimale media anuală a temperaturilor pozitive şi a celor negative. Exemplu: Date de intrare -5 -3 1 8 12 17 20 21 18 10 6 -2 Date de ieşire medie_poz=13.66 medie_neg=-3.33. 3. Se citesc numere de la tastatură până la introducerea unui număr impar divizibil cu 3. Să se afişeze suma tuturor numerelor pare introduse. Exemplu: Date de intrare 7 4 6 2 1 9 Date de ieşire 12. 4. Elaborați un program care va calcula suma, produsul și media aritmetică a numerelor de la 1 la n, pentru n introdus de la tastatură.