Documente Academic
Documente Profesional
Documente Cultură
2. Sa se scrie programul C care sorteaza elementele unei matrice A(mxn) in ordine crescatoare.
Indicatie
Se va apela la un artificiu de programare – copierea tuturor elementelor din matrice intr-un vector.
Acest vector este sortat si ulterior, elementele sortate sunt redistribuite in matrice.
Rezolvare
- Declarari:
INTREG n,m,i,j,k, l, a[10][10], c[10][10], v[100], aux;
SCRIE(“Nr. de linii si de coloane:”);
CITESTE (n,m) ;
3. Sa se scrie programul C care verifica daca matricea A(nxn) este un patrat magic.
Matricea reprezinta un patrat magic daca sumele elementelor de pe fiecare linie sunt egale cu sumele
elementelor de pe fiecare coloana si de pe cele doua diagonale.
Exemplu:
2 7 6
9 5 1
4 3 8
Suma = 15.
Algoritm:
- formula de start: B=E;
- formula recursiva: B=BxA
Deoarece matricele sunt date de tip structurat, operatia de inmultire nu se poate efectua ca in cazul datelor
numerice de tip simplu. De aceea se impune utilizarea unei matrice temporare C, care face ca formula recursiva
sa se scrie sub forma:
C=BxA si B=C.
6. Sa se scrie programul care realizeaza determinarea pozitiei primei aparitii a unei valori date intr-o matrice
dreptunghiulara A(mxn).
Indicatii
- Matricea se va parcurge lexicografic.
- Cand se identifica valoarea cautata se afiseaza pozitia (linia si coloana) si se abandoneaza parcurgerea
matricei. Iesirea fortata din structurile repetitive se realizeza cu ajutorul unei variabile care ia valoarea 1 daca
valoarea data a fost regasita printre elementele matrice sau 0 in caz contrar. Testarea suplimentara a variabilei,
alaturi de conditia de sfarsit de linii (i>m) si sfarsit de coloane (j>n), transforma structurile repetitive cu
numarator in doua structuri WHILE-DO imbricate.
- In final, daca variabila este egala cu 0, inseamna ca valoarea nu a fost regasita si se afiseaza un mesaj
corespunzator
Obs: In C, indicii pleaca de la 0.
Exemplu
Dati numarul de linii: 2
Dati numarul de coloane: 3
3 2 1
5 6 8
Valoarea cautata se afla pe linia 0 si coloana 1
Rezolvare
INTREG n,m,i,j,pozl, pozc, gas, val, a[100][100]; { j=0;
SCRIE(“Nr. de linii si de coloane:”); WHILE ((j<n) && (!gas)) DO
CITESTE (m,n) ; { IF (a[i][j]= =val) THEN
7. Fie o matrice de dimensiuni mxn, reprezentand consumurile de energie pentru fabricarea a m produse intr-
o perioada de n zile. Sa se scrie programul C care afiseaza produsele care au inregistrat consumuri constante
pe intreaga perioada.
Exemplu
Dati nr. de produse (linii):3
Dati nr. de zile (coloane):3
Dati elementele primei matrice:
mat[0][0]=1
mat[0][1]=2
mat[0][2]=3
mat[1][0]=4
mat[1][1]=4
mat[1][2]=4
mat[2][0]=8
mat[2][1]=8
mat[2][2]=8
Indicatie:
- se verifica ipoteza că toate consumurile inregistrate in cele n zile pentru acelasi produs sunt egale cu
valoarea inregistrata in prima zi de consum. Produsele care respecta ipoteza sunt copiate intr-un vector. La final
acest vector este afisat pe ecran.