1. Ce este structura "Daca-Atunci"?
Structura de baza:
DACA (conditie este adevarata) ATUNCI
Executa actiunea 1
Executa actiunea 2
...
SFARSIT DACA
2. Exemple din viata reala
Structura "Daca-Atunci" o folosim zilnic, chiar daca nu ne gandim la ea ca la "programare"!
📱 Exemplu 1: Alarma de dimineata
ATUNCI
→ Suna alarma
→ Afiseaza pe ecran "Trebuie sa te trezesti!"
→ Vibreaza telefonul
Daca NU este ora 7:00, alarma nu face nimic - pur si simplu asteapta.
🎮 Exemplu 2: Joc video
ATUNCI
→ Scorul creste cu 10 puncte
→ Moneda dispare de pe ecran
→ Se aude un sunet "ding!"
Daca personajul NU atinge moneda, nu se intampla nimic special.
🌡️ Exemplu 3: Sistem de incalzire
ATUNCI
→ Porneste caloriferul
→ Afiseaza "Incalzire pornita"
Daca temperatura este >= 18 grade, caloriferul ramane oprit.
3. Schema logica — simboluri si diagrama de flux
In diagramele de flux, deciziile se reprezinta cu simbolul ROMB (diamant).
Simboluri importante:
Paralelogram: Citire/Scriere (input/output)
📋 Exemplu complet: "Traverseaza strada"
verde?
4. Pseudocod pentru "Daca-Atunci"
Pseudocodul este o modalitate de a scrie algoritmi in limbaj uman, inainte de a-i transforma in cod real.
Sintaxa pseudocod:
DACA (conditie) ATUNCI
actiune1
actiune2
...
SFARSIT_DACA
📋 Exemplu 1: Verificare varsta
CITESTE varsta
DACA (varsta >= 18) ATUNCI
AFISEAZA "Esti major"
AFISEAZA "Poti vota"
SFARSIT_DACA
AFISEAZA "Program incheiat"
Explicatie: Daca varsta este 18 sau mai mult, se afiseaza ambele mesaje. Daca varsta este sub 18, aceste mesaje sunt sarite, iar programul merge direct la "Program incheiat".
📋 Exemplu 2: Verificare nota
CITESTE nota
DACA (nota >= 5) ATUNCI
AFISEAZA "Ai trecut examenul!"
numar_promovati <- numar_promovati + 1
SFARSIT_DACA
Explicatie: Doar daca nota este 5 sau mai mare, se afiseaza mesajul si variabila numar_promovati creste cu 1 (atribuire: valoarea noua = valoarea veche + 1). Pentru note sub 5, nu se intampla nimic.
variabila <- expresie. Exemplu: numar_promovati <- numar_promovati + 1 inseamna "variabila primeste valoarea ei curenta plus 1". Aceasta este notatie standard recomandata de OMEN 3393/2017.
5. Structura "Daca-Atunci" in Scratch
In Scratch, structura conditionala se numeste blocul "if" si se gaseste in categoria Control (portocalie).
Blocul "if" in Scratch:
🎮 Exemplu 1: Atinge marginea
Explicatie: Pisica se misca continuu cu 10 pasi. DACA atinge marginea ecranului, ATUNCI se intoarce cu 180 grade. Daca NU atinge marginea, continua sa mearga inainte.
🎮 Exemplu 2: Apasa tasta
Explicatie: Programul verifica continuu daca tasta spatiu este apasata. DACA DA, personajul spune "Saritura!" si sare (coordonata y creste). Daca tasta NU este apasata, nu se intampla nimic.
🎮 Exemplu 3: Atinge un obiect
Explicatie: DACA sprite-ul nostru atinge Sprite2, ATUNCI se aude un sunet, scorul creste cu 1 si Sprite2 dispare. Daca NU il atinge, nimic nu se intampla.
6. Ce conditii poti folosi?
Nu orice poate fi o conditie! Conditia trebuie sa fie o expresie care are raspuns TRUE (adevarat) sau FALSE (fals).
Tipuri de conditii valide in Scratch:
| Categorie | Exemple de conditii | Ce verifica? |
|---|---|---|
| Sensing |
• touching edge? • touching Sprite2? • key space pressed? • mouse down? |
Contact cu obiecte Interactiune utilizator Evenimente mouse/tastatura |
| Operators |
• x > 100 • scor < 50 • varsta = 12 • temperatura >= 20 |
Comparatii numerice Verificare valori Egalitate |
| Logici |
• (x > 10) AND (y < 50) • (key left pressed?) OR (key right pressed?) • NOT (touching color red?) |
Conditii combinate Logica complexa Negatie |
✅ Exemple CORECTE de conditii
✓ <touching color blue?>
✓ <answer = "da">
✓ <timer > 10>
✓ <loudness > 30>
❌ Exemple INCORECTE (nu sunt conditii!)
✗ change x by 5 → Este o COMANDA, nu o intrebare
✗ say "Hello" → Nu raspunde DA/NU
✗ set volume to 50% → Este setare, nu verificare