M2 L2 Info De ce folosim structuri repetitive

Toate structurile repetitive se pot, în teorie, transforma în structura repetitivă cu test inițial. Când trecem de la algoritm la limbajul de programare C++ structura repetitivă cu test inițial se transformă în instrucțiunea while.

Vom realiza un program care citește de la tastatură trei numere întregi a,b,c și afișează pe ecran suma lor.

#include <iostream>

using namespace std;

int main()
{
    int a,b,c,sum=0;
    cin >> a >> b >> c;
    sum = a + b + c;
    cout << "Suma este " << sum << endl;
    return 0;
}

Explicație linie cu linie:

  1. #include <iostream>
    Include biblioteca standard de intrare/ieșire, care este necesară pentru utilizarea funcțiilor cin și cout.
  2. using namespace std;
    Acesta specifică utilizarea spațiului de nume std, astfel încât să nu fie nevoie să prefixăm funcții precum cin și cout cu std::.
  3. int main()
    Declară funcția principală a programului, care este punctul de pornire.
  4. int a, b, c, sum = 0;
    Se declară patru variabile de tip int:
    • a, b, și c: pentru a stoca cele trei numere introduse de utilizator.
    • sum: pentru a stoca suma lor, inițializată cu valoarea 0.
  5. cin >> a >> b >> c;
    Utilizatorul introduce trei numere, care sunt citite și stocate în variabilele a, b și c.
  6. sum = a + b + c;
    Se calculează suma celor trei numere și se stochează în variabila sum.
  7. cout << "Suma este " << sum << endl;

Programul afișează pe ecran șirul de caractere „Suma este” urmat de conținutul variabilei sum.

  • return 0;
    Marchează sfârșitul funcției main și returnează valoarea 0, ceea ce indică faptul că programul s-a încheiat cu succes.

Dar dacă avem nevoie să citim de la tastatură foarte multe numere întregi ce facem? Cum modificăm programul de mai sus astfel încât să citească oricât de multe numere de la tastatură făcând suma lor?

Programul se va modifica folosind structura repetitivă cu test inițial în algoritm. Acest algoritm tradus în limbaj de programare va folosi în mod eficient o singură variabilă de tip int numită a și instrucțiunea while.

#include <iostream>

using namespace std;

int main()
{
    int a,sum;
    cin >> a;
    while(a!=0){
        sum += a;
        cin >> a;
    }
    cout << "Suma " << sum << endl;
    return 0;
}

Acest program C++ calculează suma numerelor întregi introduse de utilizator până când se introduce numărul 0. Iată o explicație detaliată a fiecărei părți:

1. Biblioteca inclusă

#include <iostream>

Se include biblioteca standard iostream pentru a putea folosi funcțiile de intrare/ieșire (cin și cout).

2. Spațiul de nume

using namespace std;

Permite utilizarea directă a funcțiilor din spațiul de nume std, cum ar fi cin și cout, fără a mai fi necesar să scriem std::.

3. Funcția principală

int main()
{
    int a, sum = 0;

Variabila a este folosită pentru a stoca numărul introdus de utilizator.Variabila sum este inițializată cu 0 și este utilizată pentru a calcula suma numerelor.

4. Citirea primului număr

cin >> a;

Utilizatorul introduce un număr întreg care este stocat în variabila a.

5. Bucle while pentru calculul sumei

while(a != 0){
    sum += a;
    cin >> a;
}
  • Buclele while continuă să ruleze atâta timp cât a nu este egal cu 0.
  • În interiorul buclei:
    • Se adaugă valoarea lui a la sum (sum += a).
    • Se cere utilizatorului un alt număr (cin >> a). Valoarea citită de la tastatură în aceeași variabilă a suprascrie valoarea deja existentă acolo.

Buclele se termină când utilizatorul introduce 0.

6. Afișarea rezultatului

cout << "Suma este " << sum << endl;
  • Se afișează suma tuturor numerelor introduse de utilizator, exceptând 0.

7. Terminarea programului

return 0;

Programul se încheie, returnând 0 către sistemul de operare (indică executarea cu succes).

Exemplu de rulare:

Intrare utilizator:

5
3
-2
0

Execuție program:

  • sum = 0 inițial.
  • Se citește 5, sum = sum + 5 = 5.
  • Se citește 3, sum = sum + 3 = 8.
  • Se citește -2, sum = sum + (-2) = 6.
  • Se citește 0, iar bucla se oprește.

Ieșire:

Suma este 6

Ce face programul:

  • Primește ca intrare o serie de numere întregi.
  • Calculează suma lor.
  • Se oprește când întâlnește 0 ca intrare. Numărul 0 nu este inclus în sumă.

În video de mai jos se omite inițializarea variabilei sum cu valoarea zero. De ce funcționează programul cu acestă valoare omisă? Încă nu se știe.