Documente Academic
Documente Profesional
Documente Cultură
PROGRAMAREA STRUCTURATĂ
• Operații posibile
• Accesul la elemente
• Inițializarea tabloului
• Declararea tabloului
• Definiție
• Introducere
Tablouri unidimensionale (vectori)
Tablouri unidimensionale
!
Nume tablou – identificator, precizează numele dat tabloului
Declararea tablourilor
Inițializarea tablourilor
Operații posibile
Sume în tablou
#include<iostream.h>
int main()
• Variabila “sum” este inițializată cu 0 { int vec[99], i, n, sum=0;
• În repetiția do-while, se citește numărul de elemente “n”
do { cout<<"\nNr. elemente = ";
până când acesea este mai mic ca 99 cin>>n; }
• Simultan cu citirea elementelor vectorului (în repetiția while (n>99);
“for”) suma se incrementează cu valoarea elementului de for ( i=0;i<n;i++)
vector citit adică altfel scris : suma = suma + vec[i] { cout<<"\nElementul = ";
• La terminarea repetiției, suma elementelor citite este cin>>vec[i];
afișată sum+=vec[i]; }
cout<<"\nSuma elementelor = "<<sum;
}
Tablouri unidimensionale
#include<iostream.h>
Numărarea unor elemente
int main()
{ int vec[99], i, n, par=0;
• Variabila “par” este inițializată cu 0. Ea va număra
câte elemente sunt pare do { cout<<"\nNr. elemente = ";
• În repetiția do-while, se citește numărul de elemente cin>>n; }
“n” până când acesta este mai mic ca 99 while (n>99);
for ( i=0;i<n;i++)
• După memorarea elementelor, parcurgem vectorul (cu
{ cout<<"\nElementul = ";
repetiția“for”) și comparăm pentru fiecare element dacă cin>>vec[i]; }
restul împărțirii lui la 2 este 0. (vec[i] % 2 == 0). for (i=0; i<n; i++)
• Dacă da, (restul = 0) atunci înseamnă că elementul if (vec[i]%2 == 0) par++;
este par și contorul “par” crește cu o unitate. cout<<"\nElem. pare = "<<par;
• Număr impare = total – par cout<<"Elem. impare = "<<n-par;
}
Tablouri unidimensionale
Determinare min, max #include<iostream.h>
int main()
{ int i, n, max, min;
cout<<"\nNr. elemente = ";
• Variabilele “min” și “max” sunt inițializate cu valoarea cin>>n;
primului element de vector “vec[0]”. int vec[n];
• După memorarea elementelor, parcurgem vectorul (cu for ( i=0; i<n; i++) {
repetiția“for”) cout<<"\nElementul = "
• Comparăm pentru fiecare element dacă este mai mic ca cin>>vec[i];
}
“min”. Dacă da, atunci acesta devine “min” min=vec[i]) max = min = vec[0];
• Comparăm și dacă este mai mare ca “max”. Dacă dacă da, for (i=0; i<n; i++)
acestuia i se atribuie valoarea lui “max” (max=vec[i]). { if (vec[i]>max) max = vec[i];
• La terminarea parcurgerii, valorile “min” și “max” sunt if (vec[i]<min) min = vec[i]; }
afișate cout<<"\nElement max = "<<max;
cout<<"\nElement min = "<<min;
}
Tablouri unidimensionale
Ștergere element din poz. k #include<iostream.h>
int main()
{ int vec[9]={1,2,3,4,5,6,7,8,9};
int i=0, capat, k;
• Vectorul este afișat folosind instrucțiunea “while” în mod while (vec[i]!=NULL)
repetat, atâta timp cât elementul de afișat este diferit de NULL { cout<<vec[i]<<" ";
• Variabila “capat” reține lungimea vectorului inițial, fiind “i” i++; }
• Elementul se șterge de pe poziția k capat=i;
• Fiecare element, începând de la poziția k, până la “capat” ia cout<<"Pozitia din care stergem = ";
valoarea următorului element : vec[i]=vec[i+1] cin>>k;
• Prin suprascriere, elementele de la capăt până pe poziția k for (i=k; i<capat; i++) vec[i]=vec[i+1];
sunt deplasate spre stânga. capat--;
• Lungimea vectorului scade cu 1 (capat--) for (i=0; i<capat; i++)
cout<<“ ”<<vec[i] ;
}
Tablouri unidimensionale
#include<iostream.h>
Interclasare vectori (sortați) void main()
{ int a[9]={3,5,9,19,99}, b[9]={1,7,33};
int c[99], i, j, n=5, m=3, k;
• Intreclasarea presupune reuniunea a doi vectori i=0; j=0; k=0;
care au fost sortați anterior. while ((i<n) && (j<m))
• Algoritmul parcurge cei doi vectori sursă a și b și { if (a[i]<b[j]) { c[k]=a[i]; i++; k++;}
compară elementele. else { c[k]=b[j]; j++; k++; }
• Elementul determinat a avea valoarea cea mai }
mică din sursă este memorat în vectorul destinație c if (i<n)
• Operația de comparare și memorare în destinație while (i<n) {
continuă până când se ajunge la capătul unuia dintre c[k]=a[i]; k++; i++; }
cele două surse else
• Elementele rămase în celălalt vector sunt while (j<m) {
memorate la capătul vectorului destinație c c[k]=b[i]; k++; j++; }
for (i=0;i<k;i++)
cout<<" "<<c[i];
}