====== Lecția 6: Operatori, Condiții și Bucle ====== ====Recapitulare:==== * Afișează o parte din numerele de la **1** la **10** pe o coloană folosind un **for**(cele pare), iar pe o altă coloană folosind un **while**(cele impare). * Urmărește cu atenție comentariile din următorul program în Khan:

M7_L5_recap_ex1

Made using: Khan Academy Computer Science.

* Uită-te cu atenție la următoarea imagine și încearcă să desenezi **10 pătrate** pe ecran cu aproximativ aceleași culori și folosind la alegere **for/while** (apasă **Click to display**): {{ :module:07-bucle-in-programare:circle_in_circle.png?nolink&300 |}} ==== Tutorial 1: Operații aritmetice și comparații ==== Hai să ne amintim operatorii pe care i-am învățat! ^ Tipul operației ^ Operator ^ Exemplu ^ | Adunare | ''+'' | var a = 2; a = a + 4; // a va fi 6 var b = 0; b = b + 3; // b va fi 3 var c = 0; c++; // c va fi 1 | | Scădere | ''-'' | var a = 2; a = 10 - a; // a va fi 8 var b = 8 - a; // b va fi 0 | | Înmulțire | ''*'' | var a = 5 * 4; // a este 20 a = 2 * 20; // a este 40 | | Câtul împărțirii | ''/'' | var a = 100 / 4; // a este 25 a = a / 2; // a este 12 | | Restul împărțirii | ''%'' | var a = 100 % 2; // a este 0 a = 5 % 2; // a este 1 | Putem folosi acești operatori pentru a calcula diverse numere, de exemplu. Poți vedea un exemplu aici: [[http://www.khanacademy.org/cs/operatii/6109778351751168]]. Hai să facem un mic exemplu cu niște comparații. Cum facem să vedem că un număr este mai mic decât 10? var numar = 3; // variabila număr se tot schimbă și noi vrem să vedem dacă e mai mică decât 10 if (numar < 10) { // afiseaza valoarea variabilei numar } Mai sus am folosit o **condiție**. Cum te-ai obișnuit, ''if'' (adică ''dacă'' în limba engleză) verifică adevărul unei acțiuni sau stări. De fapt, ''numar < 10'' poate lua două valori: ''true'' (adevărat) sau ''false'' (fals) și ''if'' spune calculatorului să facă ce e între acolade, cum e mai sus afișarea variabilei numar, doar dacă condiția dintre paranteze este ''true''. ==== Exercițiul 1: Numere mari ==== Autentifică-te cu contul personal pe [[https://khanacademy.org]] și rezolvă exercițiul! Scrie un program în Khan în care să generezi aleator un număr între 0 și 10000. Fă asta folosind ''random(0, 10000);''. * dacă este între 1 și 1000, afișează "Sub o mie!" * dacă restul împarțirii la 3 este 0, afișează "Divizibil cu 3!" * dacă restul împărțirii la 3 nu este 0, afișează "Nedivizibil cu 3!" ==== Tutorial 2: Operatorul ȘI ==== Operatorul ȘI în Khan îl scriem cu ''&&''! Vezi exemplu mai jos! Uneori vrem să verificăm că mai multe lucruri sunt adevărate în același timp într-o condiție. De exemplu, dacă Andrei are sub 150 cm și Andrei are sub 14 ani, are voie să meargă pe ponei gratuit. var inaltimeAndrei = 138; // inaltimea lui Andrei in centimetri var varstaAndrei = 10; // varsta lui Andrei... in ani :) if (inaltimeAndrei < 150 && varstaAndrei < 14) { fill(255, 0, 0); textSize(20); text("Intra gratuit!", 100, 100); } Deci are Andrei voie să călărească poneiul gratis? ==== Tutorial 3: Operatorul SAU ==== Operatorul SAU în Khan îl scriem cu ''||''! Vezi exemplu mai jos! Uneori vrem să verificăm cel puțin un lucru este adevărat într-o condiție. De exemplu, dacă Andrei are sub 150 cm sau Andrei are sub 14 ani, are voie să meargă pe ponei gratuit. var inaltimeAndrei = 152; // inaltimea lui Andrei in centimetri var varstaAndrei = 10; // varsta lui Andrei... in ani :) if (inaltimeAndrei < 150 || varstaAndrei < 14) { fill(255, 0, 0); textSize(20); text("Intra gratuit!", 100, 100); } Deci are voie Andrei să meargă pe ponei gratis? ==== Exercițiul 2: Conditii compuse ==== Urmăreşte cu atenţie comentariile din următorul program:

M7_L5_ex_and_or

Made using: Khan Academy Computer Science.

==== Tutorial 4: Bucle și condiții ==== O animație se face folosind funcția ''draw'' din Khan, iar aceasta este echivalentul unei bucle infinite (adică la nesfârșit) care va face acțiunilie/instrucțiunile din interiorul acoladelor: var draw = function() { // acțiuni care se tot repetă }; Lecțiile trecute ai învățat că asta înseamnă că putem face animații! Cum ai făcut exercițiul în care mingea se întorcea când ajungea la margine și o lua în partea opusă? Așa este, ai pus niște condiții folosind ''if''! Ceea ce se întâmplă este că vei verifica mereu acele condiții: este bila la marginea de sus? dacă da, schimbă direcția în jos; este bila la marginea de jos? dacă da, schimbă direcția în sus. ==== Exercițiul 3: Nava spre steluță ==== Autentifică-te cu contul tău pe [[https://khanacademy.org]]. Dă click pe "Save on Khan Academy" și apoi dă "Save as a spin-off"!

Nava spre steluta

Made using: Khan Academy Computer Science.

** Rescrie programul de mai sus folosind ''while'' în loc de ''for''. ** ==== Bonus 1: Suma numerelor pare și suma numerelor impare ==== Scrie un program în Khan care să calculeze suma numerelor pare și suma numerelor impare de la 0 la 100. Folosește o buclă ''for'' sau una ''while''. Cum vei însuma? Ai grijă, că ai nevoie de două variabile, una pentru suma numerelor pare și alta pentru suma numerelor impare. Sumă numere pare: ''0 + 2 + 4 + 6 + 8 + ... + 100 = ?'' Sumă numere impare: ''1 + 3 + 5 + 7 + 9 + ... + 100 = ?''