Elementele de bază ale limbajului C/C++

De la pseudocod la program: II.1 c și secvențele de la II.3

Scheletul unui program C/C++, citirea și scrierea, structurile de control și traducerea linie cu linie a pseudocodului. Cele 10 puncte de la II.1 c, pe două lucrări oficiale, și secvențele scurte de la științele naturii.

  • 26 min
  • La BAC: Subiectul al II-lea, 1 c (10p) · Subiectul al II-lea, 3 (6p, științele naturii)
  • De revizuit
Ilustrație: De la pseudocod la program: II.1 c și secvențele de la II.3
Ilustrație generată pentru ZECE (artistică, nu o planșă științifică: pentru detalii exacte vezi schemele din lecție).

ții minte doar fișa asta și ești acoperit

Fișa de aur

  1. 01

    Scheletul: #include, using namespace std, int main, acolade, return 0. Îl scrii din reflex.

  2. 02

    II.1 c = 10 p: declarare 1, citire 1, afișare 1, decizie 2, repetitive 3, atribuiri 1, corectitudine globală 1.

  3. 03

    Traducere: ← devine =, = devine ==, ≠ devine !=, [a/b] devine a/b la întregi, % rămâne %.

    Truc: Două semne egal când întrebi, unul când pui.

  4. 04

    repetă...până când C devine do ... while(!(C)) sau cu condiția negată.

  5. 05

    Mai multe instrucțiuni pe o ramură cer acolade: if(y>x) { s=s+y; x=y; }.

  6. 06

    Declară fiecare variabilă din pseudocod și păstrează-i numele.

1 din 8

Pe scurt

1 minesențialul, de recitit oricând

Culorile din lecție:termencifră, datăidee-cheie

  • Un program are o formă fixă: biblioteci, main, declarări, citire, prelucrare, afișare.
  • Fiecare construcție din pseudocod are un echivalent exact în C/C++.
  • La II.1 c se dau 10 puncte pentru traducere, iar piesele se punctează separat.
  • La științele naturii, II.3 cere o secvență scurtă cu if și afișare.

Scheletul

4 min

Un program scris pe foaie are mereu aceleași linii de început și de sfârșit, așa cum o scrisoare are antet și semnătură. Le înveți o dată.

#include <iostream>
using namespace std;

int main()
{ int n;
  cin>>n;
  cout<<n*n;
  return 0;
}

Ordinea din orice program

  1. Declari

    variabilele

  2. Citești

    datele de intrare

  3. Prelucrezi

    structuri de control

  4. Afișezi

    rezultatul

#include <iostream> aduce cin și cout. int main() e locul de unde începe executarea. Acoladele grupează instrucțiunile: aceasta e instrucțiunea compusă din programă. Fiecare instrucțiune se termină cu ;.

Lucrările scriu afișarea în ambele forme, de exemplu cout<<d; | printf("%d",d);. Alegi una dintre ele și o folosești peste tot.

cin>>x;
C
scanf("%d",&x);
Ce face
citește un întreg
cout<<x;
C
printf("%d",x);
Ce face
afișează un întreg
cout<<x<<" "<<y;
C
printf("%d %d",x,y);
Ce face
două valori, cu spațiu între ele
cout<<endl;
C
printf("\n");
Ce face
trece la un rând nou
#include <iostream>
C
#include <stdio.h>
Ce face
biblioteca
1 / 5

Dicționarul pseudocod spre C/C++

3 min o întrebare la final

PseudocodC/C++

x←e
x=e;
x=y (în condiție)
x==y
x≠y, x≤y, x≥y
x!=y, x<=y, x>=y
și, sau, not
&&, ||, !
a%b
a%b
[a/b] cu naturale
a/b, cu a și b întregi
citește x,y
cin>>x>>y;
scrie x
cout<<x;
dacă C atunci A altfel B
if(C) A else B
cât timp C execută
while(C)
repetă ... până când C
do { ... } while(!(C));
pentru i←a,b execută
for(i=a;i<=b;i++)

Unde o ramură sau o buclă are mai multe instrucțiuni, pui acolade. Dacă are una singură, acoladele sunt opționale.

Cum se traduce pentru i←1,n execută?

Oficial: iunie 2026, varianta 3, II.1 c

5 min o întrebare la final

Algoritmul este cel din lecția despre urmărire, cu repetă...până când p>n. Traducere, linie cu linie:

#include <iostream>
using namespace std;

int main()
{ int n,y,s=0,x=0,p=1;
  cin>>n;
  do
  { cin>>y;
    if(y>x)
    { s=s+y;
      x=y;
    }
    else
      if(x==y) s=s-y;
    p=p+1;
  } while(p<=n);
  cout<<s;
  return 0;
}

până când p>n a devenit while(p<=n), condiția contrară. Pentru datele 8, 3, 1, 5, 2, 4, 5, 5, 7 programul afișează 5.

variabile declarate
Unde se vede
int n,y,s=0,x=0,p=1;
date citite
Unde se vede
cin>>n; și cin>>y;
date afișate
Unde se vede
cout<<s;
instrucțiune repetitivă
Unde se vede
do ... while(p<=n);
instrucțiuni de decizie
Unde se vede
cele două if; numai 2 p dacă doar una e corectă
atribuiri
Unde se vede
s=s+y; x=y; ...
corectitudine globală
Unde se vede
structură, sintaxă
1 / 7

Cum se traduce până când x=0?

Oficial: model 2027, II.1 c

3 min

Aici sunt două bucle cât timp imbricate:

#include <iostream>
using namespace std;

int main()
{ int x,y,n=1,ok;
  cin>>x>>y;
  while(x>0)
  { ok=1;
    while(ok==1)
      if(x%2==0)
      { y=y*y;
        x=x/2;
      }
      else
      { x=x-1;
        ok=0;
      }
    n=n*y;
  }
  cout<<n;
  return 0;
}

Pentru 11 și 2 programul afișează 2048.

Oficial: barem model 2027, II.1 c (10 p)

declarare a tuturor variabilelor — 1p; citire — 1p; afișare — 1p

instrucțiune de decizie, cu expresie condițională și cuvinte cheie — 2p

instrucțiuni repetitive, cu expresii condiționale inițiale de repetare și cuvinte cheie — 3p (numai 2p dacă doar una este conform cerinței)

atribuiri — 1p; corectitudine globală — 1p

Observă [x/2] tradus simplu x/2, pentru că x e declarat int.

Secvențele de la II.3, la științele naturii

8 min o întrebare la final

La SN, II.3 cere o bucată scurtă de cod. Nu scrii main: scrii ce cere enunțul.

Sesiunea specială 2026, var. 4, SN II.3. Pentru o stea există magnitudine (real) și distanta (natural). Declari magnitudine și afișezi aproape sub 100, departe de la 1000 în sus, medie altfel.

float magnitudine;
if(distanta<100) cout<<"aproape";
else if(distanta>=1000) cout<<"departe";
else cout<<"medie";

Barem: declarare 1 p; afișare 4 p (mesaje 2 p, corelare cazuri-mesaje 2 p); corectitudine globală 1 p.

Iunie 2025, var. 1, SN II.3. Litera din c e L, V sau N (fără cremă), iar p e prețul. Se afișează pe primul rând crema DA sau crema NU, pe al doilea pret și prețul.

char c;
cout<<"crema ";
if(c=='N') cout<<"NU";
else cout<<"DA";
cout<<endl<<"pret "<<p;

Literele se scriu între apostrofuri ('N'), textele între ghilimele ("crema "). Pe foaie, char c; e declararea cerută; valoarea ei vine din enunț.

Barem: declarare 1 p; afișare în formatul cerut 4 p (câte 1 p: constante char, corespondență cuvinte-valori, spații, linii separate); corectitudine globală 1 p.

Iunie 2026, var. 3, SN II.3. Variabilele p și r sunt primul termen și rația unei progresii aritmetice. Se atribuie lui t al treilea termen:

t=p+2*r;

Barem: valoare determinată 4 p (numai 2 p dacă e un termen al progresiei, dar nu cel indicat); atribuire 1 p; corectitudine globală 1 p.

Câte puncte aduce declararea variabilelor la II.1 c?

Ce se cere la BAC

1 mincum apare la examen

  • II.1 c, în fiecare lucrare, la ambele specializări: programul corespunzător algoritmului, 10 p.
  • II.3 la SN: o secvență cu if și mesaje, sau o atribuire, cu declararea unei variabile.
  • Aceleași instrucțiuni stau la baza programelor de la Subiectul al III-lea.

Greșeli care costă puncte

2 mincapcanele de evitat

  • Lipsesc acoladele la o ramură cu două instrucțiuni.
  • until copiat în while: condiția de la până când nu s-a negat.
  • Variabile nedeclarate sau neinițializate, de exemplu s fără s=0.
  • ; după while(...) la un while cu corp: while(x>0); nu se mai termină dacă x e pozitiv.
  • Citește în altă ordine decât algoritmul.
  • Program în loc de secvență la II.3: ai pierdut timp, nu ai câștigat puncte.

Termeni-cheie

Directivă #include
Aduce în program o bibliotecă: iostream pentru cin și cout, cmath pentru funcții matematice.
Funcția main
Locul de unde începe executarea programului.
Instrucțiunea compusă
Mai multe instrucțiuni grupate între acolade, tratate ca una singură.
if ... else
Structura alternativă. Corespunde lui dacă...atunci...altfel.
while
Structură repetitivă cu test inițial. Corespunde lui cât timp...execută.
do ... while
Structură repetitivă cu test final, cu condiție de continuare. Corespunde lui repetă...până când, cu condiția negată.
for
Structură repetitivă cu contor. Corespunde lui pentru i←a,b execută.

Notițele mele

Salvat local

Surse