PC Laborator 7: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
Linia 61: Linia 61:
</syntaxhighlight>
</syntaxhighlight>


<div class="regula">'''<font color="red"> Observatie:</font>''' Se poate ingnora poziția zero,însă daca avem un vector de 100 elemente declararea uzuală ar fi int v[100];, gândim valorile de la v[0] la v[99]. Daca folosim numărarea de la 1, vom avea doar 99 de locații de memorie disponibile pentru cele 100 de valori. În acest caz declararea corecta ar fi  int v[101];.</div>
<div class="regula">'''<font color="red"> Observatie:</font>''' ''Se poate ingnora poziția zero,însă daca avem un vector de 100 elemente declararea uzuală ar fi int v[100];, gândim valorile de la v[0] la v[99]. Daca folosim numărarea de la 1, vom avea doar 99 de locații de memorie disponibile pentru cele 100 de valori. În acest caz declararea corecta ar fi  int v[101];.''</div>


=== Matrici ===
=== Matrici ===

Versiunea de la data 25 septembrie 2015 18:33

Obiectiv

La încheierea acestui laborator studentul va fi capabil:

  • să înteleagă modul de utilizare a tablourilor de memorie
  • să declare şi să iniţializeze vectori/matrici
  • să implementeze algoritmi simpli în lucru cu vectori pentru rezolvarea diverselor probleme


Tablouri

Tablou de memorie este o colecţie de date stocate în locaţii succesive din memorie.
Toate elementele acestuia au acelaşi tip de dată numit de obicei tip de bază.

Tablourile pot fi :

  • vectori (tablouri unidimensionale): șiruri de valori
  • matrici (tablouri bidimensionale): catalogul cu note
  • multidimensionale: pixeli unui imagini în timp


Vectori

Un vector reprezintă o colecție de date de acelaşi tip reprezentate sub forma unei linii sau coloane.

Declarația unei variabile de tip vector

<tip_elemente> <nume_vector>[<număr_maxim_elemente>];
Observatie: Vectori sunt denumiți statici (static arrays) deoarece numărul de elemente şi spaţiul de memorie ocupat este constant în timpul compilării. (numar_maxim_elemente trebuie să fie o constantă).

Exemplul 1

int v[10]; //vector de întregi cu 10 elemente
float nume_vector[100];
 
#define vector_max 100
...
unsigned long nume_vector[vector_max]
Observatie: Numărătoarea elementelor începe de la 0.
 int v[10]; // primul element va fi v[0],iar ultimul element v[9]

Vectorii se pot iniţializa cu valori constante, în acest caz, compilatorul care va determina dimensiunea vectorului din numărul elementelor din listă.

Exemplul 2

int v[10] = {1, 5, 6, 8, 6, 10, 22, 32, 34, 13};      // Toate elemente sunt initializate
float nume_vector[] = {1.2, 2.2, 6.1, -9.3};          // Compilatorul determina dimensiunea vectorului=4
int vect[1000] = {0, 1, 2, 3, 5};                     // Sunt initializate doar primele 5 elemente


Parcurgerea vectorilor

Cum deja am discutat prima pozitie dintr-un vector este v[0]. Presupunem un vector are N elemente, constatăm că ultimul element este v[N-1]. A trece prin elementele vectorului presupune parcurgerea tuturor celor N elemente , de la V[0] la V[N-1]. Acest lucru este posibil prin:

for(i=0; i < N; i++)
// instrucțiune v[i];
Observatie: Se poate ingnora poziția zero,însă daca avem un vector de 100 elemente declararea uzuală ar fi int v[100];, gândim valorile de la v[0] la v[99]. Daca folosim numărarea de la 1, vom avea doar 99 de locații de memorie disponibile pentru cele 100 de valori. În acest caz declararea corecta ar fi int v[101];.

Matrici