# data[].attributes.body
Scrieți un program care citește valoarea unui număr natural n și calculează suma primelor n numere naturale.

# data[].attributes.body
Dar ce facem când n ar fi un număr prea mare?

# data[].attributes.body
Structurile repetitive execută o instrucțiune de mai multe ori. Se mai numesc și bucle sau cicluri.

# data[].attributes.headline
Clasificare: în funcție de numărul de pași

# data[].attributes.subject
Clasificare: în funcție de numărul de pași

# data[].attributes.body
cu număr cunoscut de pași. Se cunoaște de la început de câte ori se va execută instrucțiunea

cu număr necunoscut de pași (iterații). Instrucțiunea se execută cât timp o condiție este adevărată. La fiecare pas se va evalua condiția, iar dacă aceasta este adevărată se va executa instrucțiunea.

# data[].attributes.headline
Cele cu număr necunoscut de pași se clasifică în:

# data[].attributes.subject
Cele cu număr necunoscut de pași se clasifică în:

# data[].attributes.body
cu test inițial: mai întâi se evaluează condiția; dacă este adevărată se execută instrucțiunea și procesul se reia.

cu test final: mai întâi se execută instrucțiunea, apoi se evaluează condiția; Dacă este adevărată, procesul se reia.

# data[].attributes.body
Instrucțiunea for este o structură repetitivă cu număr necunoscut de pași și test inițial, echivalentă cu while.

# data[].attributes.body
for (Expresie_de_Initializare ; Expresie_de_Testare ; Expresie_de_Continuare)
    Instructiune

# data[].attributes.body
1. Se evaluează Expresie_de_Initializare

2. Se evaluează Expresie_de_Testare. Rezultatul se convertește la bool.

3. Dacă rezultatul este true:

Se execută Instructiune.

Se evaluează Expresie_de_Continuare.

Se revine la pasul 2.

4. Dacă rezultatul este false, se trece la instrucțiunea de după for.

# data[].attributes.body
1. Declararea variabilei în for:

Variabila este vizibilă și are scop doar în cadrul buclei „for”

Dupa terminarea buclei, variabila iși pierde valoarea și poate fi redeclarată în altă buclă sau parte a programului, cu alt scop.

Exemplu:

for (int i = 0; i < 5; i++) {
     // i este disponibil aici
}
// i nu este disponibil aici

# data[].attributes.body
2. Declararea variabilei în afara for:

Variabila este declarată în afara buclei "for" și este vizibilă în întregul bloc al codului în care a fost declarată.

Dupa terminarea buclei, variabila nu își pierde valoarea și poate fi folosită cu același scop in alte secțiuni ale programului.

Exemplu:

int i; // Declarare în afara buclei
for (i = 0; i < 5; i++) {
    // i este disponibil aici
}
// i este disponibil și aici, după buclă

# data[].attributes.headline
Cum ar arăta rezolvarea problemei inițiale?

# data[].attributes.subject
Cum ar arăta rezolvarea problemei inițiale?

# data[].attributes.body
Scrieți un program care citește valoarea unui număr natural n și calculează suma primelor n numere naturale.

Va trebui să repetâm operația de adunare a numerelor, pentru fiecare valoare de la 1 până la n.

Putem rezolva asta cu FOR?

# data[].attributes.body
#include <iostream>
using namespace std;
int main ()
{
    int n;
    cin >> n;
    int S = 0;
    for(int i = 1; i <= n ; i ++)
        S = S + i;
    cout << S << endl;
    return 0;
}

# data[].attributes.body
Completează spațiile punctate astfel încât să se afișeze "Da" de 5 ori pe rânduri separate:

 ... (int i = 0; i < 5; ... ) {
  cout << ...  << "\n";
}

# data[].attributes.headline
Putem opri totuși o instrucțiune FOR înainte de a ajunge la condiția sa de final?

# data[].attributes.subject
Putem opri totuși o instrucțiune FOR înainte de a ajunge la condiția sa de final?

# data[].attributes.body
Exemplu:

Să se calculeze suma primelor 10 numere care au ultima cifră divizibilă cu 6.

# data[].attributes.body
un FOR de la 1 la o valoare mare, prin care adăugăm numerele la sumă.

când ne oprim?

atunci când am ajuns la 10 numere cu proprietatea cerută

practic condiția de oprire nu poate fi direct dată de FOR

# data[].attributes.body
Efectul instrucțiunii break când apare într-o instrucțiune repetitivă este întreruperea execuției acesteia și trecerea la instrucțiunea care urmează celei repetitive.

# data[].attributes.headline
Cum ar arăta rezolvarea cerinței folosind BREAK?

# data[].attributes.subject
Cum ar arăta rezolvarea cerinței folosind BREAK?

# data[].attributes.body
Să se calculeze suma primelor 10 numere care au ultima cifră divizibilă cu 6.

vom folosi o variabilă care numără aparițiile numerelor cu proprietatea cerută

când variabila ajunge la 10, oprim instrucțiunea

# data[].attributes.body
#include <iostream>
using namespace std;
int main ()
{


    int S = 0, var = 0;
    for(int i = 1;  ; i ++){
        if ( i%10%6 == 0 ){
              S = S + i;
              var++;
        }
        if ( var == 10 )
               break;
   }

cout << S << endl;
    return 0;
}

# data[].attributes.body
Rezolvați 10 probleme la alegere, care să utilizeze noțiunile învățate în acest Padlet.

# data[].attributes.attachment_link.description
Probleme de informatică cu evaluator automat, exerciții și articole. Clase, teme, modalități de comunicare!