110 likes | 624 Views
PROIECT LA INFORMATICA Tablouri bidimrnsionale Matrici. Ce este informatica?. Termenul informatică desemnează știința procesării sistematice a informației , în special a procesării cu ajutorul calculatoarelor. Termenul englez corespunzător este Computer Science (stiința calculatoarelor).
E N D
PROIECT LA INFORMATICA • Tablouribidimrnsionale • Matrici
Ce este informatica? Termenul informatică desemnează știința procesării sistematice a informației, în special a procesării cu ajutorul calculatoarelor. Termenul englez corespunzător este Computer Science (stiința calculatoarelor). Istoric, informatica s-a dezvoltat ca știință din matematică, în timp ce dezvoltarea primelor calulatoare își are originea în electrotehnică și telecomunicații. De aceea, calculatorul reprezintă doar dispozitivul pe care sunt implementate conceptelor teoretice. Informaticianul olandez Edsger Dijkstra afirma: "În informatică ai de-a face cu calculatorul, așa cum ai în astronomie cu telescopul".
Tablouribidimensionale ● structuri de date alocate static care permit memorareamaimultorelemente de acelasi tip identificateprinintermediul a doiindici ,primuldintreeireprzintaliniaiarcelalaltcoloana. i=indiceleliniei j=inficelecoloanei ! Tabloul de memoriefiind o structura de date statica,ladeclararealui I se aloca o zonafixa de memorie.Lungimetabloului de memoriereprezintanumarul de elementeale tabloului .La declarareatablouluiesteposibilsa nu se cunoascanumarul de elemente care vor fi prelucrate al fiecareexecutie a programului.Inprelucrareatabloului se folosescdoualungimi:lungimeafizicasilungimealogica.
Citirea: cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; Afisarea: For(i=1;i<=n;i++) {for(j=1;j<=m;j++) cout<<a[i][j]; cout<<endl; } ! Oriceprelucrare a unu element din matricepresupunemaiinatiidentificareelementelorsiapoiaplicareaunuialgoritm specific. Identificareaelementelor: ●Daca se stielocul(liniasicoloana) ●Daca se stielina(l): for(j=1;j<=m;j++) <prelucram a[l][j]> ●Daca se siecoloana: for(i=1;i<=n;i++) <prelucram a[i][c]>
Matriceapatratica O matrice se numestepatraticadacanumarul de liniiesteegal cu numarul de coloane. cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>a[i][j]; Intr-o matricepatratica se definescdouadiagonale: Diagonalaprincipala(DP): ●Pe DP i=j(elementele pot fi accesate direct folosind o singurarepetitie) for(i=1;i<=n;i++) <prelucram a[i][i]> ●Deasupra DP i<j for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) <prelucram a[i][j]> ●Sub DP i>j For(i=1;i<=n;i++) For(j=1;j<=i-1;j++) <prelucram a[i][j]>
Diagonalasecundara(DS) ●Pe DS i+j=n+1 for(i=1;i<=n;i++) <prelucram a[i][n+1-i]> ●Deasupra DS i+j<n+1 for(i=1;i<=n-1;i++) for(j=1;j<=n-1;j++) <prelucram a[i][j]> ●Sub DS i+j>n+1 for(i=2;i<=n;i++) for(j=n+2;j<=n;j++) <prelucram a[i][j]>
Problema 1: Se da un numar n ,reprezentandnumarul de liniisi de coloanedintr-o matricepatratica.Completatimatriceaastfel: n=41 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 #include <iostream.h> void main() {int a[100][100],x,n,j,i; cin>>n; x=1; for(i=1;i<=n;i++) if(i%2==1) {for(j=1;j<=n;j++) a[i][j]=x; x++; } else for(j=n;j>=1;j-{a[i][j]=x; x++; } for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]; cout<<endl; } cin>>n; }
Problema 2: Se citeste o matrice de la tastatura n si m siapoi o matrice n*m.Sa se determine minimulsimaximul din matrice. #include<iostream.h> void main() {int a[100][100],n,m,max,min,I,j; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; max=-32000; min=32000; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {if(a[i][j]>max) Max=a[i][j]; If(a[i][j]<min) Min=a[i][j]; } Cout<<min<<‘’ ‘’<<max; Cin>>n; }
Problema 3: Determinaticelmai mare minim dintreliniileuneimatricicitie de la tastatura.Afisatiaceastavaloareprecumsicoloana. • #include<iostream.h> • void main() • {int a[100][100],n,m,max,min,I,j; • cin>>n>>m; • for(i=1;i<=n;i++) • for(j=1;j<=m;j++) • cin>>a[i][j]; • max=-32000; • for(j=1;j<=m;j++) • {min=32000; • for(i=1;i<=n;i++) • if(a[i][j]<min) • min=a[i][j]; • if(min>max) • {max=min; • X=j; • } • } • cout<<max<<‘’ ‘’<<x; • cout<<endl;