CATEGORII DOCUMENTE |
Adeseori in programe se folosesc grupe mari de date. Gruparea acestora se face in mai multe moduri. Un mod simplu de a grupa datele este de a grupa datele este de a considera date de acelasi tip in asa fel incat grupa respectiva sa formeze o multime ordonata de elemente la care ne referim prin indici. O astfel de grupa se numeste tablou. Unui tablou i se da un nume; tipul comun al elementelor este si tipul tabloului respectiv. De exemplu o multime ordonata de intregi reprezinta un tablou de tip intreg.
In cazul cand elementele care se grupeaza intr-un tablou sunt ele insele tablouri vom avea nevoie de mai multi indici pentru a ne referi la ele; in acest caz avem un tablou multidimensional (n-dimensional, n fiind numarul de indici) altfel - tablou unidimensional.
Exemple simple de tablouri unidimensionale sunt vectorii cu componentele de acelasi tip. O matrice este un tablou bidimensional.
Referirea la elementele unui tablou se face printr-o variabila cu indici. O variabila cu indici se compune din numele tabloului urmat de valorile indicilor fiecare indice fiind reprezentat de o expresie inclusa intre paranteze patrate.
Valoarea inferioara a indicilor este 0, iar cea superioara este (dimensiunea-1). De exemplu daca vect este un tablou cu 10 elemente (de dimensiune 10) atunci ne referim la elementele lui cu ajutorul variabilelor cu indici:
vect[0] primul element
vect[9] ultimul element
Daca mat este o matrice de 3 linii a doua coloane fiecare atunci elementele vor fi referite prin:
mat[0][0] mat[0][1] prima linie
mat[1][0] mat[1][1] a doua linie
mat[2][0] mat[2][1] a treia linie
Un tablou ca orice variabila simpla trebuie declarat inainte de a fi utilizat. Declaratia de tablou in forma cea mai simpla contine tipul comun elementelor sale, numele tabloului si limitele superioare pentru fiecare indice incluse intre paranteze patrate:
tip nume [lim_1][lim_2][lim_n] =
unde tip este tipul de baza al tabloului iar lim_i este limita superioara a celui de al i-lea indice; inseamna ca indicele al i-lea poate lua valorile: 0, 1,, lim_n-1 (lim_n - sunt expresii constante).
La intalnirea unei declaratii de tablou compilatorul aloca o zona de memorie necesara pastrarii valorii elementelor sale.
for(i=0; i<n; i++) cin>>a[i];
for(i=0; i<n; i++) cout<<a[i];
Sa se alcatuiasca un program care sa determine valoarea minima, maxima, suma si media elementelor unui sir de numere reale.
Va fi citit mai intai numarul curent de elemente ale sirului, iar apoi vor fi citite succesiv elementele sirului folosind o variabila intermediara temp.
Pentru determinarea valorii minime si maxime a sirului se initializeaza atat minimul cat si maximul cu prima pozitie din sir, dupa care, succesiv, vor fi comparate elementele sirului cu minimul curent si respectiv cu maximul curent. Daca valoarea comparata a elementului sirului este mai mare decat maximul curent, atunci aceasta valoare devine maximul curent. Similar se petrec lucrurile pentru valoarea minima.
Pentru calculul sumei elementelor sirului, variabila suma se initializeaza cu zero, dupa care fiecare element al sirului se adauga la valoarea curenta a sumei, conform relatiei: suma= suma + a[i], relatie ce poate fi scrisa simplificat astfel: suma+=a[i]. Media aritmetica se calculeaza prin raportarea sumei elementelor la numarul de elemente din sir.
Program 6.
Determinarea valorilor minima si maxima ale unui sir de numere reale.
Determinarea sumei elementelor sirului si a mediei aritmetice a acestora.*/
#include<stdio.h>
#include<conio.h>
void main()
min=a[1];max=a[1];
for(i=2;i<N+1;i++)
suma=0;
for(i=1;i<N+1;i++)
suma+=a[i];
media=float(suma)/N;
printf('Valoarea minima a sirului MIN =%gn',min);
printf('Valoarea maximii a siruJui MAX =%gn',max);
printf('Suma elementelor sirului SUMA =%gn',suma);
printf('Valoarea medie a sirului MED =%gn',media);
N=getche();
#include<iostream.h>
main()
for (i=0;i<n;i++)
p=0;
for (i=0;i<n;i++) p+=a[i]*b[i];
cout<<"Produsul="<<p;
1. Citeste n
2. Pentru i=0,n-1 citeste v[i]
3. m=n, sort=0
4. Cat timp (m>0) si (sort=0)
4.1. sort=1
4.2. Pentru i=0,m-1
daca (v[i]>v[i+1])
4.2.1. sort=0
4.2.2. aux=v[i]
4.2.3. v[i]=v[i+1]
4.2.4. v[i+1]=aux
4.3. m=m-1
5. Pentru i=0,n-1 scrie v[i]
//Sortarea elementelor unui vector
#include<iostream.h>
void main()
m=n;
while((m>0)&&(sort==0))
m--;
}
for(i=0;i<n;i++)
cout<<'nv['<<i<<']= '<<v[i];
Sa se faca rearanjarea liniilor unei matrice astfel incat elementele de pe diagonala principala sa fie elementele de maxim ale fiecarei linii. Se considera ca elementele matricei sunt distincte.
Vom determina mai intai coloanele elementelor de maxim ale fiecarei linii intr-un vector c. Apoi vom verifica daca valorile coloanelor sunt distincte, in caz contrar nu este posibila rearanjarea liniilor conform cerintelor problemei.
Exemplu:: Dimensiunea matricei: 3. Elementele matricei: . O solutie este:
#include<stdio.h>
int c[10],mat1[10][10],mat[10][10],i,j,poz,max1,n;
int maxim(int i) ;
void main()
/* Copierea liniilor cu maximul pe diagonala principala in alta matrice */
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
mat1[c[i]][j]=mat[i][j];
puts('O solutie este: ');
for(i=1;i<=n;i++)
int maxim(int i)
return poz;
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1362
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved