190 likes | 408 Views
TABLOURI UNIDIMENSIONALE. DETERMINAREA ELEMENTULUI DE VALOARE MAXIM Ă. Enunţul problemei. Cunoscând mediile anuale ale elevilor dintr-o clasă, să se determine cea mai mare medie a clasei. Identificarea variabilelor necesare realizării programului:
E N D
TABLOURI UNIDIMENSIONALE DETERMINAREA ELEMENTULUI DE VALOARE MAXIMĂ
Enunţul problemei Cunoscând mediile anuale ale elevilor dintr-o clasă, să se determine cea mai mare medie a clasei.
Identificarea variabilelor necesare realizării programului: medii- tablou unidimensional necesar memorării mediilor anuale ale elevilor; max - variabilă cu ajutorul căreia memorăm valoarea maximă a mediei anuale; n – numărul de elevi din clasă; i– contor ce ia valori de la 0 la n-1;
Fie tabloul unidimensional mediice are următorul conţinut: 0 1 2 3 4 5 6 7 2 5 1 9 6 8 Deci: Medii[0]=7 Medii[1]=2 Medii[2]=5 Medii[3]=1 Medii[4]=9 Medii[5]=6 Medii[6]=8
Algoritmul în limbaj natural: • Primul element din tablou se consideră că este elementul cu valoare maximă; • Se compară pe rând restul elementelor din tablou cu elementul presupus a fi maxim; • Dacă în urma comparării elementul tabloului este mai mic decât cel maxim atunci valoarea maximă rămâne neschimbată; • Dacă în urma comparării elementul tabloului este mai mare decât cel maxim atunci elementul tabloului va deveni noul maxim; • Elementul maxim se obţine după ce toate valorile din tablou au fost comparate cu presupusul maxim.
0 1 2 3 4 5 6 7 2 5 1 9 6 8 7 Max=7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > NU 7 Max=7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > NU 7 Max=7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > NU 7 Max=7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > DA 7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 7
0 1 2 3 4 5 6 7 2 5 1 9 6 8 9 Max=9
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > NU 9 Max=9
0 1 2 3 4 5 6 7 2 5 1 9 6 8 > NU 9 Max=9
Algoritmul în limbaj C++ #include <iostream.h> float medii[30]; //se declara tabloul unidimensional float max; unsigned int n,i; void main () { cin>>n; for(i=0;i<n;i++) //se citesc elementele tabloului unidimensional cin>>medii[i]; max=medii[0]; //se intializeaza max cu valoarea primului element din tablou for(i=1;i<n;i++) if(medii[i]>max) max=medii[i]; cout<<“Media maxima este “<<max; }
Sarcină de lucru: Grupa 1 Modificaţialgoritmulanterior astfel încât să se afişeze şi poziţia pe care se află elementul maxim. Grupa 2 Modificaţi algoritmul anterior astfel încât să se afişeze elementul cu valoarea minimă din tabloul unidimensional. Grupa 3 Modificaţi algoritmul anterior astfel încât să se afişeze de câte ori apare elementul maxim în tablou şi poziţiile acestor apariţii.
Lucru suplimentar: Rescrieţi programele de la cerinţele anterioare citind datele din fişierul DATE.IN şi afişând rezultatele în fişierul DATE.OUT
Temă • Se dă un tablou unidimensional ce conţine numere întregi. Să se determine şi să se afişeze cele mai mari două numere din tablou. • Ex. Dacă tabloul conţine elementele: 3,5,7,2,8,1,9, atunci rezultatul afişat este 9,7
Lecţie realizată de: profesorIfrim Aliana, Colegiul Naţional “Dimitrie Cantemir”, Oneşti