InfoBook.ro ← Harta anului
Modul 01 · Principiile unui program
Modul 01 · Conținut 2.1

Cum se naște un program

Niciun programator bun nu începe cu tastatura. Începe cu o foaie de hârtie, câteva întrebări și un desen. Astăzi înveți drumul complet: de la problemă → la algoritm → la program care rulează.

🎯 Obiectiv 1Cunoști cele 5 etape ale elaborării unui program și le aplici pe o problemă concretă.
🎯 Obiectiv 2Citești și desenezi scheme logice; treci de la ele la pseudocod și la cod.
🎯 Obiectiv 3Scrii și înțelegi primul tău program C++ — linie cu linie.
1

Cele 5 etape ale unui program

Le urmărim pe o problemă reală: „Calculați media semestrială a unui elev din 3 note." Apasă pe fiecare etapă.

etapa 1🔍 Analiză
etapa 2📐 Proiectare
etapa 3⌨ Implementare
etapa 4🧪 Testare
etapa 5🔧 Depanare
De reținut: etapele nu sunt „o singură trecere". Dacă testarea găsește o problemă, te întorci la implementare — uneori chiar la analiză. Programarea e un ciclu, nu o linie dreaptă.
2

Cum „scriem" un algoritm

Același algoritm poate fi exprimat în mai multe feluri — de la desen la cod-mașină. Fiecare are rostul lui.

🟦 Blocuri grafice

Schema logică: desenul algoritmului. Perfectă la început, pentru că vezi fluxul. Devine greoaie la algoritmi mari.

📜 Pseudocod

Românește + structură: „citește", „dacă…atunci", „scrie". Limbajul subiectelor de BAC — îl exersăm constant.

⚙ Limbaj de nivel înalt

C++ / Python — înțeles de oameni, tradus pentru mașină. Aici se scrie software-ul lumii reale.

Compilator vs. interpretor — cine traduce codul?

Procesorul înțelege doar cod-mașină (biții din Modulul 00!). Diferența dintre C++ și Python e când se face traducerea:

program.cppCOMPILATOR
traduce tot, o singură dată
program.exerulează foarte rapid ⚡
program.pyINTERPRETOR
traduce și execută linie cu linie
rulare imediată, fără fișier .exe 🔁
Consecință practică: la C++ erorile de sintaxă apar înainte de rulare (la compilare); la Python apar în timpul rulării, când interpretorul ajunge la linia greșită. Mai există și limbaje de nivel scăzut (asamblare) — aproape de cod-mașină, rapide, dar greu de citit de oameni.
3

Python vs C++ — două unelte, un singur scop

Un limbaj de programare e un set de reguli sintactice și semantice prin care îi spunem calculatorului, exact și fără ambiguitate, ce să facă.

⚙ C++

Creat de Bjarne Stroustrup ca extensie a limbajului C (Dennis Ritchie & Brian Kernighan). Unul dintre cele mai folosite limbaje din industrie și limba oficială a probei de BAC.

Ai nevoie de un IDE (mediu integrat de dezvoltare) care compilează și rulează codul — cel mai folosit la școală: Code::Blocks.

🐍 Python

Gândit pentru lizibilitate: mai puțină sintaxă „de decor", aceeași putere de calcul. Îl folosim în paralel pentru că exprimă rapid ideea unui algoritm, înainte s-o traducem riguros în C++.

E suficient un editor cu interpretor integrat: Thonny, IDLE sau VS Code.

Scheletul minim — comparat linie cu linie

1#include <iostream> // unelte I/O
2using namespace std; // scurtături
3int main() {
4 // aici scriem algoritmul
5 return 0;
6}
1# Python nu are nevoie de include-uri
2# sau de o funcție main()
3# scriem algoritmul direct:
4print("Salut!")
De ce arată atât de diferit? C++ îți cere să pregătești „scena" (biblioteci, main, return) pentru că e compilat și strict. Python ascunde scena și te lasă direct la replici. Sub capotă, amândouă fac același lucru.
4

Variabile, tipuri de date, citire și afișare

O variabilă e o cutie cu etichetă din memoria calculatorului: eticheta e numele, în cutie stă valoarea, iar tipul decide cât de mare e cutia.

📦 Vizualizare: memoria calculatorului

Apasă pe o declarație și privește cum se rezervă octeții în memorie. Fiecare pătrățel = 1 octet (8 biți — îi știi din Modulul 00!).

memoria e goală — declară o variabilă 👆
Regula tipurilor: int = numere întregi · float/double = numere reale (cu virgulă) · char = un singur caracter · bool = adevărat/fals · long long = întregi uriașe (peste ±2 miliarde). În C++ declari tipul explicit; în Python tipul se deduce automat la atribuire.

Citire, afișare și comentarii — același program, cap la cap

Comentariile (// sau /* */ în C++, # în Python) sunt ignorate de compilator/interpretor — dar pentru colegul care îți citește codul (sau pentru tine, peste o lună) sunt aur curat.
5

Operatorii — verbele limbajului

Cu variabilele „substantive" și operatorii „verbe" poți forma primele propoziții. Apasă pe orice rând ca să vezi un exemplu calculat.

OperațiePseudocod🐍 Python⚙ C++
👆 apasă pe un rând din tabel

⚠ Împărțirea — marea diferență

În C++, 7 / 2 = 3 dacă ambele numere sunt întregi (împărțire întreagă!). În Python, 7 / 2 = 3.5 mereu, iar pentru câtul întreg există 7 // 2 = 3.

C++7 / 2 → 3   7.0 / 2 → 3.5   7 % 2 → 1
Py7 / 2 → 3.5  7 // 2 → 3    7 % 2 → 1

Scurtături utile

Atribuiri compuse: x += 3 înseamnă x = x + 3 (la fel -=, *=, /=). Doar în C++: x++ crește x cu 1, iar operatorul ternar alege dintr-o singură linie:

C++int maxim = (x > y) ? x : y;
Pymaxim = x if x > y else y

🎯 Quiz de operatori — adună 5 puncte

scor: 0 / 0
6

Simulator: schema logică + pseudocod + cod, sincronizate

Algoritmul: maximul dintre două numere. Alege valorile, apoi execută Pas cu pas — schema, codul și variabilele se mișcă împreună.

a = b =
DA NU START citește a, b a > b ? max ← a max ← b scrie max STOP oval = start/stop · paralelogram = citire/scriere romb = decizie · dreptunghi = calcul
Variabile
a
b
max
Ecran (consolă)
 
Apasă „Pas cu pas" ca să pornești execuția. 👣
Ce trebuie să observi: toate cele trei limbaje spun exact același lucru. Schema logică e desenul, pseudocodul e schița în cuvinte, iar în C++/Python am folosit operatorul ternar de la secțiunea 5 — forma condensată a alegerii: (a > b) ? a : b se citește „dacă a > b ia a, altfel ia b". Instrucțiunea if completă vine în Modulul 02.
7

Primul tău program C++, disecat

La BAC scrii C++ — deci îl tratăm cu respect de la prima oră. Click pe fiecare linie ca să afli ce face.

👈 alege o linie

Fiecare linie dintr-un program C++ are un rol precis. Apasă pe oricare din stânga.

Echivalentul Python, ca să vezi contrastul: tot programul de alături se scrie într-o singură linie — print("Salut, clasa a IX-a!"). Python ascunde detaliile; C++ ți le arată. Amândouă au de câștigat de la tine.
8

Testare și depanare

Un program netestat e un program greșit care încă n-a fost prins. Înveți să gândești ca un „vânător de erori".

Cum alegi testele — problema mediei a două note

Tip de testExemplu de dateCe verifică
Valori obișnuite7 și 9 → media 8Funcționează cazul normal?
Valori de limită1 și 1 · 10 și 10Merge la marginile intervalului?
Rezultat neîntreg7 și 8 → media 7.5Se pierde partea zecimală?
Date invalidenota 11 sau -3Programul validează intrarea?
Depanarea = urmărirea valorilor variabilelor pas cu pas, exact ca în simulatorul de mai sus. Când programul greșește, nu ghici — urmărește variabilele și găsești linia vinovată.

🐞 Vânătoarea de bug-uri: găsește linia greșită

Programul ar trebui să afișeze media lui 7 și 8 (adică 7.5), dar afișează 7. Click pe linia vinovată.

9

Cum „vorbește" programul cu tine

Trei căi prin care un program primește și trimite date — le folosim pe toate în acest an.

⌨ Consola

Text simplu: cin/cout, input/print. Aici lucrăm cel mai des — și tot aici se dă BAC-ul.

🪟 Interfața grafică

Ferestre, butoane, casete text — le construim în Modulul 12 cu Tkinter.

📄 Fișiere

Programul citește și scrie date pe disc, fără om la tastatură — Modulul 10.

10

Fișa de sinteză

Opt idei de păstrat. Restul se construiește pe ele.

5 etape: analiză → proiectare → implementare → testare → depanare. Ciclu, nu linie.
Algoritmul e ideea; schema logică, pseudocodul și codul sunt doar haine diferite.
Simboluri: oval = start/stop, paralelogram = citire/scriere, romb = decizie, dreptunghi = calcul.
C++ e compilat (traducere completă, apoi rulare rapidă); Python e interpretat (linie cu linie).
Orice program C++ are #include, int main() și return 0;.
Testele bune acoperă: cazul normal, limitele, rezultatele „ciudate" și datele invalide.
Tipuri de date: int (întregi), float/double (reale), char (un caracter), bool (adevărat/fals) — tipul decide cât ocupă cutia în memorie.
Împărțirea și restul: în C++ 7/2 = 3 (întreg!); % dă restul — iar n % 2 == 0 înseamnă „n e par".
Exersează pe pbinfo.ro: categoria „Elemente de bază ale limbajului" — afișări simple și citiri de date. Țintă: 5 probleme cu 100 de puncte.
← anteriorModul 00 · Biți și baze urmează →Modul 02 · Instrucțiuni — decizie și repetiție