1. Ce înseamnă tablou. Cum se defineşte?
2. Poate tabloul(vectorul) include diferite tipuri. Dacă da sau nu explicaţi. Daţi exemplu.
3. int i, a[100], k=0;
for(i=0; i<6; i++)
if(a[i]<0) k=k*i; printf(“k=%d”,k); Ce se tipăreşte la ecran? Explicaţi.
4. Ce se tipăreşte? Explicaţi.
int i, a[100], k=0;
for(i=0; i<6; i++)
if(a[i]%2==1) k++; printf(“k=%d”,k);
5. Câtă memorie se alocă pentru un vector de lungimea n şi de tipul: int, double, char, float. ?
6. Când se folosesc funcţile free() şi malloc(), şi ce fac ele? În care fişier se includ ele?
7. Ce se tipăreşte? Explicaţi.
int i, a[100], k=1;
for(i=0; i<6; i++)
if(a[i]!=0) k=k*a[i];
else k=0; printf(“k=%d”,k);
8. Sunt daţi doi vectori. Cum se face înscrierea ambilor vectori în al treilea vector? Şi ce dimensiune va avea al treilea vector?
Răspunsuri la întrebare
1.
Un tablou este o colecție de date de același tip, stocat în memorie într-o zonă continuă.
Fiecare dată din colecție, numită element al tabloului poate fi folosită ca variabilă oarecare de tipul precizat, fiind identificat printr-o operație numită indexare.
Elementele tablourilor pot avea unul sau mai mulți indici. Astfel, tablourile pot fi:
- unidimensionale, numite și vectori – fiecare element are un indice
- bidimensionale, numite și matrice – fiecare element are doi indici
- multidimensionale – fiecare element are trei sau mai mulți indici.
Un tablou unidimensional se declară în C++ astfel:
tipDeBază denumire[Dimensiune];
de exemplu:
int X[10];
2.
NU!
Din definitie se reia explicatia "colecție de date de același tip". Intr-un vector de intregi nu poti avea si caractere spre exemplu.
3.
se va afisa valorea 0 deoarece in tabloul declarat nu s-a citit nicio valoare, deci nu avem niciun element care sa fie mai mic decat 0
daca are elemente se va afisa produsul indicilor elementelor pozitive
4.
la fel ca la exercitiul 3
daca are elemente se va afisa numarul elementelor impare
5.
pentru int se aloca n*4 bytes
pentru double se aloca n*8 bytes
pentru char se aloca n*1 bytes
pentru float se aloca n*4 bytes
6. Funcțiile standard de alocare și de eliberare a memoriei sunt declarate în fişierul antet <stdlib.h> si <malloc.h>.
Functia malloc() returneaza un pointer spre primul octet al regiunii de memorie alocate in memoria heap libera. Functia aloca in memoria heap o zona contigua de n octeti =nr octeti specificat n.
Functia free() este functia opusa functiei malloc() si are ca efect eliberarea memoriei alocate dinamic anterior.
7.
la fel ca la exercitiul 3
daca are elemente se va afisa produsul elementelor nenule
8.
se copiaza primul vector in al 3-lea apoi al 2-lea vector la finalul celui de-al 3-lea
al 3-lea vector are dimensiunea=dimensiune vector 1+dimensiune vector 2