Unelte utilizator

Unelte site


Sidebar

module:07-bucle-in-programare:lectia-05

Lecția 5: Bucle în Khan

Cum facem o acțiune repetitivă în Scratch? Folosim bucle, fie că erau repetă mereu, adicăforever sau repetă de x ori, adică repeat <x> times sau repetă cât timp <condiție>, adică repeat until <condition>. Khan ne oferă mecanisme asemănătoare. De exemplu, am folosit până acum acțiunea sau funcția draw. draw este ca o buclă ce se repetă mereu. Instrucțiunile ce se găsesc în interiorul lui draw se vor repeta mereu și astfel putem crea animații.

Astăzi vei învăța să lucrezi cu bucle în Khan, dar mai întâi fă recapitularea. Mai știi să folosești condiții în Khan?

Recapitulare

Recapitulare 1: Condiții

În exercițiul recapitulativ de mai jos, vei găsi comentarii ce trebuie să faci. Completează instrucțiunile if cu condițiile potrivite pentru a afișa un singur cristal în funcție de ce număr este ales la întâmplare.

În Khan, operatorul „ȘI“ este &&, iar operatorul „SAU“ este ||. De exemplu, dacă vrem să verificăm că un număr este între 2 și 3, scriem if (numar > 2 && numar < 3) {…}

Condiții - Piatră prețioasă la întâmplare

Made using: Khan Academy Computer Science.

Recapitulare 2: Variabile și Animație

Ai făcut data trecută variabile și animație. Momentan programul de mai jos nu funcționează. Completează-l astfel încât să se miște mașina.

Ai deja variabilele pe care trebuie să le pui în loc de semnul întrebării ? și să decomentezi: var xfata
var xspate
var xcorp

Declară tu variabilele pentru roți. Ți-a apărut o mașină? Scrie la sfârșit ceea ce trebuie pentru ca mașina să se miște.

Variabile și animație - Mașina albastră

Made using: Khan Academy Computer Science.

Tutorial : while

While

Citește cu atenție tot ce scrie mai jos înainte de a te apuca de exerciții!

Instrucțiunea while (<condition>) se poate traduce în repetă până când <condiție> este adevărată sau cât timp condiția este adevărată, fă următoarele acțiuni. De exemplu:

var a = 1;
while (a < 6) {
  a = a + 2;
}

Avem o variabilă a căreia îi setăm valoarea 1. Calculatorul cum va interpreta aceste instrucțiuni? Când ajunge în buclă va face următorii pași (adică suntem la while):

Pasul 1: a este 1

Este valoarea lui a mai mică decât 6? Da! Atunci fă acțiunile dintre acolade { }! Deci a devine valoarea veche a lui a plus 2, adică a o să fie egal cu 1 + 2 = 3!

Pasul 2: a este 3

Este valoarea lui a mai mică decât 6? Este 3 mai mic decât 6? Da! Atunci a cât devine? Corect, 5!

Pasul 3: a este 5

Este valoarea lui a mai mică decât 6? Da! Deci a va fi egal cu a + 2, adică 5 + 2 = 7.

Pasul 4: a este 7

Este valoarea lui a mai mică decât 6? Nu! Nu mai repetăm nicio acțiune din buclă și continuăm cu următoarea instrucțiune după }.

Deschide programele de mai jos și dă click pe butonul Save as a spin-off. Doar așa se vor salva programele în contul tău și poți să le vezi dând click pe „My programs“ de la link-ul https://www.khanacademy.org/computing/cs!

Tutorial 1 : Text din ce în ce mai mare

Salvează programul ca spin-off (echivalentul lui remix din Scratch) și modifică-l astfel încât la fiecare pas să crească dimensiunea textului. Dimensiunea textului se poate modifica prin instrucțiunea textSize(x), unde x este cât de mare sau mic să fie textul.

While - Text crescător

Made using: Khan Academy Computer Science.

Poți încerca mai multe variante. De exemplu: textSize(i * 10)
textSize(i + 20)

Tutorial 2 : Text din ce în ce mai mare și în coloană

Aliniază textul astfel încât să apară pe o coloană, pe verticală. Atenție! Textul trebuie să devină din ce în ce mai mare, nu modifica ce ai făcut la pasul anterior.

Arată-mi cum!

Exercițiul 1: Text aleator de dimensiuni diferite

Scrie textul în locuri aleatoare, cu dimensiuni variabile. Adaugă două variabile a căror valoare este aleasă la întâmplare care vor semnifica poziția pe verticală a textului, adică y și poziția pe orizontală a textului, adică x. În instrucțiunea pentru desenarea textului avem așa: text(„Bună“, poziția pe verticală, poziția pe orizontală);

Indiciu! Pentru generare aleatoare, folosește random(0, 400)!

Tutorial: for

Citește cu atenție tot ce scrie mai jos înainte de a te apuca de exerciții!

for (setarea valorii unei variabile; cât timp continuăm bucla; schimbarea valorii unei variabile)

Tutorial 4: Dreptunghiuri și bucle

În lecția precedentă ai desenat 6 dreptunghiuri la o distanță fixă între ele. Acum poți face asta foarte ușor cu bucla for. Urmărește programul de mai jos și modifică-l să afișeze doar 4 dreptunghiuri!

For - Dreptunghiuri

Made using: Khan Academy Computer Science.

Exercițiul 2: Bucle echivalente

Refă exercițiile de la tutorial 1, 2 și 3 astfel încât să folosești bucla de tip for. Uite un exemplu de transformare:

var i = 0;
while (i < 10) {
  i = i + 1;
}

este echivalent cu

var i;
for (i = 0; i < 10; i += 1) {
 
}

Bonus 1: Suma numerelor naturale

Realizează un program care calculează suma numerelor naturale până la 100 folosind una din buclele învățate astăzi, adică poți folosi o buclă while sau o buclă for.

Afișează suma pe ecran! Cât ți-a dat?

Bonus 2: Acumulează puncte pe Khan Academy!

Bonus 3: Cercuri cu același mijloc

Realizează un program care să deseneze cercuri de culori diferite (alese aleator culorile). Cercurile vor avea același centru, în mijlocul planșei. Pentru a genera aleator o culoare vei folosi random(0, 255) pentru câmp din fill(R, G, B), unde R este cât de mult roșu are culoarea, G - cât de mult verde are culoarea si B cât de mult albastru are culoarea.

Ar trebui să obții ceva asemănător cu:

Lucru pentru acasă

Dacă nu ai reușit să termini lecția, rezolvă toate exercițiile și bonusurile! Apoi, pornind de la bonusul 3, realizează o țintă cu multe cercuri. Acum nu va mai trebui să generezi la întâmplare (aleator) culorile, ci va trebui să alternezi culorile: o dată un cerc este alb, iar următorul va fi roșu. Folosește o buclă, fie while, fie for!

Tema pentru ACUM constă în următoarele exerciții:

  • Calculati cu *for* produsul primelor 7 numere
  • Calculati cu *for* produsul primelor 5 numere pare, fără 0
  • Calculați cu *for* suma numerelor intre 10 si 20
  • Calculați cu *for* produsul numerelor între 5 și 11
  • Calculați cu *while* produsul numerelor între 8 și 14
  • Calculați cu *while* suma primelor 10 numere impare
module/07-bucle-in-programare/lectia-05.txt · Ultima modificare: 2016/02/27 20:00 de către andreea