Beruflich Dokumente
Kultur Dokumente
Problema 1: Se consideră un tablou unidimensional cu n numere reale și se cere să se afișeze cel mai mare și cel
mai mic element din vector.
Problema 2: Fie tabloul unidimensional x cu n elemente numere reale și numerele întregi a și b. Să se calculeze
media aritmetică a elementelor din tablou cuprinse între valorile a și b.
Problema 1: Se dau temperaturile înregistrate pentru două orașe pe parcursul a unei săptămâni. Să se determine
temperaturile medii pe săptămână pentru fiecare oraș.
Problema 2: Să se scrie un program care calculează minimul și maximul dintr-o matrice cu n linii și m coloane
(1n,m30)
Soluție în Pascal: Solutie în C++:
Program p2; #include <iostream>
Var n, m, minim, i, j, maxim: integer; using namespace std;
a: array [1..30, 1..30] of integer; int n, m, minim, i, j, maxim, a[30][30];
begin int main()
write (‘Dati numarul de linii:’); read (n); {
write (‘Dati numarul de coloane:’); read (m); cout << "Dati numarul de linii:"; cin>>n;
for i:=1 to n do cout << "Dati numarul de coloane:"; cin>>m;
begin for (i = 1; i <= n; i++)
For j:=1 to m do {
begin for (j = 1; j <= m; j++)
write (‘a[‘, i, ‘, ‘, j, ‘]=‘); {
read (a[i,j]); cout<<"a["<<i<<","<<j<<"]=";
end; cin>>a[i][j];
end; }
writeln (‘Elementele matricei A sunt:’); }
for i:=1 to n do cout << "Elementele matricei A sunt:"<<endl;
begin for ( i = 1; i <=n; i++)
for j:=1 to m do {
write (a[i,j],’ ’); for (j = 1; j <=m; j++) cout << a[i][j] << " " ;
writeln; cout << endl;
end; }
minim:=a[1,1]; minim=a[1][1];
maxim:=a[1,1]; maxim=a[1][1];
for i:=1 to n do for (i=1; i<=n; i++)
for j:=1 to m do for (j=1; j<=m; j++)
begin {
if (a[i,j]<minim) then minim:= a[i,j]; if (a[i][j]<minim) minim= a[i][j];
if (a[i,j]>maxim) then maxim:= a[i,j]; if (a[i][j]>maxim) maxim= a[i][j];
end; }
writeln (‘Elementul minim din matrice este ’,minim); cout<<"Elementul minim din matrice este
writeln (‘Elementul maxim din matrice este "<<minim<<endl;
’,maxim); cout<<"Elementul maxim din matrice este
readln; "<<maxim<<endl;
end. return 0;
}
Problema 4: Să se realizeze programul care determina elementele maxim și minim dintr-o matrice dreptunghiulara,
de dimensiuni nxm.
Problema 5: Să se scrie programul care realizează determinarea elementului maxim de pe fiecare coloană a unei
matrice dreptunghiulare de dimensiuni nxm. Elementele matricei se vor citi de la tastatură.
Problema 6: Să se scrie programul care realizează determinarea elementului maxim de pe fiecare linie a unei matrice
dreptunghiulare de dimensiuni nxm. Elementele matricei se vor citi de la tastatură.
readln; return 0;
end. }
Problema 7: Să se scrie programul care sortează crescător elementele de pe diagonala principală ale unei matrici
pătratice.
if (i=j) then begin k:=k+1; y[k]:=x[i,j] end; for (i=1; i<=n-1; i++)
for (j=i; j<=n; j++)
for i:=1 to n-1 do {
for j:=i to n do if (y[i]>y[j])
begin {a=y[i]; y[i]=y[j]; y[j]=a;}
if (y[i]>y[j]) then }
begin a:=y[i]; y[i]:=y[j]; y[j]:=a; end;
for (i=1; i<=n; i++) { x[i][i]=y[i] ;}
for i:=1 to n do x[i,i]:=y[i];
cout<<"Tabloul cu elementele de pe diagonala
writeln (‘Tabloul cu elementele de pe diagonala principala sortate crescator este:"<<endl;
principala sortate crescator este:”); for (i=1; i<=n; i++)
for i:=1 to n do {
begin for (j=1; j<=n; j++) cout<<x[i][j]<<" ";
for j:=1 to n do cout<<endl;
write (x[i,j],’ ’); }
writeln; return 0;
end; }
readln;
end.
1. Se consideră un vector x = { x1, x2, x3, …, xn }. Să se scrie un program care ar modifica vectorul astfel încât în
final să avem :
a) x = { x2, x3, …, xn, x1 }
b) x = { xn, x1, x2, x3, …, xn-1 }
c) x = { x2, x1, x4, x3,…, xn, xn-1 }
2. Se consideră doi vectori x și y cu câte n elemente numre întregi fiecare. Să se scrie un program care ar calcula
următoarele valori :
a) e = (x1+y1) (x2+y2) … (xn+yn)
b) e = x1y1 + x2y2 + … + xnyn
3. Se consideră un vector x care are elemente numere reale. Să se scrie un program care ar introduce media
geometrică între oricare două elmente vecine din vector. Vectorul se va afișa înainte și după modificare.
Reamintim: Media geometrică (mg) a două numere reprezintă rădăcina pătrată a produsului acestora. De exemplu:
Media geometrică a numerelor 32 și 50 este: 𝑚𝑔 = √32 ∗ 50 = √1600 = 40
5. Se consideră un vector x cu n numere întregi. Să se copieze într-un alt vector y elementele pozitive ale vectorului
inițial.
8. Să se rearanjeze elementele unui tablou unidimensional de numere întregi, astfel încât numerele pare să apară
înaintea numerelor impare. În cadrul subsecvenței de numere pare, respectiv impare, elementele trebuie să apară în
ordinea în care erau în vectorul inițial.
9. Se consideră un tablou unidimensional x cu n numere întregi. Se cere să se calculeze cel mai mare divizor comun
al lor.
Sugestii: Pentru determinarea CELUI MAI MARE DIVIZOR COMUN a numerelor A și B este comod a utiliza
ALGORITMUL LUI NICOMAHUS (metoda scăderilor repetate)
Pentru Pascal: Pentru C++:
10. Se consideră un tablou unidimensional x cu n numere întregi. Se cere să se calculeze cel mai mic multiplu
comun al lor.
Sugestii: Pentru calculul matematic a cmmmc pentru două numere A și B, se realizează descompunerea în factori
primi și apoi se consideră termenii comuni și necomuni, la puterea cea mai mare. Adică Algoritmul lui Euclid:
cmmmc (a; b) = (a × b) / cmmdc (a; b).
x:=a; x=a;
y:=b; y=b;
while r< >0 do while (r!=0)
begin {
r:=a mod b; r=a%b;
a:=b; a=b;
b:=r b=r;
end; }
write (‘cmmmc=’, (x*y)/a); cout<<"cmmmc: "<< x*y/a
10. Se dă un tablou unidimensional X cu n numere reale și se cere să se modifice astfel încât să se intercaleze între
oricare două elemente consecutive, media lor aritmetică.
Tablouri bidimensionale(matrici)
1. Se consideră o matrice An*m (1n,m30) având componente numere întregi. Se cere să se calculeze suma
componentelor de pe marginea (rama) matricei.
1 2 3 4
Exemplu: Pentru n = 3 , m = 4 și matricea 𝐴 = (10 11 12 5)
9 8 7 6
se va afișa suma 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 47.
2. Se consideră o matrice An*m (1n,m30) având componente numere întregi. Să se determine maximul fiecărei
coloane și minimul fiecărei linii.
3. Să se construiască automat o matrice pătratică (n=m) de dimensiune n2 (1n30) formată din primele numere
pare începând cu 2.
4. Se consideră o matrice A n*m (1n,m30) cu elemente numere reale. Să se scrie un program care ar schimba în
această matrice prima linie cu ultima linie. Se va afișa apoi matricea modificată.
5. Se consideră o matrice A n*m (1n,m30) cu elemente numere reale. Să se scrie un program care ar schimba în
această matrice prima coloană cu ultima coloană. Se va afișa apoi matricea modificată.
6. Se consideră o matrice A n*m (1n,m30) cu elemente numere reale. Să se scrie un program care ar determina un
vector care să conțină elementele maxime de pe fiecare linie a matricei, iar apoi să determine cea mai mică
valoare din vectorul construit anterior.
7. Se consideră o matrice A n*m (1n,m30) cu elemente numere reale. Să se scrie un program care ar determina un
vector ar conțieă elementele minime de pe fiecare coloană a matricei, iar apoi să determine cea mai mare valoare
din vectorul construit anterior.