cin>>x;scanf("%d",&x);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.

ții minte doar fișa asta și ești acoperit
Scheletul: #include, using namespace std, int main, acolade, return 0. Îl scrii din reflex.
II.1 c = 10 p: declarare 1, citire 1, afișare 1, decizie 2, repetitive 3, atribuiri 1, corectitudine globală 1.
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.
repetă...până când C devine do ... while(!(C)) sau cu condiția negată.
Mai multe instrucțiuni pe o ramură cer acolade: if(y>x) { s=s+y; x=y; }.
Declară fiecare variabilă din pseudocod și păstrează-i numele.
Culorile din lecție:termencifră, datăidee-cheie
main, declarări, citire, prelucrare, afișare.if și afișare.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
Declari
variabilele
Citești
datele de intrare
Prelucrezi
structuri de control
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;scanf("%d",&x);cout<<x;printf("%d",x);cout<<x<<" "<<y;printf("%d %d",x,y);cout<<endl;printf("\n");#include <iostream>#include <stdio.h>| C++ | C | Ce face |
|---|---|---|
cin>>x; | scanf("%d",&x); | citește un întreg |
cout<<x; | printf("%d",x); | afișează un întreg |
cout<<x<<" "<<y; | printf("%d %d",x,y); | două valori, cu spațiu între ele |
cout<<endl; | printf("\n"); | trece la un rând nou |
#include <iostream> | #include <stdio.h> | biblioteca |
PseudocodC/C++
x←ex=e;x=y (în condiție)x==yx≠y, x≤y, x≥yx!=y, x<=y, x>=yși, sau, not&&, ||, !a%ba%b[a/b] cu naturalea/b, cu a și b întregicitește x,ycin>>x>>y;scrie xcout<<x;dacă C atunci A altfel Bif(C) A else Bcât timp C executăwhile(C)repetă ... până când Cdo { ... } while(!(C));pentru i←a,b executăfor(i=a;i<=b;i++)| Pseudocod | C/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ă?
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.
int n,y,s=0,x=0,p=1;cin>>n; și cin>>y;cout<<s;do ... while(p<=n);if; numai 2 p dacă doar una e corectăs=s+y; x=y; ...| Barem II.1 c (10 p) | Puncte | Unde se vede |
|---|---|---|
| variabile declarate | 1 | int n,y,s=0,x=0,p=1; |
| date citite | 1 | cin>>n; și cin>>y; |
| date afișate | 1 | cout<<s; |
| instrucțiune repetitivă | 2 | do ... while(p<=n); |
| instrucțiuni de decizie | 3 | cele două if; numai 2 p dacă doar una e corectă |
| atribuiri | 1 | s=s+y; x=y; ... |
| corectitudine globală | 1 | structură, sintaxă |
Cum se traduce până când x=0?
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.
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.
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?
if și mesaje, sau o atribuire, cu declararea unei variabile.until copiat în while: condiția de la până când nu s-a negat.s fără s=0.; după while(...) la un while cu corp: while(x>0); nu se mai termină dacă x e pozitiv.