Sunteți pe pagina 1din 4

Nume Prenume Cazacu Dragos Punctaj___________Nota________________

Extemporală . ”Tablouri bidimensionale”.


3
1. Care din următoarele declarații sunt incorecte sintactic? Corectați-le : L

a) char a[1..10][1..10] char a[1][1] char a[10][10] 0

b) float a[2..10; 3..10] float a[2][3] float a[10][10] 1

c) float a[26][5] corect 2

d) char[5][9] char a[5][9] 3

2. Ce valori vor fi afișate în urma rulării următorului program? Argumentați prin calcule.

int a[3][3], i, j;
i=0, 0<3 A i=1, 1<3 A i=2, 2<3 A
j=0, 0<3 A j=0, 0<3 A j=0, 0<3 A
a[0][0]=10 a[1][0]=10 a[2][0]=10
for (i = 0; i < 3; i++)
j=1, 1<3 A j=1, 1<3 A j=1, 1<3 A
for (j = 0; j < 3; j++) a[0][1]=10 a[1][1]=10 a[2][1]=10
j=2, 2<3 A j=2, 2<3 A j=2, 2<3 A
a[0][2]=10 a[1][2]=10 a[2][2]=10
a[i][j] = 10; j=3, 3<3 F j=3, 3<3 F j=3, 3<3 F
i=3, 3<3 F

Va fi afisat: 10 10 10
for (i = 0; i < 3; i++) 10 10 10
{ 10 10 10
i=0, 0<3 A i=1, 1<3 A i=2, 2<3 A
for (j = 0; j < 3; j++) j=I, 0<3 A a[1][1]=-1 j=i, 2<3
a[0][0]=-1 j=2, 2<3 A a[2][2]=-1
j=1, 1<3 A a[1][2]=-1 j=3, 3<3 F
cout << a[i][j] << ' '; a[0][1]=-1 j=3, 3<3 F
j=2, 2<3 A
cout << endl;
a[0][2]=-1
} j=3, 3<3 F

for (i = 0; i < 3; i++)

for (j = i; j < 3; j++)

a[i][j] = -1;

for (i = 0; i < 3; i++)

for (j = 0; j < 3; j++)

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

cout << endl;


} b. Completați secvența până la un program
Răspuns: -1 -1 -1 int a[3][3], i, j;
for (i=0; i<3, i++)
10 -1 -1 for (j=0; j<3; j++)
a[i][j]=10;
for (i=0; i<3; i++){
10 10 -1 for (j+0; j<3; j++)
cout<<a[i][j]<<’ ’;
cout<<endl; }
return 0;

i=0, i<3 A i=2, 2<3 A


j=0, 0<3; a[0][0]=-1*3+0=-3 j=0, 0<3; a[2][0]=1*3+0=3
j=1, 1<3; a[0][1]=-1*3+1=-2 j=1, 1<3; a[2][1]=1*3+1=4
j=2, 2<3; a[0][2]=-1*3+2=-1 j=2, 2<3; a[2][2]=1*3+2=5
3. Considerăm declarația: j=3, 3<3 F j=3, 3<3 F L
i=1, 1<3 A i=3, 3<3 F
int i, j, a[3][3]; j=0, 0<3; a[1][0]=0*3+0=0 0
j=1, 1<3; a[1][1]=0*3+1=1
j=2, 2<3; a[1][2]=0*3+2=2
a. Determinați ce va afișa următoarea 1
j=3, 3<3 F

secvență de program: 2

-------------------- 3

for (i=0; i<3; i++) 4

for (j=0; j<3; j++) 5

a[i][j]:=(i-1)*3+j; 6

----------------------------------- 7

Raspuns: -3 -2 -1

0 1 2

3 4 5

4. Considerăm declarațiile: Argumentare: L

{ 0
int i,j,n,a[20][20];
i=0, 0<3 A
cin>>n; 1
for(i=0;i<n;i++) a[0][0]=4
for(j=0;j<n;j++) 2
cin>>a[i][j]; i=1, 1<3 A
for(i=0;i<n;i++)
Nume Prenume Cazacu Dragos Punctaj___________Nota________________

Extemporală . ”Tablouri bidimensionale”.


cout<<a[i][i]<<" "; a[1][1]=2 3
cout<<"Ce se va afisa?"<<endl;
i=2, 2<3 A
for(i=1;i<=n-1;i++) 4
for(j=0;j<=i-1;j++) a[2][2]=3
cout<<a[i][j]<<" "; 5
423
cout<<"Ce se va afisa"<<endl;
6
i=1, 1<=(n-1), 1<=2
for(i=1;i<=n-1;i++)
for(j=n-i;j<=n-1;j++) j=0, 0<=0 A 7
cout<<a[i][j]<<" ";   
} a[1][0]=2 8
Determinați ce se va afișa pentru tabloul? j=1, 1<=0 F

Pentru n=3 i=2, 2<=2 A

j=0, 0<=2-1 A
4 4 4
a[2][0]=3
2 2 2
j=1, 1<=2-1 A
3 3 3
a[2][1]=3

j=2, 2<=2-1 F

i=3, 3<=3-1 F

233

i=1, 1<=3-1 A

j=3-1, 2<=3-1 A

a[1][2]=2

j=3, 3<=3-1 F

i=2, 2<=3-1 A

j=3-2, 1<=3-1 A

a[2][1]=3

j=2, 2<=2 A

a[2][2]=3

j=3, 3<=2 F

i=3, 3<=3-1 F

233

5. Scrieți un program C++ care citește de la tastatura un număr natural n (0<n<=23) și apoi construiește L
în memorie un tablou bidimensional cu n linii și n coloane astfel încît elementele situate pe diagonala
secundara sa fie egale cu 2, cele situate deasupra diagonalei secundare sa fie egale cu 1, iar cele situate 0
sub diagonala secundara sa fie egale cu 3.
Programul va afișa tabloul bidimensional pe ecran, câte o linie a matricei pe o linie a ecranului, 1
cu câte un spațiu între elementele fiecarei linii.
Exemplu: dacă n este 4, atunci programul va construi și va afișa matricea de mai jos:
1 1 1 2  2
1123
1233 3
2333
4
#include <iostream>
using namespace std; 5
int main()
{
int n, i, j, a[23][23]; 6
cin>>n;
for(i=0; i<n; i++) 7
for(j=0; j<n; j++)
cin>>a[i][j]; 8
for(i=0; i<n; i++)
a[i][n-i-1]=2;
for(i=0; i<n; i++)
for(j=0; j<n-i-1; j++)
a[i][j]=1;
for(i=1; i<n; i++)
for(j=n-i; j<n; j++)
a[i][j]=3;
for(i=0; i<n; i++){
for(j=0; j<n; j++)
cout<<a[i][j]<<" ";
cout<<endl;}
return 0;
}

S-ar putea să vă placă și