====== Lecția 3: Tablouri ======
Salut! Bine ai venit la cea de-a treia lecție din cadrul modulului [[module:08-vectori-si-tablouri:home]]. În această lecție vei aprofunda noțiunile de condiție și buclă în exerciții cu vectori și vei învăța ce sunt tablourile. Vom continua să lucrăm în [[http://www.khanacademy.org/cs/|Khan]].
===== Recapitulare =====
Astăzi vom începe cu o recapitulare a utilizării vectorilor prin câteva exerciții. În acest timp, vom verifica și **[[module:08-vectori-si-tablouri:lectia-02#exercitiu-pentru-acasa|exercițiul pentru acasă]]**.
==== 1. Afișarea elementelor unui vector ====
Made using: Khan Academy Computer Science.
==== 2. Afișare folosind 2 culori ==== **Modifică programul anterior** pentru a afișa numerele pare cu o culoare și pe cele impare cu o altă culoare. Trebuie să obții o imagine asemănătoare cu cea din figură: {{ :module:08-liste-si-vectori:m08-l03-e02.png?nolink&300 |}} ==== 3a. Tabel de imagini ==== **Scrie un program** astfel încât să afișezi 3 vectori cu câte 3 imagini în fiecare. Trebuie să obții o imagine asemănătoare cu figura: {{ :module:08-liste-si-vectori:m08-l03-e03.png?nolink&300 |}} ==== 3b. Modificare vector ==== **Scrie un program** astfel încât: se dă un vector **a**, să se creeze vectorul **b** care conține fiecare număr din vectorul **a** adunat cu 1 folosind bucla **for** a = [1, 2, 3, 4, 5, 6, 7] Noul vector: b = [2, 3, 4, 5, 6, 7, 8] ==== 3c. Sumă/Produs ==== **Scrie un program** care să calculeze suma și produsul numerelor dintr-un vector. ==== 3d. Sumă vectori==== Se dau doi vectori **a** și **b**. Să se creeze vectorul **c** care reprezinta suma vectorilor **a** și **b** var a = [1, 4, 6, 7] var b = [3, 9, 2, 10] Vectorul **c** ar trebui să fie: c = [4, 13, 8, 17] ===== Tutorial ===== Astăzi vei învăța câteva noțiuni despre ce este un **tablou** de valori. Pentru a înțelege bine noțiunile, îți recomand să urmărești cu atenție explicațiile și exemplul de mai jos. ==== 4. Noțiunea de tablou ==== Pentru început, hai să înveți ce este un tablou. După explicații, vei rezolva o scurtă cerință. Un **vector** poate fi reprezentat ca un tabel cu o singură linie și cu mai multe coloane. Un **tablou** (numit și **matrice**) poate fi reprezentat ca un tabel cu mai multe linii și mai multe coloane. Din acest motiv, un tablou este reprezentat în Khan ca un **vector de vectori**. Spre deosebire de vector, tabloul este **indexat** atât pe **linii**, cât și pe **coloane**. ^ ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ ^ 0 | A | B | C | D | E | ^ 1 | F | G | H | I | J | ^ 2 | K | L | M | N | O | ^ 3 | P | Q | R | S | T | ^ 4 | U | V | W | X | Y | În tabelul de litere de mai sus, litera 'N' se află la poziția (2, 3). Într-o pereche de indecși, **primul număr** reprezintă **linia**, iar **al doilea număr** reprezintă **coloana**. Modificarea și atribuirea de elemente se face la fel ca la vector. De exemplu, pentru a schimba în tabloul de mai sus litera "N" cu "Z", vom scrie codul:
tablou[2][3] = 'Z';
Mai jos este rezolvat exercițiul 3 folosind o matrice de imagini.
**Observă** modul de declarare și de parcurgere al elementelor și **adaugă** o line și o coloană nouă de elemente (tabloul va avea la final 4 linii și 4 coloane).
Made using: Khan Academy Computer Science.
===== Exerciții ===== ==== 5. Utilizările tablourilor ==== Așa cum ai văzut un tablou poate fi asociat cu un tabel cu un anumit număr de linii și de coloane. În general liniile au o anumită semnificație, iar coloanele o alta. Poți vedea în exercițiul cu [[https://www.mathsisfun.com/definitions/array.html| Caracteristicile maimuțelor]] cum o linie reprezintă o anumită maimuță, iar o coloană reprezintă o anumită caracteristică. ==== 6. Suma indicilor ==== **Scrie un program** care să creeze și să afișeze un tablou cu suma indicilor de pe linia și coloana lor. Astfel, pe poziția [3][4] se va afla elementul 7 deoarece ''3 + 4 = 7''. Trebuie să obții o imagine ca în figura: {{ :module:08-liste-si-vectori:m08-l03-e05.png?nolink |}} Poți porni de la codul următor care inițializează o matrice de 10 linii și 10 coloane cu valori de 0.Made using: Khan Academy Computer Science.
==== 7. Matrice de pătrate ==== **Scrie un program** care creează o matrice de culori (alb și negru) și afișează o matrice de pătrate ca pe tabla de șah. Trebuie să obții o imagine ca în figura: {{ :module:08-liste-si-vectori:m08-l03-e06.png?nolink |}} Vei avea nevoie să îți aduci aminte cum folosești un vector de culori și să îl adaptezi. Dacă nu mai ții minte, te poți uita pe **[[module:08-vectori-si-tablouri:lectia-02#initializarea-vectorilor|Exercițiul 1]]** sau pe **[[module:08-vectori-si-tablouri:lectia-02#modificarea-vectorilor|Exercițiul 2]]** din lecția anterioară. ===== Bonus ===== ==== 8. Imagini pe tablă ==== **Modifică** programul de la exercițiul 6 adăugând imagini peste pătrățele de pe diagonale. Trebuie să obții o imagine asemănătoare: {{ :module:08-liste-si-vectori:m08-l03-e07.png?nolink |}}