M5 L9 Instrucțiunea repetitivă cu test final

Instrucțiunea repetitivă cu test final execută o singură dată instrucțiunile din corpul său înainte de a evalua condiția de continuare a buclei.

Diferența dintre instrucțiunea repetitivă cu test inițial și cea cu test final se observă în imaginea de mai jos:

Evaluarea condiției la sfârșit permite executarea instrucțiunilor ÎNAINTE o singură dată. Acest lucru ne dă posibilitatea de a valida datele de intrare ale unui program.

Vom realiza un program care permite citirea de la tastatură NUMAI a unor numere negative:

Explicația programului linie cu linie:

/*Acest program
citeste de la tastatura numai
numere negative și le afiseaza pe ecran*/
  • Acesta este un comentariu.
  • Comentariile sunt explicații pentru oameni și nu sunt executate de program.
  • Aici ni se spune ce face programul:
    • citește numere de la tastatură;
    • le afișează;
    • continuă cât timp numărul este negativ sau 0.
#include <iostream>
  • Include biblioteca standard pentru operații de intrare și ieșire.
  • Permite folosirea:
    • cin → pentru citire de la tastatură;
    • cout → pentru afișare pe ecran.
using namespace std;
  • Permite folosirea directă a comenzilor cin și cout fără să scriem std::.
  • Fără această linie ar trebui: std::cin
    std::cout
int main()
  • Funcția principală a programului.
  • Execuția începe întotdeauna de aici.
  • int înseamnă că funcția va întoarce un număr întreg.
{
  • Începutul blocului de instrucțiuni al funcției main.
int n;
  • Declară o variabilă întreagă numită n.
  • În această variabilă se va memora numărul introdus de utilizator.
do{
  • Începe o structură repetitivă do...while.
  • Instrucțiunile din interior se execută cel puțin o dată.
cin >> n;
  • Citește un număr de la tastatură și îl pune în variabila n.

Exemplu:

  • dacă utilizatorul scrie -5,
    atunci n devine -5.
cout << n << " ";
  • Afișează valoarea lui n pe ecran.
  • " " reprezintă un spațiu după număr.

Exemplu:

-5

va afișa:

-5
}while(n<=0);
  • Condiția de repetare.
  • Programul continuă să citească și să afișeze numere cât timp: n <= 0 adică:
    • n este negativ;
    • sau n este 0.

Când utilizatorul introduce un număr pozitiv:

  • condiția devine falsă;
  • bucla se oprește.
return 0;
  • Programul se termină corect.
  • 0 înseamnă că execuția s-a încheiat fără erori.
}
  • Sfârșitul funcției main.

Cum funcționează programul — exemplu

Introducere:

-3
0
-7
5

Afișare:

-3 0 -7 5

După 5, programul se oprește deoarece:

5 <= 0

este fals.

Observație importantă

Comentariul spune:

„citește numai numere negative”

Dar programul acceptă și 0, deoarece condiția este:

n <= 0

Dacă ar trebui să accepte doar numere negative, condiția corectă ar fi:

while(n < 0);

Temă:

Să se modifice programul pentru a citi numai numere pozitive adică să se execute până la citirea unui nr negativ.