1. Ce este Limbajul Natural?
Ce este Limbajul Natural?
Gandeste-te la limbajul natural ca la instructiunile pe care le-ai da unui prieten pentru a ajunge la casa ta:
- "Mergi drept 200m"
- "Coteste la stanga la semafor"
- "Treci de parcul central"
- "Blocul meu e pe dreapta, numarul 15"
Exact asa scriem si algoritmii in limbaj natural - cu instructiuni clare, pe intelesul oricui!
E ca si cum ai explica unui coleg cum sa rezolve un nivel de puzzle:
"1. Priveste tabla si gaseste piesa patrata din colt
2. Muta piesa patrata in spatiul liber din dreapta
3. Roteste piesa triunghiulara cu 90 de grade
4. Aseaza piesa triunghiulara langa cea patrata
5. Verifica daca toate piesele se potrivesc"
Observi? Nu folosesti cod de programare, doar cuvinte simple si clare!
- Nu trebuie sa stii programare ca sa scrii algoritmi
- E usor de citit si inteles de oricine
- Te ajuta sa gandesti logic inainte de a programa
- E primul pas catre pseudocod si programare adevarata
2. Verbe de Actiune Algoritmice
Verbe de Actiune Algoritmice
Cele mai importante verbe algoritmice:
| VERB | Explicatie | Exemplu |
|---|---|---|
| CITESTE | Primeste date de la utilizator sau din alta sursa | CITESTE numar |
| SCRIE | Afiseaza un rezultat sau mesaj | SCRIE "Rezultat: ", suma |
| CALCULEAZA | Executa o operatie matematica | CALCULEAZA suma = a + b |
| COMPARA | Verifica o conditie (mai mare, mai mic, egal) | DACA numar > 10 ATUNCI... |
Reteta de pizza (folosind verbe de actiune):
1. IA aluatul din frigider
2. INTINDE aluatul cu sulelul
3. PUNE sos de rosii pe aluat
4. PRESARA cascaval pe deasupra
5. ADAUGA ingredientele preferate
6. COACE la 200°C timp de 15 minute
Fiecare pas incepe cu un VERB care spune clar ce actiune sa faci!
GRESIT: "Cartea pe masa" (nu e o actiune!)
CORECT: "PUNE cartea pe masa" (verb + actiune clara)
Intotdeauna foloseste un VERB la inceputul fiecarui pas!
3. Pasi Numerotati si Structura
Pasi Numerotati si Structura
Structura standard a unui algoritm:
Reguli importante:
- START marcheaza inceputul (punctul de pornire)
- STOP marcheaza sfarsitul (punctul de oprire)
- Pasii sunt numerotati (1, 2, 3, ...) pentru a sti ordinea exacta
- Fiecare pas contine o singura actiune
- Fiecare pas incepe cu un verb de actiune
Progresie: de la simplu la complex
Urmareste cum un algoritm creste treptat in complexitate — fiecare nivel adauga un element nou:
✔ Orice algoritm are START si STOP. Chiar si cu un singur pas, structura este respectata.
✔ Acum avem INPUT (citire) → PROCESS (calcul) → OUTPUT (afisare). Acesta este pattern-ul de baza al majoritatii algoritmilor.
✔ Acum algoritmul decide: in functie de valoarea sumei, afiseaza mesaje diferite. Pasul 4 contine o structura alternativa (DACA...ATUNCI...ALTFEL), iar sub-pasii 4.1 si 4.2 sunt indentati pentru claritate.
- Stim exact ordinea de executie (ce urmeaza dupa ce)
- Putem face referiri: "Repeta pasul 3" sau "Daca da, mergi la pasul 5"
- E usor sa gasim unde e o greseala
- Putem colabora cu alti colegi ("Am ajuns la pasul 4, ce urmeaza?")
⚠️ Lipsesc START/STOP, pasii nu sunt numerotati, nu e clar ce se intampla
✓ Clar, structurat, oricine poate urmari si intelege!
4. Vag vs Precis: Diferenta Critica
Vag vs Precis: Diferenta Critica
Exemple comparative:
❌ Descrieri VAGE
"Ia niste numere"
Ce inseamna "niste"? Cate? Care?
"Calculeaza ceva"
Ce anume? Cum? Cu ce date?
"Afiseaza rezultatul"
Ce rezultat? Unde? Cum?
✅ Descrieri PRECISE
"CITESTE numarul N"
Exact ce date si cum le numim!
"CALCULEAZA patrat = N * N"
Operatie clara cu rezultat stocat!
"SCRIE 'Patratul lui ', N, ' este ', patrat"
Exact ce si cum se afiseaza!
Imagineaza-ti ca dai instructiuni unui robot de livrare:
VAG: "Mergi undeva si livreaza pachetul cuiva"
→ Robotul nu stie unde sa mearga sau cui sa dea pachetul!
PRECIS: "Mergi la adresa Strada Florilor nr. 25, Apartamentul 3B, si livreaza pachetul lui Ion Popescu"
→ Robotul stie EXACT ce sa faca!
Un algoritm precis trebuie sa raspunda la:
- CE date citesc? (nume de variabile, sursa)
- CUM le prelucrez? (operatii exacte)
- UNDE afisez rezultatul? (ecran, fisier, etc.)
- CAND se intampla fiecare actiune? (ordinea pasilor)
5. Pattern-ul Universal: INPUT → PROCESS → OUTPUT
Pattern-ul Universal: INPUT → PROCESS → OUTPUT
INPUT
CITESTE datele necesare
PROCESS
CALCULEAZA / PRELUCREAZA
OUTPUT
SCRIE rezultatul
Exemple practice:
Cand primesti o problema, intreaba-te mereu:
- Ce date am nevoie? (INPUT) → CITESTE...
- Ce calcule/decizii fac? (PROCESS) → CALCULEAZA/DACA...
- Ce afisez/returnez? (OUTPUT) → SCRIE...
Raspunde la aceste 3 intrebari si ai algoritmul gata!