M5 | L13 – Structura repetitiva FOR

Astăzi vom afla despre:

  • Structura For

Aplicațiile pe care le vom folosi sunt:

Khan Academy

PROIECTE:

Hartie

Casa

Khan Editor : https://www.khanacademy.org/computer-programming/new/pjs

  1. Intro Structura For

Cod de inceput:

// For Loops!

fill(120, 9, 148);

var y = 27;

while (y < 354) {

    text(„Pineapple pizza is the best!”, 80, y);

    y += 24;   

}

Final:

// For Loops!

fill(120, 9, 148);

// for (start; how long; change)

for (var y = 27; y < 354; y += 24) {

    text(„Pineapple pizza is the best!”, 80, y);

}

/*

var y = 27;

while (y < 354) {

    text(„Pineapple pizza is the best!”, 80, y);

    y += 24;   

}

*/

Acum că tu știi despre buclele While, hai să vorbim despre un alt tip de buclă, Bucla FOR. Bucla For este o modalitate pentru a scrie tipuri simple de bucle While, într-un mod puțin mai scurt.

Să vedem cum putem schimba această buclă While într-o buclă For. O să comentez această buclă While doar pentru a putea vedea că o buclă For face acelasi lucru.

Ceva cu adevărat important, diferit pentru o buclă For, este că nu intra doar un lucru intre paranteze ci trei lucruri.

In primul spatiu despartit de punct si virgula o sa avem o initializare. In al doilea spatiu vom avea intructiuni cu privire la cat se repeat si in al treilea spatiu vom avea ce se intampla la fiecare repetitie. Cum corespunde asta cu buclă While?

            In primul spatiu initializam y = 27. In al doilea spatiu scriem conditia y <354 si in al treilea spatiu spunem ce se va intampla la fiecare pas adica y += 24;

  1. Provocare: Hartie

https://www.khanacademy.org/computing/computer-programming/programming/looping/pc/challenge-lined-paper

  1. Bucle Cuibarite

Cod de inceput:

imageMode(CENTER);

for (var i = 0; i < 12; i++) {

    image(getImage(„cute/GemOrange”), i*36, 30, 40, 60);

}

for (var i = 0; i < 12; i++) {

    image(getImage(„cute/GemOrange”), i*36, 60, 40, 60);

}

for (var i = 0; i < 12; i++) {

    image(getImage(„cute/GemOrange”), i*36, 90, 40, 60);

}

Final:

Să folosim o buclă FOR pentru a desena 12 pietre la rând mergând de la stânga la dreapta pe ecran. Observam ca pozitia x este dependanta de I. Cum am putea de fapt să facem pietre prețioase pe toata suprafata ecranului? Ei bine, am putea începe prin repetarea buclei for și copierea si lipirea acesteia, schimbând y de fiecare dată. Pentru a scapa de codul repetitiv trebuie sa mai folosim o bucla. Acest lucru o sa il numim „bucle cuibarite” – O buclă într-o buclă.

Deci, ceea ce vom face este să facem o buclă exterioară care se va ocupa de mersul in jos pe ecran și apoi o bucla noastră interioară va continua să aibă grijă de ceea ce face acum, de mersul de la stânga la dreapta. Bucla exterioara sa va lua variabila j care va fi prelucra pentru parametrul de miscare pe axa y

  1. Proiect: Casa

https://www.khanacademy.org/computing/computer-programming/programming/looping/pp/project-build-a-house