Documente Academic
Documente Profesional
Documente Cultură
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
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 verificăm dacă ele coincid cu 1,2,3
folosind funcţia if: dacă suma lor este egală cu 6 si produsul lor este egal
cu 6, atunci coincid si se afiseaza mesajul corespunzător. Dacă nu, se
afişează următorul mesaj: „Numerele nu coincid cu 1,2,3”.
INTREG n,m,p,i,j;
REAL x[80], y[50], z[50];
SCRIE („Numarul de elemente al primei multimi:”);
CITESTE (m);
DO-FOR i=0,m-1,1;
CITESTE (x[i]);
ENDDO
SCRIE („Numarul de elemente al celei de-a 2-a multimi:”);
CITESTE (n);
DO-FOR i=0,n-1,1;
CITESTE (y[i]);
ENDDO
p=0;
DO-FOR i=0,m-1,1;
j=0;
WHILE j<n & x[i]!=y[j]
DO j=j+1;
ENDWHILE
IF j<n
THEN z[p]=x[i];
p=p+1;
ENDIF
ENDDO
IF p!=0
THEN SCRIE („Intersectia celor 2 multimi:”);
DO-FOR i=0,p-1,1
SCRIE (z[i]);
END DO
ELSE SCRIE („Intersectia este multimea vida”);
ENDIF
INTREG a[10][10],i,j,m,n,min;
SCRIE („Dati nr de linii”);
CITESTE (m);
SCRIE („Dati nr de coloane”);
CITESTE (n);
DO-FOR i=0,m-1,1;
DO-FOR j=0,n-1,1;
CITESTE (a[i][j]);
ENDDO
ENDDO
DO-FOR i=0,m-1,1;
min=a[i][0];
DO-FOR j=1,n-1,1;
IF min>a[i][j] THEN min=a[i][j];
ENDIF
ENDDO
DO-FOR j=0,n-1,1;
a[i][j]=a[i][j]-min;
ENDDO
ENDDO
DO-FOR i=0,m-1,1;
DO-FOR j=0,n-1,1;
SCRIE (a[i][j]);
ENDDO
SCRIE (\n);
ENDDO
i=0, min=1
a[0][0]=0, a[0][1]=2, a[0][2]=5
i=1, min=4
a[1][0]=0, a[1][1]=1, a[1][2]=4
Se afişează noua matrice.
INTREG a[10][10],i,j,m,max;
SCRIE („m=”);
CITESTE (m);
DO-FOR i=0,m-1,1;
DO-FOR j=0,m-1,1;
CITESTE a[i][j];
ENDDO
ENDDO
max=a[0][1];
DO-FOR i=0,(m-1)/2-1,1;
DO-FOR j=i+1,m-2-i,1;
IF a[i][j]>max
THEN max=a[i][j];
ENDIF
ENDDO
ENDO
SCRIE („Maximul este”,max);
INTREG n,i;
REAL u[100],v[100],P;
SCRIE („Introduceti dimensiunea vectorilor, n=”);
CITESTE (n);
SCRIE („Introduceti elementele primului vector”);
DO-FOR i=0,n-1,1;
CITESTE (u[i]);
ENDDO
SCRIE („Introduceti elementele celui de-al doilea vector”);
DO-FOR i=0,n-1,1;
CITESTE (v[i]);
ENDDO
P=0;
DO-FOR i=0,n-1,1;
P=P+u[i]*v[i];
ENDDO
SCRIE („Produsul scalar este:”, P);
Dacă avem vectorii: X = ( x1 , ..., xn)
Y = ( y1 , ..., yn), atunci:
Produsul lor scalar va fi: P = x1 x y1 +...+ xn x yn. Cei doi vectori
trebuie sa aibă aceeaşi lungime pentru a putea calcula produsul lor scalar.
INTREG n,i;
REAL a[100];
SCRIE („Introduceti dimensiunea vectorului:”);
CITESTE (n);
IF n<3 THEN SCRIE („Vectorulul are mai putin de trei elemente”);
ELSE
DO-FOR i=0,n-1,1;
CITESTE (a[i]);
ENDDO
i=1;
WHILE i<n-1 & a[i]=(a[i-1]+a[i+1])/2
DO i++;
ENDWHILE
IF i=n-1 THEN SCRIE („Elementele formeaza o progresie aritmetica”);
ELSE SCRIE („Elementele nu formeaza o progresie aritmetica”);
ENDIF
ENDIF
Vectorul trebuie sa aibă cel puţin trei elemente. Dacă între fiecare 3
termeni consecutivi are loc relaţia a[i] == (a[i-1]+a[i+1])/2), adică
termenul din mijloc este egal cu jumătate din suma termenilor precedent
si următor, atunci elementele formează o progresie aritmetică.
INTREG a[10],b[10],i,n,m;
SCRIE („Dati dimensiunea vectorului:”);
CITESTE (n);
DO-FOR i=1,n,1;
CITESTE (a[i]);
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
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);
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