În lucru: lecțiile se refac de la capăt. Lecțiile noi ale clasei: lecțiile noi ale clasei a V-a →
Invatare Atomica

Structura Alternativa in Scratch

Progres lectie:
0%
🎯

Obiectivul lectiei

Invata sa faci programul sa ia decizii inteligente!

Dupa aceasta lectie vei putea:

  • Sa definesti ce este structura alternativa
  • Sa demonstrezi blocul if-then (daca-atunci)
  • Sa demonstrezi blocul if-then-else (daca-atunci-altfel)
  • Sa folosesti conditii in Scratch

Incearca singur!

🚀 Provocare: Sprite interactiv

Creeaza un sprite care schimba culoarea cand apesi SPATIU si spune "Ai apasat!" cand atingi pointer-ul mouse-ului.

Pasi de urmat:

  1. Deschide Scratch - Mergi la scratch.mit.edu
  2. Alege un sprite - Orice personaj iti place
  3. Adauga primul bloc DACA-ATUNCI - Pentru tasta SPATIU
  4. In interior pune "schimba efectul culoare cu 25"
  5. Adauga al doilea bloc DACA-ATUNCI - Pentru "atingi pointer mouse"
  6. In interior pune "spune Ai apasat!"
📌 "la infinit" — de ce e acolo?

Blocul "la infinit" este un bloc de repetare (se va studia complet in clasa a VI-a). Fara el, blocul "daca-atunci" s-ar verifica o singura data la pornire si programul s-ar opri. Gandeste-te la "la infinit" ca la un motor de fundal care pastreaza programul activ. Focusul de azi: blocurile daca-atunci din interior.

💡 Cod de referinta:
cand se da click pe 🚩 la infinit ← motor activ (cls VI — repetare) daca <tasta (spatiu) apasata?> atunci ← FOCUS azi (cls V) schimba efectul (culoare) cu (25) asteapta (0.3) secunde daca <atingi (pointer mouse)?> atunci ← al doilea DACA-ATUNCI spune [Ai apasat!] pentru (1) secunde
🎨 Deschide Scratch Online →
💡 Indiciu 1: Unde gasesc blocul "daca-atunci"?

Mergi la categoria Control (blocuri portocalii). Gasesti acolo blocul "daca <> atunci" - are forma unui C si un loc pentru conditie in varful lui.

💡 Indiciu 2: Cum fac conditia pentru tasta?

Mergi la categoria Sensing (blocuri albastre deschis). Trage blocul hexagonal "tasta (spatiu) apasata?" si pune-l in locul conditiei din blocul "daca-atunci".

💡 Indiciu 3: Cum detectez mouse-ul?

Tot in Sensing, gasesti blocul "atingi (pointer mouse)?". Pune-l ca si conditie in al doilea bloc "daca-atunci".

🎯 Provocare bonus

Incearca sa faci sprite-ul sa schimbe costumul (du-te la categoria Looks si foloseste blocul "schimba costumul la (urmatorul costum)") de fiecare data cand apesi tasta SPATIU. Adauga aceasta instructiune inauntrul blocului "daca <tasta (spatiu) apasata?> atunci".

1

1. Ce este Structura Alternativa?

1

Ce este Structura Alternativa?

Structura alternativa permite programului sa ia decizii bazate pe conditii. In loc sa execute mereu aceleasi actiuni, programul poate alege ce sa faca.

🎮 Exemplu din viata ta

Cand te trezesti dimineata:
DACA e weekend ATUNCI stai in pat mai mult
ALTFEL te pregatesti pentru scoala

Faci o decizie in functie de o conditie (e weekend?). Asta e exact ce face structura alternativa in programare!

📌 De retinut

Fara structura alternativa, programele ar fi ca un robot prost - fac mereu acelasi lucru. Cu ea, programele devin inteligente si pot reactiona diferit la situatii diferite.

2

2. Blocul IF-THEN (DACA-ATUNCI)

2

Blocul IF-THEN (DACA-ATUNCI)

Blocul "if-then" executa un set de instructiuni DOAR daca conditia este adevarata. Daca conditia e falsa, blocurile din interior sunt sarite complet.

daca <conditie> atunci spune [Conditia e adevarata!] mergi (10) pasi
🏀 Analogie sportiva

La baschet: DACA mingea intra in cos ATUNCI primesti puncte.
Daca nu intra? Nu se intampla nimic special, jocul continua.

⚠️ Atentie!

Blocurile din interiorul "if-then" trebuie sa fie indentate (mutate putin la dreapta). Asa stii ca apartin blocului "daca".

📌 Nota despre "la infinit" in exemplu

Blocul "la infinit" (cls VI — repetare) este folosit ca motor de sustinere: fara el, "daca-atunci" s-ar verifica o singura data. Concentreaza-te pe blocul daca <atingi marginea?> atunci — acesta este conceptul de clasa a V-a pe care il inveti azi.

Exemplu: Detectare margine

cand se da click pe 🚩 la infinit ← cls VI (motor de sustinere) mergi (5) pasi daca <atingi (marginea)?> atunci ← cls V, focusul tau roteste-te ↻ (180) grade

Sprite-ul merge inainte constant. DOAR cand atinge marginea, se intoarce.

3

3. Blocul IF-THEN-ELSE (DACA-ATUNCI-ALTFEL)

3

Blocul IF-THEN-ELSE (DACA-ATUNCI-ALTFEL)

Blocul "if-then-else" are doua ramuri: una pentru cand conditia e adevarata, alta pentru cand e falsa. Programul executa MEREU una din cele doua variante.

daca <conditie> atunci spune [Adevarat!] altfel spune [Fals!]
IF-THEN (daca-atunci) IF-THEN-ELSE (daca-atunci-altfel)
Executa ceva DOAR daca conditia e adevarata Executa MEREU ceva (una din cele 2 optiuni)
Daca e fals, nu face nimic special Daca e fals, executa ramura "altfel"
Are doar o ramura (then) Are doua ramuri (then si else)
🍕 Exemplu cu pizza

DACA ai bani ATUNCI cumperi pizza mare
ALTFEL cumperi pizza mica

Oricum cumperi pizza! Doar marimea difera in functie de conditie.

📌 Nota despre "la infinit" in exemplu

Blocul "la infinit" (cls VI — repetare) mentine verificarea activa continuu. Focusul tau: structura daca-atunci-altfel din interior, cu cele doua ramuri ale ei.

Exemplu: Reactie la tasta

cand se da click pe 🚩 la infinit ← cls VI (motor de sustinere) daca <tasta (spatiu) apasata?> atunci ← cls V, focusul tau spune [Ai apasat spatiu!] altfel spune [Apasa spatiu...]

Sprite-ul afiseaza MEREU un mesaj - fie "Ai apasat!", fie "Apasa...". Niciodata nu tace.

4

4. Conditii in Scratch

4

Conditii in Scratch

O conditie este o intrebare cu raspuns DA sau NU (adevarat sau fals). In Scratch, conditiile sunt blocuri cu forma hexagonala (sase laturi).

Blocuri Sensing (Detectie) - albastru deschis

atingi (marginea)? atingi culoarea [rosu]? atingi (Sprite2)? tasta (spatiu) apasata? mouse apasat? atingi (pointer mouse)?

Blocuri Operators (Operatori) - verde

(50) > (10) (valoare) < (100) (x) = (y)
💡 Cum sa recunosti o conditie

Conditiile au forma de hexagon (♦) si pot fi puse in locul conditiei din blocurile "daca". Daca un bloc NU e hexagon, nu e conditie!

📊 Comparatii matematice
Simbol Inseamna Exemplu
> mai mare decat 10 > 5 (adevarat)
< mai mic decat 3 < 8 (adevarat)
= egal cu 7 = 7 (adevarat)
📌 Nota despre "la infinit" in exemplu

Blocul "la infinit" (cls VI — repetare) asigura ca toate cele trei blocuri "daca-atunci" sunt verificate continuu. Focusul tau: cele trei structuri daca-atunci separate si conditiile lor hexagonale.

Exemplu complet: Program interactiv

cand se da click pe 🚩 la infinit ← cls VI (motor de sustinere) daca <atingi culoarea [verde]?> atunci ← cls V spune [Bravo! Esti pe iarba!] daca <tasta (sageata sus) apasata?> atunci ← cls V schimba y cu (10) daca <tasta (sageata jos) apasata?> atunci ← cls V schimba y cu (-10)

Sprite-ul se misca cu sagetile si detecteaza cand e pe zona verde!

Exercitii practice

Exercitiul 1 (Nivel minim) - Sprite schimbator de culoare

Exercitiul 1: Creativ
Sprite schimbator de culoare

Creeaza un sprite care schimba culoarea in functie de ce tasta apesi: R pentru rosu, G pentru verde, B pentru albastru. Foloseste 3 blocuri "daca-atunci" separate.

Vezi rezolvarea

Foloseste structura din exemplele lectiei: sub cand se apasa pe steag, un bloc la infinit (motorul de sustinere din exemple) care tine programul activ, si in interior 3 blocuri daca-atunci separate, cate unul pentru fiecare tasta.

  1. daca <tasta (r) apasata?> atunci - in interior: schimba efectul culoare cu (25)
  2. daca <tasta (g) apasata?> atunci - in interior: schimba efectul culoare cu (25)
  3. daca <tasta (b) apasata?> atunci - in interior: schimba efectul culoare cu (25)

Fiecare conditie foloseste blocul hexagonal tasta ... apasata? din Sensing (atomul 4), pus in locul conditiei blocului daca-atunci (atomul 2). Atentie: lectia arata doar schimba efectul culoare cu 25, care ROTESTE culoarea, nu o seteaza exact la rosu/verde/albastru - a seta o culoare EXACTA nu apare in aceasta lectie. Testeaza in Scratch si observa cum se schimba culoarea la fiecare tasta apasata.

Exercitiul 2 (Nivel standard) - Sprite controlat cu sageti

Exercitiul 2: Practic
Sprite controlat cu sageti

Fa un sprite care se misca in toate cele 4 directii cu sagetile tastaturii: Sus (y+10), Jos (y-10), Dreapta (x+10), Stanga (x-10). Testeaza ca se misca corect.

Vezi rezolvarea

Foloseste acelasi tipar cu 4 blocuri daca-atunci separate, fiecare cu conditia hexagonala tasta ... apasata? din Sensing (atomul 4), sub cand se apasa pe steag + la infinit ca sa verifice tastele continuu:

  1. daca <tasta (sageata sus) apasata?> atunci - schimba y cu (10)
  2. daca <tasta (sageata jos) apasata?> atunci - schimba y cu (-10)
  3. daca <tasta (sageata dreapta) apasata?> atunci - schimba x cu (10)
  4. daca <tasta (sageata stanga) apasata?> atunci - schimba x cu (-10)

Blocurile schimba x cu / schimba y cu sunt din categoria Motion, ca si mergi () pasi din lectie, doar ca modifica direct coordonatele. Testeaza: apasa fiecare sageata si verifica pe scena ca sprite-ul se misca in directia corecta (sus creste y, dreapta creste x).

Exercitiul 3 (Nivel performanta) - Compara if-then cu if-then-else

Exercitiul 3: Analitic
Compara if-then cu if-then-else

Explica cu cuvintele tale cand e mai bine sa folosesti "if-then-else" in loc de doar "if-then". Da un exemplu concret dintr-un joc.

Vezi rezolvarea

Schita de rezolvare (nu raspunsul complet):

  1. Reciteste tabelul comparativ din atomul 3: if-then are o singura ramura (se executa DOAR daca e adevarat); if-then-else are doua ramuri si executa MEREU una din ele.
  2. Formuleaza regula ta: foloseste if-then-else cand ai nevoie de o actiune si pentru cazul in care conditia e FALSA (nu doar "nu face nimic").
  3. Alege un exemplu de joc unde lipsa ramurii "altfel" ar fi o problema (ex: verificare viata/scor, mesaj de castig sau pierdere, sprite care trebuie sa reactioneze diferit la 2 stari).
  4. Scrie explicatia in cuvinte proprii, apoi arata cum ar arata if-then-else pentru exemplul tau (conditie + ramura then + ramura else).

Criterii de nota maxima: explicatia foloseste corect diferenta (o ramura vs doua ramuri, "doar daca" vs "mereu"); exemplul e concret, dintr-un joc real, nu abstract; se vede clar de ce if-then simplu NU ar fi suficient in acel caz.

Ce ai invatat astazi

  • Structura alternativa permite programelor sa ia decizii inteligente
  • Blocul if-then executa actiuni DOAR daca conditia e adevarata
  • Blocul if-then-else are doua ramuri pentru cazurile true si false
  • Conditiile sunt blocuri hexagonale din Sensing si Operators
  • Poti detecta atingeri, taste apasate, si compara valori
  • Programele interactive reactioneaza la ce face utilizatorul

Vrei mai mult?

Provocare: Construieste un daca-atunci PUS IN INTERIORUL altui daca-atunci (doua niveluri): daca tasta spatiu apasata? atunci - daca atingi Sprite2? atunci - spune ceva. Testeaza: functioneaza mesajul doar cand faci AMBELE lucruri deodata (apesi spatiu SI atingi sprite-ul)?

  • De ce? Blocurile-conditie sunt hexagoane, nu dreptunghiuri ca restul blocurilor. Incearca sa tragi un bloc dreptunghiular (ca mergi 10 pasi) in locul conditiei dintr-un daca-atunci - ce se intampla? De ce crezi ca Scratch a ales forme diferite pentru tipuri diferite de blocuri?
  • In lumea reala: Orice limbaj de programare (Python, JavaScript, C++) foloseste exact acelasi if/else ca sa ia decizii - de la un site care iti arata reduceri doar daca esti logat, pana la un joc video care alege ce face un inamic in functie de cat de aproape esti de el.

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →