+ All Categories
Home > Documents > Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a...

Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a...

Date post: 02-Feb-2018
Category:
Upload: hacong
View: 243 times
Download: 3 times
Share this document with a friend
23
Tipul tablou Tipuri structurate de date
Transcript
Page 1: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

Tipul tablou

Tipuri

structurate

de date

Page 2: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

Sumar

1. Competenţe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Tipuri structurate de date. Tipul tablou . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Tablouri unidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4. Tablouri bidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5. Aplicaţii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6. Bibliografie şi webografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2

Page 3: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

1. Competenţe

Competenţe generale

• implementarea algoritmilor într-un limbaj de programare

• aplicarea algoritmilor fundamentali în prelucrarea datelor

Competenţe specifice

• identificarea necesităţii structurării datelor în tablouri

• prelucrarea datelor structurate

• utilizarea unui mediu de programare C++

3

Page 4: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

4

O structură de date reprezintă un ansamblu (o colecţie) de date

organizate după anumite reguli, care depind de tipul de structură.

Dintre tipurile de structuri de date fac parte:

• tablourile de memorie;

• fişiere.

2. Tipuri structurate de date. Tipul tablou

Page 5: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

5

Tablouri

Un tablou este o structură format dintr-un număr fix de componente de

acelaşi tip, numit tip de bază.

Tabloul reprezintă o zonă de memorie cărei i se atribuie un nume şi care

permite memorarea mai multor date de acelaşi tip. Aceste date pot fi

tratate ca un tot unitar sau ca date elementare independente.

Tablourile sunt de două tipuri:

• tablouri unidimensionale (vectori);

• tablouri bidimensionale (matrici).

Tipuri structurate de date. Tipul tablou

Page 6: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

6

Tablouri unidimensionale (vectori)

Pentru a prelucra un set de valori de acelaşi tip, acesta trebuie memorat

într-o structură de date. O astfel de structură de date se numeşte şir, iar

valorile respective se numesc elementele şirului.

În limbajul C++ elementele unui şir se memorează într-o singură variabilă

indexată numită tablou unidimensional sau vector.

Elementele şirului memorate într-un vector se numesc elementele vectorului sau componentele vectorului.

3. Tablouri unidimensionale

Page 7: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

7

Declarare vector

Sintaxa: tip_dată nume[nr_elemente];

unde: - tip_dată precizează tipul elementelor vectorului;

- nume este identificatorul vectorului;

- nr_elemente este o constantă întreagă care reprezintă numărul de

elemente ale vectorului.

nume[0] nume[1] nume[2] nume[3] nume[n-2] nume[n-1]

Fiecare element este indicat prin locul pe care îl ocupă în cadrul

vectorului. Poziţiile elementelor în vector sunt numerotate succesiv începând cu 0.

...

Tablouri unidimensionale

Page 8: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

8

Exemple

1. Se declară un vector a cu 10 elemente de tip int:

int a[10];

2. Se declară un vector x cu 5 elemente de tip float:

float x[5];

3. Se declară un vector c cu 8 elemente de tip char: char c[8];

4. Iniţializarea elementelor unui vector la declarare: int v[]={21, 4, 361, 55};

5. Declararea unei constante întregi care va fi folosită la declararea

vectorului: const int NR_ELEMENTE=50;

int v[NR_ELEMENTE];

Tablouri unidimensionale

Page 9: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

9

Referirea la un element al vectorului se face prin construcţia: nume[indice]

unde: - nume este identificatorul vectorului;

- indice este numărul de ordine al elementului în cadrul vectorului.

Exemplu

int v[4];

V[0] V[1] V[2] V[3]

sau

v

0 1 2 3

18 -4 133 75

Tablouri unidimensionale

18 -4 133 75

Page 10: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

10

Citire vector

- se citeşte mai întâi numărul de elemente ale vectorului;

- se citesc pe rând, unul câte unul elementele vectorului;

cout<<”Numarul de elemente:”;

cin>>n;

for(i=1;i<=n;i++)

{

cout<<”v[”<<i<<”]=”;

cin>>v[i];

}

Tablouri unidimensionale

Page 11: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

11

Afişare vector

- se realizează afişând pe rând elementele vectorului;

for(i=1;i<=n;i++)

cout<<v[i]<<’ ’;

Tablouri unidimensionale

Page 12: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

12

Tablouri bidimensionale (matrici)

Un tablou bidimensional (matrice) este un tablou cu elemente de acelaşi

tip, dispuse pe linii şi coloane. Fiecare element al matricii se află pe o

anumită linie şi pe o anumită coloană.

4. Tablouri bidimensionale

Page 13: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

13

Considerăm o matrice notată a cu m linii şi n coloane:

Tablouri bidimensionale

a[0][0] a[0][1] a[0][2] a[0][n-1]

a[1][0] a[1][1] a[1][2] a[1][n-1]

a[2][0] a[2][1] a[2][2] a[2][n-1]

a[m-1][0] a[m-1][1] a[m-1][2] a[m-1][n-1]

a=

0 1 2 n-1

0

1

2

m-1

linia a 3-a coloana a 2-a

- m numărul de linii

- n numărul de coloane

- i indicele liniei

- j indicele coloanei

Page 14: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

14

Declarare matrice

Sintaxa: tip_dată nume[nr_1][nr_2];

unde: - tip_dată precizează tipul elementelor matricei;

- nume este identificatorul matricei:

- nr_1 şi nr_2 două constante întregi care specifică numărul de

elemente ale matricei pentru fiecare dimensiune, astfel: - nr_1 numărul de linii;

- nr_2 numărul de coloane.

Tablouri bidimensionale

Page 15: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

15

Exemple

1. Se declară o matrice a cu 100 elemente de tip int:

int a[10][10];

2. Se declară o matrice x cu 40 elemente de tip float: float x[5][8];

3. Se declară o matrice c cu 8 elemente de tip char:

char c[4][2];

4. Iniţializarea elementelor unei matrici la declarare: int a[2][4]={1,2,3,4,5,6,7,8};

5. Declararea unei constante întregi care va fi folosită la declararea

matricii: const int NR_ELEMENTE=50;

int x[NR_ELEMENTE][NR_ELEMENTE];

Tablouri bidimensionale

Page 16: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

16

Referirea la un element al matricei se face prin construcţia: nume[indice_1][indice_2]

sau

nume[indice_2][indice_1]

unde: - nume este identificatorul matricei;

- indice_1 este numărul liniei pe care se află elementul în matrice;

- indice_2 este numărul coloanei pe care se află elementul în

matricei.

Tablouri bidimensionale

Page 17: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

17

Matrice pătratică

În cazul în care numărul de linii este identic cu numărul de coloane,

matricea se numeşte pătratică.

Exemplu

n=4

int a[5][5];

n - numărul de linii şi de coloane

nxn – numărul de elemente ale matricei

Tablouri bidimensionale

2 5 1 2

2 9 0 0

8 6 1 4

7 7 3 1

a=

1 2 3 4

1

2

3

4

Page 18: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

18

Citire matrice

- se citesc mai întâi numărul de linii şi numărul de coloane ale matricei;

- se citesc pe rând, unul câte unul elementele matricei, de la stânga la

dreapta şi de sus în jos:

cout<<”Numarul de linii:”;

cin>>m;

cout<<”Numarul de coloane:”;

cin>>n;

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

{

cout<<”a[”<<i<<”][”<<j<<“]=”;

cin>>a[i][j];

}

Tablouri bidimensionale

Page 19: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

19

Afişare matrice

- se realizează afişând pe rând elementele matricei, linie cu linie;

for(i=1;i<=m;i++)

{

for(j=1;j<=n;j++)

cout<<a[i][j]<<’ ’;

cout<<endl;

}

Tablouri bidimensionale

Page 20: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

20

Diagonalele matricei

În cazul unei matrici pătratice, se pot prelucra elementele matricei în funcţie de diagonalele acesteia.

Tablouri bidimensionale

diagonala secundară

diagonala principală

Page 21: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

21

Parcurgerea elementelor unei matrici în funcţie de diagonale

Observaţie: i[1,n], j[1,n]

Tablouri bidimensionale

i=j

i<j

i>j

j=n-i+1

j<n-i+1

j>n-i+1

Page 22: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

22

Fişe de lucru

• Aplicaţii tablouri unidimensionale (vectori)

• Aplicaţii tablouri bidimensionale (matrici)

5. Aplicaţii

Page 23: Limbajul de programare C++ - Marius · PDF file2 9 0 0 8 6 1 4 7 7 3 ... Manual pentru clasa a IX-a, Editura Didactică şi Pedagogică, Bucureşti, 2004 2. Munteanu Florin, Programarea

23

1. Miloşescu Mariana, Informatică. Manual pentru clasa a IX-a, Editura

Didactică şi Pedagogică, Bucureşti, 2004

2. Munteanu Florin, Programarea calculatoarelor. Manual pentru licee de

informatică clasele X-XII, Editura Didactică şi Pedagogică, Bucureşti,

1994

3. Logofătu Doina, Bazele programării în C++, Editura Polirom, Iaşi, 2006

4. Popescu C., Culegere de probleme de informatică, Editura Donaris-

Info, Sibiu, 2002

5. Ministerul Educaţiei, Cercetării şi Tineretului, Centrul Naţional pentru

Curriculum şi Evaluare în Învăţământul Preuniversitar, Proba scrisă la

informatică. Examenul de bacalaureat – Variante (1-100) , Bucureşti

2008

6. http://en.wikipedia.org/wiki/Vector_(C%2B%2B)

7. http://www.tutorialeprogramare.ro/Tutorial%20C.html

8. http://ro.wikipedia.org/wiki/Matrice_(matematic%C4%83)

6. Bibliografie şi webografie


Recommended