Didaxis
lecție · Informatică

Datele unui algoritm

Date de intrare, de ieșire și de manevră.

Se face în:
Clasa a V-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 3 · rezumatul lecției

Pe scurt

Într-o problemă, datele de intrare sunt informațiile primite înainte de a începe. Datele de ieșire sunt răspunsurile pe care trebuie să le obții. Între ele pot exista date folosite numai în timpul rezolvării, numite date de manevră.

Imaginează-ți că vrei să afli câte pagini au împreună două caiete. Numărul de pagini al fiecărui caiet este o dată de intrare. Suma este data de ieșire. Poți nota suma temporar înainte de a o spune: numărul notat este o dată de manevră. Dacă primul caiet are 12 pagini și al doilea 8, calculul este . Răspunsul este 20 de pagini, nu perechea „12 și 8”.

Rolul unei date depinde de problemă. Numărul 12 poate fi intrare într-o problemă, iar într-alta poate fi rezultatul unui calcul. De aceea nu clasificăm un număr după cum arată, ci după ce face algoritmul cu el. Întreabă-te mereu: „Ce știu la început? Ce trebuie să aflu? Ce valori folosesc pe drum?”

Când desenezi pașii, poți marca intrările cu o săgeată spre algoritm și ieșirea cu o săgeată dinspre el. Dacă lipsește o intrare necesară, problema nu este completă. Dacă algoritmul calculează un număr, dar nu îl comunică, utilizatorul nu vede ieșirea. Aceste verificări te ajută să scrii o rezolvare care poate fi urmată și de altcineva.

Exemplu rezolvat — media a trei note. Problema: Ana are notele 8, 9 și 10 și vrea să afle media lor.

  1. Datele de intrare sunt cele trei note: 8, 9 și 10.
  2. Calculezi suma lor: . Suma este o dată de manevră, pentru că ți-a folosit pe drum, dar nu este răspunsul cerut.
  3. Împarți suma la numărul notelor: . Media 9 este data de ieșire.

Dacă lipsea una dintre note, problema nu putea fi rezolvată, pentru că dintr-o intrare lipsă nu poți obține ieșirea. Dacă ai fi calculat suma, dar nu ai fi spus media, răspunsul cerut nu ar fi fost comunicat.

Desen la lecția „Datele unui algoritm”
2în detaliustratul 2 din 3 · pentru clasă și Bacalaureat

În detaliu

Un algoritm primește date de intrare (de la tastatură, dintr-un fișier sau ca valori fixate în enunț), produce date de ieșire (afișate sau salvate) și poate folosi date de manevră, adică variabile intermediare care păstrează stări parțiale. Rolul unei date depinde de algoritm: aceeași variabilă poate fi intrare într-un algoritm și rezultat în altul. Pentru fiecare dată se precizează tipul (întreg sau real) și domeniul de valori admise, pentru că de ele depinde corectitudinea: media a două numere nu poate fi memorată într-un int fără a pierde partea zecimală.

Exemplul 1 — media a două numere. Se citesc a și b. Suma s este dată de manevră, iar media este data de ieșire. Pentru și se obține , apoi media 8; pentru și se obține și media 6,5.

#include <iostream>
using namespace std;
int main() {
    int a, b;
    cin >> a >> b;
    int s = a + b;
    double media = s / 2.0;
    cout << media;
    return 0;
}

Numitorul 2.0 este real, deci împărțirea păstrează partea zecimală: pentru intrarea 5 8 se afișează 6.5. Cu numitorul 2 suma 13 s-ar împărți întreg și rezultatul ar fi 6.

Exemplul 2 — minute în ore și minute. Se citește un număr de minute, . Datele de intrare: . Datele de ieșire: numărul de ore și numărul de minute rămase. Numărul de ore este câtul întreg , iar minutele rămase sunt restul .

#include <iostream>
using namespace std;
int main() {
    int m = 135;
    int h = m / 60;
    int r = m % 60;
    cout << h << ' ' << r;
    return 0;
}

Programul afișează 2 15. Aici h și r sunt valori calculate din intrare și, în același timp, rezultate afișate, iar m rămâne neschimbat.

Tipul și domeniul unei date. Tipul int păstrează numere întregi între și . Dacă datele de intrare sunt și , suma lor este și nu mai încape într-un int; data de manevră sau de ieșire trebuie atunci declarată long long, iar la calcul un operand se convertește: (long long)a + b dă 4000000000. De aceea, când descrii un algoritm, spui pentru fiecare dată nu numai rolul ei, ci și ce valori poate avea.

Exemplul 3 — interschimbarea a două valori. Pentru a schimba între ele variabilele a și b ai nevoie de o dată de manevră aux, altfel prima atribuire pierde o valoare. Cu și : aux = a (aux devine 3), a = b (a devine 5), b = aux (b devine 3). Rezultatul este , . Fără aux, secvența a = b; b = a; ar lăsa ambele variabile egale cu 5.

Exemplul 4 — o variabilă cu două roluri. Programul citește și calculează suma numerelor pare de la 2 până la :

#include <iostream>
using namespace std;
int main() {
    int n, sp = 0;
    cin >> n;
    for (int i = 2; i <= n; i += 2)
        sp += i;
    cout << sp;
    return 0;
}

Variabila n este dată de intrare. Contorul i este dată de manevră: nu se citește și nu se afișează. Variabila sp este întâi dată de manevră, pentru că acumulează suma pe parcurs, iar la sfârșit devine data de ieșire, fiindcă numai ea apare în cout. Pentru , după pașii , și valoarea lui sp este 2, apoi 6, apoi 12. Pentru condiția este falsă, ciclul se oprește și se afișează 12.

3pentru admiterestratul 3 din 3 · pentru examene

Pentru admitere

La urmărirea unui algoritm, întocmește un tabel cu valoarea fiecărei date de manevră după instrucțiunile care o modifică. Nu presupune că numele rezultat garantează ieșirea: numai instrucțiunea de afișare stabilește ce este comunicat. O variabilă auxiliară rămâne după interschimbare cu ultima valoare primită, așa cum arată exemplul de mai jos. Pentru intrarea 5 8 în programul cu media, s = 13, iar ieșirea este 6.5. Un mod rapid de clasificare: o variabilă care primește valoare prin cin este dată de intrare; una care apare în cout este dată de ieșire; una care nu este nici citită, nici afișată, dar apare în calcule, este dată de manevră. Aceeași variabilă poate avea două roluri, de pildă h din exemplul cu minute: este calculată din intrare și afișată.

Exemplu în formatul examenului. Ce se afișează în urma executării secvenței de mai jos?

int a = 3, b = 5, c;
c = a;
a = b;
b = c;
cout << a << ' ' << b << ' ' << c;
  • a) 5 3 5
  • b) 5 3 3
  • c) 3 5 3
  • d) 5 5 3

Răspunsul corect este b). După c = a variabilele sunt , , . După a = b avem , , . După b = c avem , , . Valorile lui și s-au interschimbat, iar a rămas cu valoarea 3. Varianta c) ar fi corectă dacă nu s-ar executa nicio atribuire, iar varianta d) apare dacă se omite ultima atribuire.

Al doilea exemplu în formatul examenului. Ce se afișează în urma executării secvenței de mai jos?

int x = 17, y = 5, z;
z = x / y;
x = x % y;
y = z + x;
cout << x << ' ' << y << ' ' << z;
  • a) 2 5 3
  • b) 3 2 5
  • c) 2 3 5
  • d) 17 5 3

Răspunsul corect este a). Ambii operanzi sunt întregi, deci 17 / 5 este câtul întreg 3, iar z devine 3. Apoi x primește restul . În final y primește , iar valoarea veche a lui y se pierde. Se afișează 2 5 3. Varianta d) ar fi corectă dacă variabilele nu s-ar modifica, iar varianta b) apare când se confundă ordinea afișării.

Greșeli frecvente

  • Greșit: orice variabilă din program este dată de intrare.
    Corect: unele variabile sunt intermediare sau conțin rezultatul.
  • Greșit: un rezultat calculat, dar neafișat, este automat ieșirea observabilă.
    Corect: ieșirea este ceea ce programul comunică prin instrucțiunea de ieșire.
  • Greșit: același număr are mereu același rol.
    Corect: rolul depinde de problema și algoritmul concret.
  • Greșit: variabila media este automat ieșirea deoarece a fost calculată.
    Corect: numai instrucțiunea cout << media; comunică valoarea în exterior.
pentru adulți

Pentru părinți

Copilul exersează identificarea informațiilor necesare.

  1. Propuneți o problemă cu două prețuri și suma lor.
  2. Rugați-l să încercuiască prețurile cunoscute.
  3. Notați separat calculul intermediar și răspunsul.
  4. Schimbați prețurile și repetați pașii.

Întrebați-l: „Ce trebuie să știm înainte să putem afla totalul?”

în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMEN 3393/2017, anexa 2, Informatică și TIC, p. 6; rocnee.eu
  • UNSTPB, Regulament admitere licență 2026, Anexa II-1.2 p. Anx II-14 și Anexa XI-3 p. Anx XI-6–7 (PDF p. 64, 120–121); admitere.pub.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3 și 6; aplicabilitatea 2027: OMEC 5211/2026, art. 3 alin. (10); edu.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3–4; edu.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 5–6; edu.ro

Documente consultate

  • OMEN 3393/2017, anexa 2, Informatică și TIC, clasa a V-a, p. 6; UNSTPB, admitere 2026, anexa XI-3, p. Anx XI-6–7
  • Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
  • Programa școlară de informatică, clasa a IX-a, matematică-informatică (OMEC 6930/2025, anexa 42); rocnee.eu
  • Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației, p. 3 și 6; edu.ro
  • Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro

Desene: Redactare proprie (desen original), conform Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.