Professional Documents
Culture Documents
PORTOFOLIU
BAZELE PROGRAMARII
Georgescu Cristian
CSIE, An I, Seria B, Grupa 1008
1. S se scrie un program care compar diagonala secundar a
unei matrici cu diagonala principal.
INTREG n, i, j, t;
REAL a[10][10];
t=1;
CITESTE (n);
DO-FOR i=1,n,1
DO-FOR j=1,n,1
CITESTE (a[i][j]);
ENDDO
ENDDO
DO-FOR i=1,n,1
IF a[i][i]!=a[i][n+1-i]
THEN t=0;
ENDIF
ENDDO
IF t=1
THEN SCRIE (Diagonala principala e identica cu diagonala secundara);
ELSE SCRIE (Diagonala principala nu e identica cu diagonala
secundara);
ENDIF
Citim matricea, apoi verificm fiecare element de pe diagolana
principal (a[i][i]), dac este diferit de cel de pe diagonala secundar (a[i]
[n+1-i]), folosind functia if. Daca adevarat, t ia valoarea 0 (fals) se
afieaz Diagonala principala nu e identica cu diagonala secundara, iar
daca t este 1 (adevarat), se afieaz Diagonala principala e identica cu
diagonala secundara.
Verificare: n=2, a[1][1]=1, a[1][2]=3, a[2][1]=2, a[2][2]=5
a[1][1]!=a[1][2], t=0
Scrie Diagonala principala nu e identica cu
diagonala secundara
2. S se verifice dac trei numere introduse de la tastatur
coincid cu 1,2,3. Dac nu, s se afieze un mesaj corespunztor.
INTREG a,b,c;
CITESTE (a);
CITESTE (b);
CITESTE (c);
IF a+b+c=6 & a*b*c=6
THEN SCRIE (Numerele coincid cu 1,2,3);
ELSE SCRIE (Numerele nu coincid cu 1,2,3);
ENDIF
Citim cele trei numere, apoi verificm dac ele coincid cu 1,2,3
folosind funcia if: dac suma lor este egal cu 6 si produsul lor este egal
ENDDO
DO-FOR i=1,n,1;
CITESTE (b[i]);
ENDDO
m=0;
DO-FOR i=1;n;1;
IF a[i]*b[i-1]=a[i-1]*b[i]
THEN m=m+1;
ENDIF
ENDDO
IF m=n THEN SCRIE (Cei doi vectori sunt proportionali);
ELSE SCRIE (Cei doi vectori nu sunt proportionali);
ENDIF
Dac avem 2 vectori: a = ( a[1] , ..., a[n])
b = ( b[1] , ..., b[n[), iar ntre elementele sale se
poate stabili relaia a[i]*b[i-1]==a[i-1]*b[i], atunci cei doi vectori sunt
proporionali.
9. S se realizeze un program care calculeaz suma elementelor
de deasupra diagonalei principale a unei matrici.
INTREG a[10][10],i,j,m,n,s;
SCRIE (Dati numarul de linii:);
CITESTE (n);
DO-FOR i=1,n,1;
DO-FOR j=1,n,1;
CITESTE (a[i][j]);
ENDDO
ENDDO
s=0;
DO-FOR i=1,n,1;
DO-FOR j=i+1,n,1;
s=s+a[i][j];
ENDDO
ENDDO
SCRIE (Suma elementelor de deasupra diagonalei principale:, s);
Utiliznd structura FOR, se citesc doar elementele de deasupra
diagonalei principale si se returneaz suma s.
10. S se sorteze elementele unui vector prin metoda seleciei.
INTREG i,n,poz,k;
REAL x[100],aux;
SCRIE (Introduceti dimensiunea vectorului:)
CITESTE (n);
DO-FOR i=0,n-1,1;
CITESTE (x[i]);
ENDDO
DO-FOR i=0,n-2,1;
DO-FOR j=i+1,n-1,1;
IF x[i]>x[j] THEN aux=x[i];
x[i]=x[j];
x[j]=aux;
ENDIF
ENDDO
ENDDO
SCRIE (Vectorul sortat este:)
DO-FOR i=0,n-1,1;
SCRIE (x[i]);
ENDDO
Se determina elementul minim din vector si se aduce pe prima
pozitie, apoi se determin minimul din vectorul rmas si se aduce pe a
doua poziie i aa mai departe.Se determin minimul comparnd fiecare
element cu cele care il succed, interschimbndu-le.