Sunteți pe pagina 1din 3

Test la informatic tablouri bidimensionale

1. Scriei un program C/C++ care citete din fiierul matrice.txt dou valori naturale nenule m i n
(m<15, n<15) i apoi m*n numere naturale cu cel mult 4 cifre fiecare reprezentnd elementele unei
matrice cu m linii i n coloane, numerotate de la 0 la m-1, respectiv de la 0 la n-1. Programul determin
apoi valorile minime de pe fiecare coloan a matricei i le afieaz pe o linie a ecranului separate prin
cte un spaiu. Exemplu: pentru m=3, n=4 i matricea de mai jos se afieaz pe ecran valorile 5 2 1 3
(cea mai mic valoare de pe prima coloan este 5, cea mai mic valoare de pe a doua coloan este 2, cea
mai mic valoare de pe a treia coloan este 1, cea mai mic valoare de pe a patra coloan este 3). 30p





2. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i a (2<n<15, 0<a<n) i
construiete n memorie o matrice cu n linii i n coloane numerotate de la 1 la n, format numai din
valorile 0, 1 i 2 astfel nct: elementele aflate pe linia a sunt egale cu 0, cele de deasupra liniei a sunt
egale cu 1, iar elementele aflate sub linia a sunt egale cu 2, ca n exemplul de mai jos. Programul afieaz
pe ecran matricea astfel construit, fiecare linie a matricei pe o linie a ecranului i elementele de pe
aceeai linie separate prin cte un singur spaiu (Bacalaureat 2009). Exemplu: pentru n=5 i a=4 se
construiete n memorie i se afieaz matricea de mai jos. 30p







3. Scriei un program C/C++ care citete de la tastatur dou valori naturale n i m (1<n<24, 1<m<24) i
construiete n memorie un tablou bidimensional cu n linii i m coloane, numerotate de la 1 la n,
respectiv de la 1 la m, format din toate numerele naturale de la 1 la n*m ca n exemplul de mai jos.
Programul va afia pe ecran tabloul astfel obinut, fiecare linie a matricei pe o linie a ecranului i
elementele de pe aceeai linie separate prin cte un singur spaiu. (Bacalaureat 2009). Exemplu: pentru
n=4 i m=5 se construiete n memorie i se afieaz matricea de mai jos. 30p





Oficiu: 10p

BAREM
1.

#include <iostream>
#include <fstream>
using namespace std;
ifstream in("matrice.txt");
int main(void)
{
int a[17][17], m, n, i, j, minim;
in >> m >> n;
for (i=0 ; i<m ; i++)
for (j=0 ; j<n ; j++)
in >> a[i][j];
for (j=0 ; j<n ; j++)
{
minim = a[0][j];
for (i=1 ; i<m ; i++)
if (minim > a[i][j])
minim = a[i][j];
cout << minim << ' ';
}
return 0;
}


#include <stdio.h>
int main(void)
{
int a[17][17], m, n, i, j, minim;
FILE *f;
f = fopen ("matrice.txt", "r");
fscanf(f, "%d %d", &m, &n);
for (i=0 ; i<m ; i++)
for (j=0 ; j<n ; j++)
fscanf(f, "%d", &a[i][j]);
for (j=0 ; j<n ; j++)
{
minim = a[0][j];
for (i=1 ; i<m ; i++)
if (minim > a[i][j])
minim = a[i][j];
printf("%d ", minim);
}
return 0;
}

2.

#include <iostream>
using namespace std;
int main(void)
{
int m[15][15], n, a, i, j;
cout << "n="; cin >> n;
cout << "a="; cin >> a;
for (i=1 ; i<=n ; i++)
for (j=1 ; j<=n ; j++)
if (i < a)
m[i][j] = 1;
else
if (i == a)
m[i][j] = 0;
else
m[i][j] = 2;
for (i=1 ; i<=n ; i++)
{
for (j=1 ; j<=n ; j++)
cout << m[i][j] << ' ';
cout << '\n';
}
return 0;
}


#include <stdio.h>
int main(void)
{
int m[15][15], n, a, i, j;
printf("n="); scanf("%d", &n);
printf("a="); scanf("%d", &a);
for (i=1 ; i<=n ; i++)
for (j=1 ; j<=n ; j++)
if (i < a)
m[i][j] = 1;
else
if (i == a)
m[i][j] = 0;
else
m[i][j] = 2;
for (i=1 ; i<=n ; i++)
{
for (j=1 ; j<=n ; j++)
printf("%d ", m[i][j]);
printf("\n");
}
return 0;
}

3.

#include <iostream>
using namespace std;
int main(void)
{
int a[20][20], n, m, i, j, x;
cout << "n="; cin >> n;
cout << "m="; cin >> m;
x = 1;
for (i=1 ; i<=n ; i++)
{
if (i%2 != 0)
for (j=1 ; j<=m ; j++)
{
a[i][j] = x;
x++;
}
else
for (j=m ; j>=1 ; j--)
{
a[i][j] = x;
x++;
}
}
for (i=1 ; i<=n ; i++)
{
for (j=1 ; j<=m ; j++)
cout << a[i][j] << ' ';
cout << '\n';
}
return 0;
}


#include <stdio.h>
int main(void)
{
int a[20][20], n, m, i, j, x;
printf("n="); scanf("%d", &n);
printf("m="); scanf("%d", &m);
x = 1;
for (i=1 ; i<=n ; i++)
{
if (i%2 != 0)
for (j=1 ; j<=m ; j++)
{
a[i][j] = x;
x++;
}
else
for (j=m ; j>=1 ; j--)
{
a[i][j] = x;
x++;
}
}
for (i=1 ; i<=n ; i++)
{
for (j=1 ; j<=m ; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}

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