Informatică, întrebare adresată de mihaichisaru, 8 ani în urmă

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

Răspuns de lucaciucandrei
1

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

Alte întrebări interesante