Documente Academic
Documente Profesional
Documente Cultură
Programarea calculatoarelor i
limbaje de programare I
Capitolul 8
Introducere
Exemplu
Sumar
1.
2.
3.
4.
Programarea calculatoarelo
r i limbaje de programare
Exemplu
O valoare de tip int este un numr ntreg i nu
mai poate fi descompus
tablou (array)
struct
union
class
Programarea calculatoarelo
r i limbaje de programare
1.
2.
3.
4.
Programarea calculatoarelo
r i limbaje de programare
Tablouri unidimensionale
Programarea calculatoarelo
r i limbaje de programare
Tablouri unidimensionale
Tablouri unidimensionale
#include <iostream>
using namespace std;
int main()
{
int val[1000]; //declararea tabloului
int contor = 0;
while(contor < 1000)
{
cin >> val[contor];
contor++;
}
contor = 999;
while(contor >= 0)
{
cout << val[contor] << endl;
contor--;
}
return 0;
}
Programarea calculatoarelo
r i limbaje de programare
10
Tablouri unidimensionale
11
Tablouri unidimensionale
12
Tablouri unidimensionale
Declararea tablourilor
Programarea calculatoarelo
r i limbaje de programare
13
Tablouri unidimensionale
Declararea tablourilor
14
Tablouri unidimensionale
Declararea tablourilor
Exemplu
Prin declaraia
int val[4];
compilatorul rezerv ntr-o zon compact de
memorie 4 locaii de tip int
val
val[0]
val[1]
val[2]
val[3]
Programarea calculatoarelo
r i limbaje de programare
15
Tablouri unidimensionale
Componentele individuale
16
Tablouri unidimensionale
Componentele individuale
Exemplu
val
int val[4];
val[0] = -2;
val[1] = 4;
val[2] = 18;
val[3] = -199;
val[0]
-2
val[1]
val[2]
18
val[3]
-199
Programarea calculatoarelo
r i limbaje de programare
17
Tablouri unidimensionale
Componentele individuale
int i, n[10]; //declararea tabloului
i = 0;
while(i < 10)
{
n[i] = 0; //initializarea elementelor taboului
i++;
}
cout << "Element" << setw(13) << "Valoare" << endl;
i = 0;
while(i < 10)
{
cout << setw(7) << i << setw(13)
<< n[i] << endl;
i++;
}
Programarea calculatoarelo
r i limbaje de programare
18
Tablouri unidimensionale
Componentele individuale
Exemplu
int val[4];
val[0] = -2;
cin >> val[2];
cout << val[1];
double x = sqrt(val[2]);
double y = 6.8 * val[2] + 7.5;
Programarea calculatoarelo
r i limbaje de programare
19
Tablouri unidimensionale
Indicii din afara limitelor
Considerm declaraia
double alfa[100];
pentru care domeniul valid al indicilor este
0 99
Dac executm instruciunea
alfa[i] = 62.4;
cnd i < 0 sau i > 99 se acceseaz locaii
de memorie din afara tabloului
C++ nu verific ncadrarea indicilor ntre
limite i aceasta este rspunderea
programatorului
Programarea calculatoarelo
r i limbaje de programare
20
Tablouri unidimensionale
Indicii din afara limitelor
Exemplu
int i = 0;
while(i < 10)
{
alfa[i] = 0.0;
i++;
}
Programarea calculatoarelo
r i limbaje de programare
21
Tablouri unidimensionale
Indicii din afara limitelor
Exemplu
int i = 0;
while(i <= 9)
{
alfa[i] = 0.0;
i++;
}
22
Tablouri unidimensionale
Iniializarea tablourilor
Exemplu
int n[10] = {32, 2, 64, 18, 95, 14, 90, 70, -60, 37};
Exemplu
int n[] = {32, 2, 64, 18, 95, 14, 90, 70, -60, 37};
23
Tablouri unidimensionale
Iniializarea tablourilor
24
Tablouri unidimensionale
Iniializarea tablourilor
const int dim = 5;
int val[dim] = {19, 3, 15, 7, 11};
cout << "Element" << setw(13) << "Valoare"
<< setw(17) << "Histograma" << endl;
int i = 0;
while(i < dim)
{
cout <<
<<
int j =
while(j
{
cout <<
j++;
}
cout <<
i++;
endl;
Programarea calculatoarelo
r i limbaje de programare
25
Tablouri unidimensionale
Tabourile cu valori tip char
Exemplu
26
Tablouri unidimensionale
Tabourile cu valori tip char
Exemplu
char clasament[] = primul;
Elementele tabloului clasament sunt iniializate cu
valorile caracterelor individuale din stringul literal
primul
Dimensiunea tabloului clasament este determinata de
compilator prin lungimea sirului la care se adaug
automat un caracter special numit caracterul null care
se numete terminator de ir
Programarea calculatoarelo
r i limbaje de programare
27
Tablouri unidimensionale
Tabourile cu valori tip char
28
Tablouri unidimensionale
Tabourile cu valori tip char
Exemplu
29
Tablouri unidimensionale
Tabourile cu valori tip char
Exemplu
char sir[20];
cin >> sir;
30
Tablouri unidimensionale
Tabourile cu valori tip char
Exemplu
Vor fi citite 19 caractere de la tastatur dup
care se adaug automat caracterul null
cin >> setw(20) >> sir;
Programarea calculatoarelo
r i limbaje de programare
31
Sumar
1.
2.
3.
4.
Programarea calculatoarelo
r i limbaje de programare
32
Transmiterea tablourilor ca
parametri de funcii
stream-urile
tablourile pentru c n C++
33
Transmiterea tablourilor ca
parametri de funcii
34
Transmiterea tablourilor ca
parametri de funcii
Exemplu
void ModificaTablou(int b[], int dimensiune)
{
int j = 0;
while(j < dimensiune)
{
b[j] *= 2;
j++;
}
}
Programarea calculatoarelo
r i limbaje de programare
35
Transmiterea tablourilor ca
parametri de funcii
Exemplu
Explicaie
+=
a += 7
a = a + 7
-=
b -= 6
b = b 6
*=
c *= 5
c = c * 5
/=
d /= 4
d = d / 4
%=
e %= 3
e = e % 3
36
Transmiterea tablourilor ca
parametri de funcii
37
Transmiterea tablourilor ca
parametri de funcii
Exemplu
38
Transmiterea tablourilor ca
parametri de funcii
39
Transmiterea tablourilor ca
parametri de funcii
ModificaElement(a[3]);
cout << "Valoarea lui a[3] este "
<< a[3] << endl;
...
void ModificaElement(int e)
{
cout << "Valoarea in functia
ModificaElement este "
<< (e *= 2) << endl;
}
Programarea calculatoarelo
r i limbaje de programare
40
Transmiterea tablourilor ca
parametri de funcii
41
Transmiterea tablourilor ca
parametri de funcii
42
Transmiterea tablourilor ca
parametri de funcii
43
Transmiterea tablourilor ca
parametri de funcii
#include <iostream>
using namespace std;
void IncearcaSaModificeTablou(const int []);
int main()
{
int a[] = {10, 20, 30};
IncearcaSaModificeTablou(a);
cout << a[0] << ' ' << a[1] << ' ' << a[2] << endl;
return 0;
}
void IncearcaSaModificeTablou(const int b[])
{
b[0] /= 2; //eroare
b[1] /= 2; //eroare
b[2] /= 2; //eroare
}
Programarea calculatoarelo
r i limbaje de programare
44
Sumar
1.
2.
3.
4.
Programarea calculatoarelo
r i limbaje de programare
45
Tablouri multidimensionale
46
Tablouri multidimensionale
Exemplu
Un tablou bidimensional b[2][2] poate fi declarat i
iniializat prin instruciunea
int b[2][2] = { {1,2}, {3,4} };
Valorile sunt grupate pe linii, ntre acolade
Programarea calculatoarelo
r i limbaje de programare
47
Tablouri multidimensionale
b[0][0]
b[0][1]
b[1][0]
b[1][1]
cu
cu
cu
cu
1
0
3
4
Programarea calculatoarelo
r i limbaje de programare
48
Tablouri multidimensionale
int main()
{
int array2[2][3] = {1,2,3,4,5};
...
TiparesteTablou(array2);
...
}
void TiparesteTablou(int a[][3])
{
int i = 0;
while(i < 2)
{
int j = 0;
while(j < 3)
{
cout << a[i][j] << ' ';
j++;
}
cout << endl;
i++;
}
}
Programarea calculatoarelo
r i limbaje de programare
49
Tablouri multidimensionale
50
Tablouri multidimensionale
51