Sunteți pe pagina 1din 22

1. Sa se determine elementul maxim din triunghiul de sub diagonalele unei matrice patratice(exclusive diagonalele).

Rezolvare: Solutia aceste probleme consta in parcurgerea tuturor elementelor aflate sub diagonale si retinerea in variabila max a valorii maxime dintre acestea. citeste m do for i=0 m!1 1 do for "=0 m!1 1 citeste a#i$#"$ enddo enddo max=a#m!1$#1$ do for i=m%&'1 m!1 1 do for "=m!i!1 i!1 1 if a#i$#"$(max then max=a#i$#"$ endif enddo enddo afiseaza max )include*stdio.h( )include*conio.h( void main() + clrscr(), float a#10$#10$ max, int m " i, printf(-m=-), scanf(-.d- /m), for(i=0,i*m,i'') for("=0,"*m,"'') +printf(-a#.d$#.d$=- i "), scanf(-.f- /a#i$#"$), 0 max=a#m!1$#1$, for(i=m%&'1,i*m,i'') for("=m!i!1,"*i,"'') if(a#i$#"$(max) max=a#i$#"$, printf(-maximul este:.f- max), getch(), 0 &. Sa se determine inmultirea dintre un vector si o matrice.

Rezolvare: 1entru a se putea efectua inmultirea dintre vectorul 2 si matricea 3 este obligatoriu ca numarul de elemente ale vectorului 2 sa fie egal cu numarul de linii ale matricei 3. Rezultatul inmultirii va fi un vector 4 cu m elemente. citeste m n do for i=0 n!1 1 citeste x#i$ enddo do for i=0 n!1 1 do for "=0 m!1 1 citeste a#i$#"$ enddo enddo do for "=0 m!1 1 5#"$=0 do for 6=0 n!1 1 5#"$=5#"$'x#6$7a#6$#"$ enddo enddo do for i=0 m!1 1 scrie 5#i$ enddo )include*conio.h( )include*stdio.h( void main() + clrscr(), int n m " i 6, int x#10$ a#10$#10$ 5#10$, printf(-numarul de elemente ale vectorului= -), scanf(-.d- /n), for("=0,"*n,"'') + printf(-x#.d$=- "), scanf(-.d- /x#"$), 0 printf(-numarul de coloane ale matricei= -), scanf(-.d- /m), for(i=0,i*n,i'') for("=0,"*m,"'') +printf(-a#.d$#.d$=- i "), scanf(-.d- /a#i$#"$), 0 for("=0,"*m,"'') +5#"$=0, for(6=0,6*n,6'') 5#"$=5#"$'x#6$7a#6$#"$, 0 for("=0,"*m,"'') printf(- .d - 5#"$), getch(), 0

8. 9eterminati elementul maxim de pe fiecare linie si elemntul maxim dintr!o matrice dreptunghiulara de dimensiuni m 2 n. Rezolvare: :ormam cu elementele maxime de pe fiecare linie un vector max de dimensiune m apoi determinam elementul cel mai mare al vectorului max. citeste m n do for i=0 n!1 1 do for "=0 m!1 1 citeste a#i$#"$ enddo enddo do for i=0 m!1 1 max#i$=a#i$#0$ do for "=0 n!1 1 if max#i$*a#i$#"$ then max#i$=a#i$#"$ endif enddo enddo maxim=max#0$ do for i=1 m!1 1 if maxim*max#i$ then maxim=max#i$ endif enddo do for i=0 m!1 1 afiseaza max#i$ enddo afiseaza maxim )include*stdio.h( )include*conio.h( void main() + clrscr(), int n m " i maxim, int a#100$#100$ max#100$, printf(-m=-), scanf(-.d- /m), printf(-n=-), scanf(-.d- /n), for(i=0,i*m,i'') for("=0,"*n,"'') +printf(-a#.d$#.d$=- i "), scanf(-.d- /a#i$#"$), 0 for(i=0,i*m,i'') +max#i$=a#i$#0$, for("=0,"*n,"'') if(max#i$*a#i$#"$) max#i$=a#i$#"$, 0 maxim=max#0$,

for(i=1,i*m,i'') if(maxim*max#i$) maxim=max#i$, for(i=0,i*m,i'') printf(-;n <aximul de pe linia .d este = .d- i'1 max#i$), printf(-maximul este: .d- maxim), getch(), 0 =. 9andu!se un vector de maxim 100 de elemente sa se elimine dublurile realizand operatia de compactare. Rezolvare: Se parcurge vectorul de la primul pana la penultimul element si se compara elementul curent cu toate elementele situate in dreapta sa. 9aca elementul mai este gasit se realizeaza deplasarea valorilor cu o pozitie spre stanga si se decrementeaza numarul total. citeste n do for i=0 n!1 1 citeste x#i$ enddo do for i=0 n!1 1 do for "=i'1 n!1 1 if x#i$=x#"$ then do for 6=" n!& 1 x#6$=x#6'1$ n=n!1 "="!1 enddo endif enddo enddo do for i=0 n!1 1 afiseaza x#i$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n " i 6, int x#100$, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-x#.d$=- i), scanf(-.d- /x#i$), 0 for(i=0,i*n!1,i'') for("=i'1,"*n,"'') if(x#i$==x#"$)

+ for(6=",6*n!1,6'') x#6$=x#6'1$, n!!,"!!,0 printf(-vectorul rezultat este: ;n-), for(i=0,i*n,i'') printf(-.d- x#i$), getch(), 0 >. Sa se scrie un program care realizeaza operatia de intersectie dintre doua multimi date. Rezolvare: Se obtine o multime cu elementele comune multimilor initiale. 9aca intersectia este vida atunci cardinalul multimii rezultat este 0. Se parcurge una dintre multimi intr!o structura repetitiva si se verifica existenta fiecarui element in cealalta multime. 9aca se gaseste elementul acesta va fi copiat in multimea rezultat. citeste m n do for i=0 m!1 1 citeste x#i$ enddo do for i=0 n!1 1 citeste 5#i$ enddo p=0 do for i=0 m!1 1 "=0 ?hile "*n and x#i$*(5#"$ do "="'1 end?hile if "*n then z#p$=x#i$ p=p'1 endif enddo if p*(0 then do for i=0 p!1 1 afiseaza z#p$ enddo else afiseaza @intersectia celor doua multimi este vidaA endif )include*stdio.h( )include*conio.h( void main() + clrscr(), int n m " i 6 p, float x#100$ 5#100$ z#100$, printf(-n=-), scanf(-.d- /n), printf(-m=-), scanf(-.d- /m), for(i=0,i*m,i'')

+printf(-x#.d$=- i), scanf(-.f- /x#i$), 0 for(i=0,i*n,i'') +printf(-5#.d$=- i), scanf(-.f- /5#i$), 0 p=0, for(i=0,i*m,i'') +"=0, ?hile("*n // x#i$B=5#"$) "'', if("*n) z#p''$=x#i$, 0 if(p) +printf(-intersectia celor doua multimi: ;n-), for(i=0,i*p,i'') printf(-.>.&f- z#i$), 0 else printf(-intersectia este multimea vida-), getch(), 0 C. Scrieti programul care determina toate numerele prime dintr!un vector. Rezolvare: Donditia ca un numar natural n sa fie prim este ca acesta sa nu se divida cu niciun alt numar din intervalul cuprins intre 1 si parte intreaga din radicalul numarului n. citeste n do for i=0 m!1 1 citeste x#i$ enddo 6=0 do for i=0 n!1 1 if x#i$*(0 and x#i$*(1 then a= xi "=& ?hile "*=a and x#i$ mod "*(0 do "="!1 end?hile if "(a then p#6$=x#i$, p=p'1 endif endif if 6=0 then afiseaza @vectorul nu contine niciun numar primA else do for i=0 6!1 1 afiseaza p#i$ enddo endif )include*stdio.h( )include*conio.h(

)include*math.h( void main() + clrscr(), unsigned int n " i 6, unsigned int x#100$ p#100$ a, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-x#.d$=- i), scanf(-.u- /x#i$), 0 6=0, for(i=0,i*n,i'') if(x#i$B=0 // x#i$B=1) + a=(int)sErt(x#i$), "=&, ?hile("*=a // x#i$."B=0) "'', if("(a) p#6''$=x#i$, 0 if(6==0) printf(-vectorul nu contine niciun numar prim ;n-), else +printf(-numerele prime din vector sunt: ;n-), for(i=0,i*6,i'') printf(- .u - p#i$), 0 getch(), 0 F. 9eterminati pozitia primei aparitii a unei valori date intr!o matrice dreptunghiulara. Rezolvare: 1arcurgem matricea in ordine lexicografica si in momentul in care se gaseste valoarea cautata se afiseaza pozitia si se abandoneaza parcurgerea matricei. 1entru a intrerupe structura repetitiva ne folosim de o variabila care ia valoarea 1 daca valoarea cautata este gasita si valoarea 0 in caz contrar. citeste m n do for i=0 m!1 1 do for "=0 n!1 1 citeste a#i$#"$ enddo enddo citeste b o6=0 i=0 ?hile i*m and o6=0 do "=0 ?hile "*n do if a#i$#"$=b then o6=1 lin=i col="

endif "="'1 end?hile i=i'1 end?hile if o6=1 then afiseaza lin col else afiseaza @valoarea introdusa nu se afla in matriceA endif )include*stdio.h( )include*conio.h( void main() + clrscr(), int n m " i lin col b o6, int a#100$#100$, printf(-m=-), scanf(-.d- /m), printf(-n=-), scanf(-.d- /n), for(i=0,i*m,i'') for("=0,"*n,"'') +printf(-a#.d$#.d$=- i "), scanf(-.d- /a#i$#"$), 0 printf(-valoarea cautata este: -), scanf(-.d- /b), for(i=0,i*m,i'') + for("=0,"*n,"'') printf(- .d - a#i$#"$), printf(-;n-), 0 o6=0, i=0, ?hile(i*m // o6==0) +"=0, ?hile("*n) +if(a#i$#"$==b) +o6=1, lin=i, col=",0 "="'1,0 i=i'1,0 if(o6) printf(-;n valoarea cautata se afla pe linia .d si coloana .d- lin col), else printf(@;n valoarea introdusa nu se afla printre elementele matriceiA), getch(), 0 G. Sa se calculeze produsul dintre cel mai mare si cel mai mic element de pe fiecare linie a unei matrice. Rezolvare: 1arcurgem matricea pe fiecare linie si retinem in cate o variabila elementul minim respectiv maxim. 1rodusul dintre cele doua valori il vom salva intr!un vector.

citeste m n do for i=0 m!1 1 do for "=0 n!1 1 citeste a#i$#"$ enddo enddo do for i=0 m!1 1 v#i$=0 enddo do for i=0 m!1 1 min=a#i$#0$ max=a#i$#0$ do for "=0 n!1 1 if a#i$#"$(max then max=a#i$#"$ endif if a#i$#"$*min then min=a#i$#"$ endif enddo v#i$=min7max enddo do for i=0 m!1 1 afiseaza v#i$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n m " i, float a#10$#10$ v#10$ min max, printf(-m=-), scanf(-.d- /m), printf(-n=-), scanf(-.d- /n), for(i=0,i*m,i'') v#i$=0.0, for(i=0,i*m,i'') for("=0,"*n,"'') +printf(-a#.d$#.d$=- i "), scanf(-.f- /a#i$#"$), 0 for(i=0,i*m,i'') + min=a#i$#0$, max=a#i$#0$, for("=0,"*n,"'') +if(a#i$#"$(max) max=a#i$#"$, if(a#i$#"$*min) min=a#i$#"$, 0 v#i$=min7max,0 for(i=0,i*n,i'') printf(-v#.d$=.f - i v#i$),

getch(), 0 H. Dalculati valoarea unui polinom intr!un punct dat. Doeficientii polinomului sunt numere reale si se introduc de la tastatura. Rezolvare: Retinem coeficientii polinomului intr!un vector care pentru gradul n al polinomului va contine n'1 elemente. citeste n do for i=0 m!1 1 citeste c#i$ enddo citeste val p=1 do for i=0 n 1 p=p7x val=val'c#i$7p enddo afiseaza val )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i, float c#100$ x val, printf(-n=-), scanf(-.d- /n), printf(-coeficientii polinomului: ;n-), for(i=0,i*=n,i'') +printf(-coeficientul lui x la puterea .d= - i), scanf(-.f- /c#i$), 0 printf(-punctul pentru care se va calcula valoarea polinomului:-), scanf(-.f- /x), float p=1, for(i=0,i*=n,i'') +p7=x, val'=c#i$7p,0 printf(-valoarea polinomului in punctul .>.&f este .>.&f- x val), getch(), 0

10. 9eterminati pozitia ultimei aparitii a unei valori date intr!un vector neordonat de dimensiune n. Rezolvare:

1arcurgem secvential vectorul de la primul la ultimul element retinand intr!o valoare poz valoarea curenta a indicelui in cazul in care elementul este egal cu valoarea cautata. citeste n do for i=0 n!1 1 citeste v#i$ enddo citeste val poz=!1 do for i=0 n!1 1 if v#i$=val then poz=i endif enddo if poz=!1 then afiseaza @valoare negasitaA else afiseaza @pozitia este @ poz endif )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i poz, float v#10$ val, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-v#.d$= - i), scanf(-.f- /v#i$), 0 printf(-valoarea cautata: -), scanf(-.f- /val), poz=!1, for(i=0,i*n,i'') if(v#i$==val) poz=i, if(poz==!1) printf(-valoare negasita-), else printf(-pozitia este:.d - poz), getch(), 0 11. Scrieti programul care calculeaza produsul vectorial dintre doi vectori de dimensiune n. Rezolvare: 9aca vectorii 2 si 4 au aceeasi dimensiune n atunci produsul lor vectorial va fi tot un vector I de dimensiune n. 9aca cei doi vectori nu au aceeasi lungime produsul lor vectorial nu se poate calcula.

citeste n do for i=0 n!1 1 citeste x#i$ enddo do for i=0 n!1 1 citeste 5#i$ enddo do for i=0 n!1 1 z#i$=x#i$75#i$ enddo do for i=0 n!1 1 afiseaza z#i$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i, float x#100$ 5#100$ z#100$, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-x#.d$= - i), scanf(-.f- /x#i$), 0 for(i=0,i*n,i'') +printf(-5#.d$= - i), scanf(-.f- /5#i$), 0 for(i=0,i*n,i'') z#i$=x#i$75#i$, printf(-produsul vectorial este: ;n-), for(i=0,i*n,i'') printf(-.C.&f - z#i$), getch(), 0 1&. Scrieti un program care insereaza un element dat intr!un vector ordonat de dimensiune n. 9upa inserare vectorul va ramane ordonat. Rezolvare: 1arcurgem vectorul atata timp cat valoarea curenta din vectorul x este mai mica decat valoarea data si mai sunt elemente in vector. Jesind din structura repetitiva indicele curent indica pozitia din vector unde trebuie inserata valoarea data. Jnserarea se realizeaza glisand toate valorile din dreapta cu o pozitie. citeste n do for i=0 n!1 1 citeste x#i$ enddo

citeste val i=0 ?hile i*n and x#i$*val do i=i'1 end?hile do for 6=n i'1 !1 x#6$=x#6!1$ enddo x#6$=val n=n'1 do for i=0 n!1 1 afiseaza x#i$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i 6, float x#100$ val, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-x#.d$= - i), scanf(-.f- /x#i$), 0 printf(-introduceti valoarea pe care doriti s!o inserati: -), scanf(-.f - /val ) , i=0, ?hile(i*n // x#i$*val) i'', for(6=n,6(i,6!!) x#6$=x#6!1$, x#6$=val, n'', printf(-vectorul rezultat este: ;n-), for(i=0,i*n,i'') printf(-.=.&f - x#i$), getch(), 0 18. Scrieti programul care determina elementul maxim dintr!un vector de dimensiune n si a pozitiei primei si ultimei sale aparitii. Rezolvare: Retinem in doua variabile pp si up prima respectiv a doua pozitie a maximului din vector. Kariabila pp se modifica daca un element este strict mai mare decat max iar variabila up se modifica daca un element este mai mare sau egal ca max.

citeste n do for i=0 n!1 1 citeste x#i$ enddo max=x#0$ pp=up=0 do for i=0 n!1 1 if x#i$(=max then if x#i$(max then pp=i endif max=x#i$ up=i endif enddo afiseaza max pp up )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i pp up, float x#100$ max, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-x#.d$= - i), scanf(-.f- /x#i$), 0 max=x#0$, pp=up=0, for(i=0,i*n,i'') if(x#i$(=max) + if(x#i$(max) pp=i, max=x#i$, up=i,0 printf(-maximul este .>.&f. ;n 1rima aparitie este pe pozitia .d ultima aparitie este pe pozitia .d;n- max pp up), getch(), 0 1=. Kerificati daca matricea patratica 3 de ordinul n este un patrat magic. Rezolvare: L matrice patratica este 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. citeste n do for i=0 n!1 1 do for "=0 n!1 1 citeste a#i$#"$ enddo

enddo s1=s&=0 do for i=0 n!1 1 s1=s1'a#i$#i$ s&=s&'a#i$#n!i!1$ enddo if s1=s& then do for i=0 n!1 1 sl#i$=0 do for "=0 n!1 1 sl#i$=sl#i$'a#i$#"$ enddo enddo do for i=0 n!1 1 sc#i$=0 do for "=0 n!1 1 sc#i$=sc#i$'a#i$#"$ enddo enddo o6=1 do for i=0 n!1 1 if sl#i$B=s1 or sc#i$B=s1 then o6=0 if o6=0 then afiseaza @matricea nu este un patrat magicA else afiseaza @matricea este un patrat magicA endif else afiseaza @matricea nu este un patrat magicA endif

)include*stdio.h( )include*conio.h( void main() + clrscr(), int n i " s1 s& o6, int a#10$#10$ sl#10$ sc#10$, %% sl#10$ si sc#10$ reprezinta sumele corespunzatoare printf(-n=-), scanf(-.d- /n), %% elementelor de pe linii respective coloane for(i=0,i*n,i'') for("=0,"*n,"'') +printf(-a#.d$#.d$= - i "), scanf(-.d- /a#i$#"$), 0 s1=s&=0, %%s1 si s& sunt sumele elementelor situate pe diagonale for(i=0,i*n,i'') +s1=s1'a#i$#i$, s&=s&'a#i$#n!i!1$, 0 if(s1==s&) + for(i=0,i*n,i'') +sl#i$=0, for("=0,"*n,"'') sl#i$'=a#i$#"$,0 for(i=0,i*n,i'') +sc#i$=0,

for("=0,"*n,"'') sc#i$=sc#i$'a#i$#"$, 0 o6=1, for(i=0,i*n,i'') if(sl#i$B=s1 MM sc#i$B=s1) o6=0, if(o6==0) printf(-matricea nu este un patrat magic.-), else printf(-<atricea este un patrat magic-), 0 else printf(-<atricea nu este un patrat magic-), getch(), 0

1>. :ie un masiv tridimensional cu maxim > plane fiecare plan avand maxim10 linii si 10 coloane. Sa se calculeze suma elementelor fiecarui plan al masivului. Rezolvare: citeste p n m do for l=0 p!1 1 do for i=0 n!1 1 do for "=0 m!1 1 citeste a#l$#i$#"$ enddo enddo enddo do for l=0 p!1 1 s#l$=0 do for i=0 n!1 1 do for "=0 m!1 1 s#l$=s#l$'a#l$#i$#"$ enddo enddo enddo do for l=0 p!1 1 afiseaza s#l$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n m p l i ", int a#>$#10$#10$ s#>$, printf(-p=-), scanf(-.d- /p), printf(-n=-), scanf(-.d- /n), printf(-m=-), scanf(-.d- /m),

for(l=0,l*p,l'') for(i=0,i*n,i'') for("=0,"*m,"'') +printf(-a#.d$#.d$#.d$= - l i "), scanf(-.d- /a#l$#i$#"$), 0 for(l=0,l*p,l'') +s#l$=0, for(i=0,i*n,i'') for("=0,"*m,"'') s#l$'=a#l$#i$#"$, 0 for(l=0,l*p,l'') printf(-;n suma elementelor din planul .d este .d- l'1 s#l$), getch(), 0 1C. Scrieti programul care insereaza intre fiecare doua valori consecutive ale unui vector de dimensiune n media aritmetica a acestora. Rezolvare: citeste n do for i=0 n!1 1 citeste x#i$ enddo i=0 ?hile i*n!1 do ma=(v#i$'v#i'1$)%& do for 6=n i'1 !1 v#6'1$=v#6$ enddo n=n'1 v#i'1$=ma i=i'& end?hile do for i=0 n!1 1 afiseaza v#i$ enddo )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i " 6, float v#100$, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-v#.d$= - i), scanf(-.f- /v#i$), 0 6=n, i=0,

?hile(i*6!1) +for("=6,"(i'1,"!!) v#"$=v#"!1$, v#"$=(v#i$'v#i'1$)%&, i'=&,6'',0 printf(-vectorul rezultat este: ;n-), for(i=0,i*6,i'') printf(-.>.&f- v#i$), getch(), 0 Sau )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i " 6, float v#100$ ma, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-v#.d$= - i), scanf(-.f- /v#i$), 0 i=0, ?hile(i*n!1) +ma=(v#i$'v#i'1$)%&, for(6=n,6(=i'1,6!!) v#6'1$=v#6$, n=n'1, v#i'1$=ma, i=i'&, 0 printf(-vectorul rezultat este: ;n-), for(i=0,i*n,i'') printf(-.>.&f- v#i$), getch(), 0 1F. Sa se scrie programul pentru calculul sumei elementelor de rang impar ale unui vector de dimensiune n. Rezolvare: 1arcurgem vectorul cu indicele pornind de la valoarea initiala 1 si crescand cu pasul &. citeste n do for i=0 n!1 1 citeste v#i$ enddo s=0 do for i=1 n!1 &

s=s'v#i$ enddo afiseaza s )include*stdio.h( )include*conio.h( void main() + clrscr(), int n i, float v#10$ s, printf(-n=-), scanf(-.d- /n), for(i=0,i*n,i'') +printf(-v#.d$=- i), scanf(-.f- /v#i$), 0 s=0, for(i=1,i*n,i=i'&) s=s'v#i$, printf(-suma este: .f- s), getch(), 0 1G. Scrieti programul care face interschimbarea elementelor egal departate de capetele unui vector si afisati vectorului obtinut. Rezolvare: :olosim pentru interschimbare secventa: aux=x#i$, x#i$=x#n!i!1$, x#n!i!1$=aux. citeste n do for i=0 n!1 1 citeste x#i$ enddo do for i=0 n%& 1 aux=x#i$ x#i$=x#n!i!1$ x#n!i!1$=aux enddo do for i=0 n!1 1 afiseaza x#i$ enddo )include*stdio.h( )include*conio.h( void main() +clrscr(), int x#>0$ i aux n, printf(-;n lungimea sirului n*>0 este:-), scanf (-.d- /n), printf(-;n vectorul initial este:-), for (i=0,i*n,i'')+

printf(- x#.d$=- i), scanf(-.d- /x#i$),0 for (i=0,i*n%&,i'') +aux=x#i$, x#i$=x#n!i!1$, x#n!i!1$=aux,0 printf(-;n vectorul comutat este:-), for(i=0,i*n,i'') printf(-;n x#.i$=.i- i x#i$), getch(), 0 1H. 9eterminati minimul si maximul dintr!o matrice dreptunghiulara de dimensiuni m x n. Rezolvare: 1arcurgem matricea lexicografic si retinem in variabilele max si min valorea minima respectiv maxima. citeste m n do for i=0 m!1 1 do for "=0 n!1 1 citeste a#i$#"$ enddo enddo min=a#0$#0$ max=a#0$#0$ do for i=0 m!1 1 do for "=0 n!1 1 if max*a#i$#"$ then max=a#i$#"$ endif if min(a#i$#"$ then min=a#i$#"$ endif enddo enddo afiseaza max min )include*stdio.h( )include*conio.h( void main() + clrscr(), int m n i " s max min a#100$#100$, printf(-nr de linii=-), scanf(-.d- /m), printf(-nr de coloane=-), scanf(-.d- /n), for(i=0,i*m,i'') for("=0,"*n,"'')+ printf(-a#.d$#.d$=- i "), scanf(-.d- /a#i$#"$),0 for(i=0,i*m,i'')+ for("=0,"*n,"'')

printf(- .d - a#i$#"$), printf(-;n-),0 max=a#0$#0$, min=a#0$#0$, for (i=0,i*m,i'') for("=0,"*n,"'')+ if(max*a#i$#"$) max=a#i$#"$, if(min(a#i$#"$) min=a#i$#"$,0 printf(-;n <aximul este= .d- max), printf(-;n <inimul este= .d- min), getch(), 0 &0. Kerificati daca o matrice este triunghiulara inferior. Jn caz afirmativ transformati!o intr!o matrice triunghiulara superior. Rezolvare: L matrice este triunghiulara superior daca toate elementele de deasupra diagonalei principale sunt nule. citeste n do for i=0 n!1 1 do for "=0 n!1 1 citeste a#i$#"$ enddo enddo do for i=0 n!1 1 do for "=0 n!1 1 afiseaza a#i$#"$ enddo enddo o6=1 do for i=0 n!& 1 do for "=i'1 n!1 1 if a#i$#"$B=0 then o6=1, endif enddo enddo if o6=1 then do for i=1 n!1 1 do for "=0 i!1 1 aux=a#"$#i$ a#"$#i$=a#i$#"$ a#i$#"$=aux enddo enddo do for i=0 n!1 1 do for "=0 n!1 1 afiseaza a#i$#"$ enddo enddo

else afiseaza @matricea nu este triunghiularaA endif )include*stdio.h( )include*conio.h( void main() +clrscr(), int i " n a#10$#10$ aux, printf(-nr de linii%coloane=-), scanf(-.d- /n), for(i=0,i*n,i'') for("=0,"*n,"'') + printf(- a#.d$#.d$= - i "), scanf(-.d- /a#i$#"$), 0 for(i=0,i*n,i'') + for("=0,"*n,"'') printf (-.=d- a#i$#"$), printf(-;n-),0 int o6=1, for(i=0,i*n!1,i'') for("=i'1,"*n,"'') if (a#i$#"$B=0) o6=0, if (o6==1)+ for (i=1,i*n,i'') for("=0,"*i,"'') + aux=a#"$#i$, a#"$#i$=a#i$#"$, a#i$#"$=aux, 0 printf(-matricea transformata este:;n-), for(i=0,i*n,i'') + for("=0,"*n,"'') printf (-.d- a#i$#"$), printf(-;n-), 0 0 else printf(-<atricea nu este triunghiulara inferior.-), getch(), 0

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