====== Lecția 1: Introducere în vectori ====== Salut! Bine ai venit la prima lecție din cadrul modulului [[module:08-vectori-si-tablouri:home]]. În această lecție vei învăța ce este acela un vector, precum și cum poate fi el folosit într-un mod util. Aceste lucruri vor fi corelate cu noțiuni deja parcurse: variabile și operatori, condiții și bucle. ===== Recapitulare: concepte de buclă + condiții ===== Pentru a putea scrie programe cu vectori, trebuie să cunoști conceptul de buclă (în special folosind cuvântul cheie ''for''), precum și ce este aceea o condiție (folosind cuvântul cheie ''if''). De aceea, te rugăm să parcurgi cu atenție exercițiile de mai jos pentru a recapitula aceste noțiuni. * Pornind de la exemplul următor, scrie pe hârtie un program care modifică valoarea lui x numai dacă aceasta este pară. var x = 4; x = x + 1; * Scurtează programul următor folosind bucle: var x = 0; x = x + 1; x = x + 2; x = x + 3; x = x + 4; x = x + 5; x = x + 6; x = x + 7; ===== Tutorial vectori ===== Astăzi vei învăța câteva noțiuni despre ce este acela un vector, la ce este util să folosim vectori, cum se declară un vector, precum și cum putem accesa elementele din el. Pentru a înțelege aceste noțiuni, vei parcurge tutorialul de mai jos, urmărind un exemplu scris în [[http://www.khanacademy.org/cs/|Khan]], pentru ca apoi să creezi și tu câteva programe. === 1. Ce este un vector? === Cel mai simplu, acesta poate fi privit ca pe o simplă înșiruire de obiecte, o colecție de obiecte. O reprezentare intuitivă a unui vector poate fi dată de așezarea elementelor într-un tabel cu o singură linie și mai multe coloane. | Maria | Mihai | Elena | Dragoș | Andrei | **Ce fel elemente poate avea un vector?** * Nume (de persoane, de orașe) | Brașov | București | Craiova | Timișoara | Iași | Constanța | * Animale | Cal | Șarpe | Veveriță | Crocodil | Vultur | Leu | Rinocer | * Culori | Roșu | Alb | Albastru | Verde | Galben | Roz | Negru | Violet | * Materii | Matematică | Biologie | Istorie | Geografie | Muzică | Engleză | * și multe, multe altele. Componentele unui vector au de obicei caracteristici comune. **Exerciții** * Realizează vectorul ce conține __numele__ tuturor colegilor din grupă * Realizează vectorul ce conține __vârstele__ tuturor colegilor tăi de grupă * Ținând cont de regula ca un vector să conțină elemente de același fel sau cu caracteristici comune realizează vectorii corespunzători împărțint elementele: 10, Ana, centimetrii, 15, metrii, 46, decimetrii, Mihai, mere, 153, Iosif, 87, Laura, kilometrii. * Poți pune elementele acelor vectorii într-o ordine? Alege o ordine și sortează (adică ordonează) elementele vectorilor. ** Declararea unui vector in Khan ** Pentru a declara un vector cu numele unor persoane în [[https://www.khanacademy.org/cs/|Khan]], vom folosi un cod precum cel de mai jos: var persoane = [ "Elena", "Mihai", "Valentin", "Georgiana", "Dragomir", "Andrei", "Mihaela" ]; === 2. De ce folosim vectori? === Vectorii ne ajută să organizăm informațiile. Spre exemplu, pentru a scrie codul de mai sus folosind numai variabile simple, codul ar fi arătat mult mai încărcat: var persoana0 = "Elena"; var persoana1 = "Mihai"; var persoana2 = "Valentin"; var persoana3 = "Georgiana"; var persoana4 = "Dragomir"; var persoana5 = "Andrei"; var persoana6 = "Mihaela"; === 3. Cum folosim elementele din vector? === Bun, am înțeles ce este un vector și la ce ar fi util, dar cum folosim elementele din vector? Trebuie să putem accesa fiecare element din vector în parte. Acest lucru îl vom face cu ajutorul **indexării**. Să presupunem că avem un vector de 10 elemente, reprezentate de primele litere din alfabetul englez. Pentru a putea accesa fiecare element din vector în parte, vom folosi un **index**. În general, progamatorii folosesc pentru această adresare numere **începând de la 0**, ca în figura următoare: ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ | A | B | C | D | E | F | G | H | I | j | Spre exemplu, putem spune că elementul de pe poziția 3 este D, sau că elementul cu indexul 5 este F. Folosind indexarea, poți modifica valoarea unui element de pe o anumită poziție. Spre exemplu, schimbarea literei de la indicele 3 în "Q" poate fi scrisă astfel: var litere = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" ]; litere[3] = "Q"; Vectorii nu trebuie să fie sortați. Putem avea, de exemplu, un vector cu vârstele vecinilor dintr-un bloc: {{ :module:08-liste-si-vectori:vector.jpg?400 |}} Pentru a determina din cod lungimea unui vector (numărul de elemente), poți folosi cuvântul cheie ''length''. Iată un exemplu în care sunt afișate numele de mai sus în două moduri, folosind atât variabile simple, cât și vectori. Observă folosirea lui ''length'' pentru a determina numărul de elemente al vectorului, precum și utilizarea unei bucle pentru parcurgerea tuturor elementelor.

Nume persoane

Made using: Khan Academy Computer Science.

===== Exerciții ===== - Adaugă în programul dat ca exemplu încă 2 persoane, atât cu variabile simple, cât și în vector. Observă cât de simplu este să extinzi programul dacă ai folosit vectori. - Schimbă în programul dat ca exemplu numele primelor 2 persoane. - Modifică programul de mai jos astfel încât să fie desenate obiectele doar dacă numerele din vector au valoarea "1".

Copaci

Made using: Khan Academy Computer Science.

===== Bonus ===== - Modifică programul de mai jos pentru a determina suma elementelor din vector și cel mai mare element.

Suma și maxim

Made using: Khan Academy Computer Science.

===== Exerciții pentru acasă ===== 1. Ai văzut filmul Matrix? Și dacă da și dacă nu, ca temă ai de realizat un efect asemănător celui prezentat în film (poți găsi ceva asemănător la acest [[http://www.youtube.com/watch?v=3PVeBroxKKY|link]] ). Pentru aceasta, poți modifica următorul cod (folosind vectori în loc de variabile simple):

Matrix character fall

Made using: Khan Academy Computer Science.