====== Lecția 2: Operatori de condiție ======
Bine ai revenit la lecțiile de condiții în programare. Vom continua să lucrăm în Scratch folosind blocul ''if'' și vom vorbi despre operatori.
===== Recapitulare condiții în Scratch =====
Până să verifice instructorii [[:module:06-conditii-in-programare:lectia-01#lucru-pentru-acasa|lucrul pentru acasă de la lecția trecută]], hai să facem un scurt exercițiu recapitulativ de folosire a condițiilor în Scratch.
În proiectul Scratch de aici se găsește un program Scratch care conține un sprite pisică, un sprite minge și niște linii care reprezintă un labirint. Pe moment pisica se mișcă pe ecran cu ajutorul tastelor. Pisica pornește tot timpul de la poziția ''x = 180'', ''y = 40''.
Autentifică-te cu propriul cont Scratch pentru a crea remixul.
Pentru a vedea interiorul proiectului, dă click pe **//See inside//**: {{ :module:07-bucle-in-programare:see_inside.png?600 |}}
În pagina proiectului, dă click pe **//Remix//** pentru a clona proiectul:
{{ :module:07-bucle-in-programare:remix.png?600 |}}
Creează un remix al [[http://scratch.mit.edu/projects/18589089/|proiectului Scratch de aici]] și modifică-l pentru ca:
* Atunci când pisica atinge liniile (zidurile labirintului) să miaune și să se mute în poziția inițială (''x = 180'', ''y = 40'').
* Să existe o variabilă ''scor'' care să aibă la început valoarea ''0'' (zero).
* Atunci când pisica atinge mingea să spună "Bingo" pentru 1 secundă, să crească scorul cu 1 și să revină în poziția inițială (''x = 180'', ''y = 40'').
Pentru condiții folosește blocul ''if'' din Scratch, din setul ''Control''.
Instrucțiunile cu variabile se găsesc în setul ''Data''.
Pentru a spune "Bingo", folosiți instrucțiunea/blocul ''say'' din setul ''Looks''.
Pentru a mieuna, folosiți instrucțiunea corespunzătoare din setul ''Sound''.
\\
==== 1. (tutorial) Folosire operatori în Scratch ====
Atunci când vrem să folosim condiții vrem să facem comparații între numere. De exemplu, vrem să comparăm dacă un număr este mai mic decât valoarea 18. Atunci vom folosi o construcție de forma ''if numar < 18''. În Scratch, acest lucru arată ca în figura de mai jos:
{{ :module:06-conditii-in-programare:if-operator.png?300 |}}
Hai să vedem cum arată un program în Scratch. Accesează [[http://scratch.mit.edu/projects/18592529/|proiectul Scratch de aici]], folosește butonul "See inside" și rulează programul (apasă pe steagul verde). Programul îți va cere să introduci vârsta și va spune dacă ești minor sau major: adică dacă ai peste 18 ani sau sub 18 ani.
Uită-te în cadrul programului ca să vezi din ce este compus.
În regulă, ai aflat despre cum putem folosi operatorii în Scratch. Hai să vedem încă un proiect.
==== 2. (tutorial) La școală sau nu ====
Vrem să facem un program în Scratch care ne spune dacă cineva este la școală sau nu. Acest program îți va spune "Ești la școală." dacă ai între 6 ani și 19 ani. Adică trebuie să avem o condiție de forma ''5 < varsta < 20''. Întrucât nu putem pune mai mulți operatori ''<'' (mai mic), atunci trebuie să folosim "și". Adică vom avea o condiție de forma ''5 < varsta'' **și** ''varsta < 20''. În engleză așa ceva se scrie ''5 < varsta **and** varsta < 20''.
Un exemplu de folosire a operatorului **și** este în [[http://scratch.mit.edu/projects/18593749/|programul Scratch de aici]]. În acest program dacă vârsta este mai mare de 5 **și** mai mică decât 20, atunci se afișează mesajul ''Ești la școală''. Altfel, se afișează mesajul ''Nu ești la școală''.
Bravo, ai văzut cum folosim și operatorul **și** (**and**). Există și operatorul **sau** (**or**) și operatorul **nu** (**not**).
De acum încolo vei realiza propriile proiecte. Autentifică-te cu __contul personal__ pe http://scratch.mit.edu/ și lucrează la exercițiile de mai jos!
==== 3. Ce anotimp este? ====
Hai să facem un program în Scratch care ne spune anotimpul în funcție de luna pe care i-o scriem. Programul afișează un mesaj în care spune "Ce lună este?". Apoi utilizatorul îi va da un număr între 1 și 12 și:
* dacă luna este 12 **sau** 1 **sau** 2 (adică luna decembrie, luna ianuarie și luna februarie), atunci programul va afișa "iarnă"
* dacă luna este mai mare decât 2 **și** mai mică decât 6 (adică luna 3 -- martie, luna 4 -- aprilie, luna 5 -- mai), atunci programul va afișa "primăvară"
* dacă luna este mai mare decât 5 **și** mai mică decât 9 (adică luna 6 -- iunie, luna 7 -- iulie, luna 8 -- august), atunci programul va afișă "vară"
* dacă luna este mai mare decât 8 **și** mai mică decât 12 (adică luna 9 -- septembrie, luna 10 -- octombrie, luna 11 -- mai), atunci programul va afișa "toamnă"
După ce scrieți programul, testați-l: introduceți, pe rând, numere între 1 și 12.
Felicitări! Ai făcut un program cu operatori în Scratch. Hai să mai facem un program.
==== 4. Câte zile are luna? ====
Văzând cum ai făcut programul dinainte, fă un program în Scratch care afișează câte zile are o lună. Luna o introduce utilizatorul ca valoare între 1 și 12 și programul afișează câte zile are luna respectivă. În cazul lunii februarie afișează "28/29 de zile".
Scrie programul și testează-l, pe rând, cu numere între 1 și 12 (reprezentând toate lunile anului).
==== 5. Unde este numărul? ====
Hai să lucrăm cu numere!
Scrie un program în Scratch care generează la întâmplare (//random//) un număr între 1 și 10000 (zece mii) și care:
* dacă numărul este sub 100, afișează "număr sub o sută"
* dacă numărul este între 100 și 1000, afișează "număr între o sută și o mie"
* dacă numărul este mai mare decât 1000, afișează "număr mai mare ca o mie"
Dacă l-ai făcut, bravo! Te descurci foarte bine cu numere.
__Bravo, ai făcut exerciții cu operatori. În continuare, te rugăm să lucrezi la exercițiile bonus.__
==== Bonus 1: Cum e vremea? ====
//Idee de la [[http://forrestercomputing.wikispaces.com/Temperature|Forrester High School Computing]].//
Scrie un program în care se afișează mesajul "Ce temperatură e afară?". Apoi utilizatorul va introduce un număr în grade, care va reprezenta temperatura. După aceasta programul va afișa un mesaj în funcție de temperatură:
* dacă temperatura este sub 0 grade, atunci va afișa "Este foarte frig."
* dacă temperatura este între 0 grade și 10 grade, atunci va afișa "Este frig."
* dacă temperatura este între 11 grade și 20 de grade, atunci va afișa "Este așa și așa."
* dacă temperatura este între 21 de grade și 30 de grade, atunci va afișa "Este cald."
* dacă temperatura este mai mare decât 30 de grade, atunci va afișa "Este foarte cald."
==== Bonus 2: Lungime cuvânt ====
Scrie un program care îți afișează informații despre lungimea unui cuvânt. Programul va afișa mesajul "Spune-mi un cuvânt". Apoi utilizatorul va introduce un cuvânt. După aceasta programul va afișa un mesaj în funcție de lungimea cuvântului:
* dacă lungimea cuvântului este sub 6, atunci va afișa mesajul "Este un cuvant scurt."
* dacă lungimea cuvântului este cuprinsă între 6 și 9 va afișa mesajul "Este un cuvânt mediu."
* dacă lungimea cuvântului este cuprinsă între 10 și 12 va afișa mesajul "Este un cuvânt lung."
* dacă lungimea cuvântului este mai mare decât 12 atunci va afișa mesajul "Este un cuvânt foarte lung."
==== Bonus 3: Mișcare circulară ====
Scrie un program în care sprite-ul pisică să se miște stânga, dreapta, sus și jos în funcție de tastele care sunt apăsate. Dacă sprite-ul ajunge la marginea din stânga a planșei atunci se va poziționa la marginea din dreapta, ca și cum mișcarea ar continua. La fel și cu celelalte margini.
==== Lucru pentru acasă ====
Creează un program în care să aveți două sprite-uri: un sprite pisică și un sprite câine (''dog''). Cele două sprite-uri se vor putea mișca în sus, jos, dreapta, stânga astfel:
* sprite-ul pisică folosind tastele săgeți
* sprite-ul câine folosind tastele ''w'', ''a'', ''s'' și ''d''
Cele două sprite-uri se vor mișca doar în câte o jumătate de planșă. Sprite-ul pisică doar în jumătatea de sus iar sprite-ul câine doar în jumătatea de jos. Poți pune o linie pe jumatatea planșei (orizontală) ca să delimitezi cele două jumătăți.
**Bonus** la lucru pentru acasă: Împarte harta în patru părți egale ca dimensiune și folosește patru sprite-uri (câine, pisică și alte două) și fă în așa fel încât fiecare sprite să se poată muta în partea sa. Pentru mișcarea fiecărui sprite folosește alte patru taste.