1 / 14

Tablouri unidimensionale (vector i )

Tablouri unidimensionale (vector i ). Tablouri unidimensionale (vector i ). Tablouri unidimensionale. Numărul de variabile ce pot fi declarate și utilizate într-o aplicație

Download Presentation

Tablouri unidimensionale (vector i )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tablouriunidimensionale (vectori)

  2. Tablouriunidimensionale (vectori)

  3. Tablouriunidimensionale Numărul de variabile ce pot fi declarate și utilizate într-o aplicație este limitat. Există aplicații care necesită memorarea și prelucrarea unor serii de sute și mii de valori. Accesarea unui număr mare de variabile este anevoios și generator de erori. Pentru a rezolva această problemă au fost create structuri de date (colecții de date) specializate ce ocupă spații de memorie învecinate și în care aranjarea lor este interdependentă. Necesitate Exemple Memorarea și prelucrarea mediilor de absolvire pentru totalitatea elevilor unui liceu ! Memorarea și identificarea numerelor de înmatriculare ale autovehiculelor dintr-un județ Evidența biletelor eliberate (vândute) către clienți cu ocazia unui spectacol de anvergură (de exemplul pe un stadion)

  4. Tablouriunidimensionale Structură de date căreia i se atribuie un nume. Este formată dintr-o colecție de elemente de același tip, dispuse contiguu într-un bloc de memorie. Elementele pot fi accesate individual prin indici sau ca un tot unitar. Toate elementele au un predecesor (excepție primul) și un succesor (excepție ultimul) Definiție Declarare Tip_de_bază nume_tablou [dimensiune_max] ! Tip_de_bază - precizează tipul datelor (întregi, caracter, etc.) Nume tablou – identificator, precizează numele dat tabloului Dimensiune max – numărul maxim de componente (o constantă întreagă) Dimensiune max = memoria fizică alocată. Dimens. logică ≤dimens.max

  5. Tablouriunidimensionale Declararea tablourilor int vec [3]; vectorul (poate) conține 3 elementede tip int const int max=99;int vec[max]; vectorul (poate) conține 99 elem. float vec [99]; vectorul (poate) conține 99 elem de tip float char vec [3] ; vectorul (poate) conține 3 elemente de tip char int sir[3*3+2] ; vectorul “sir”(poate) conține 11 elemente de tip char inta[99], b[99] ; au fost declarați doi vectori a, b

  6. Tablouriunidimensionale Exemple incorecte de declarare pentru că : integer vec [99] ; tipul integer nu e definit in C++ float vec [max] ; “max” este declarat ca variabilă char vec 1 [3*9] ; în nume există caracterul “spațiu” int char[99] ; s-a folosit ca nume cuvântul rezervat “char”

  7. Tablouriunidimensionale Inițializarea tablourilor int vec [3]; vectorul (poate) conține 3 elementede tip int int vec [3] = {5, 6, 7}; vectorul conține elementele din acoladă float vec [] = {1.4, -2,1.2e+2}; conținutul este indicat în acoladă char vec [3] = {‘a’, ‘b’, ‘c’}; vectorul conține caracterele a, b ,c charsir[]={“vector”} ; vectorul “sir” conține 6 elemente de tip char charsir[3]={char(97), char(98)} ; vectorul conține caracterele a, b

  8. Tablouriunidimensionale Accesul la elementele tabloului : Se folosește numele tabloului urmat de indicele (numărul de ordine) elementului referit, înscris între paranteze pătrate. Ex. nume[indice] int vec [4] = {12, 23, 34, 45}; V[0] V[1] V[2] V[3] Referirea la elemente Primul element din vector are numărul de ordine (indicele) zero ! Astfel, elementul cu număr de ordine 0 din vector este 12, elementul al 2-lea este 23 și elementul 45 este al 4-lea element din vector (are indicele 3).

  9. Tablouriunidimensionale Operații posibile Inițializarea (generarea) tabloului unidimensional Memorareași afișarea elementelor unui tablou Parcurgerea și căutarea elementelor memorate în tablou Prelucrarea elementelor tabloului (sume, medii , căutări, maxime, verificări) Căutarea unei valori in tablou Sortarea elementelor unui tablou Interclasarea (concatenarea) a doi vectori sortați anterior

  10. Tablouriunidimensionale #include<iostream> using namespace std; main() { const intmax=99; intvec[max], i, n; do { cout<<"\nNr. elemente = "; cin>>n; } while (n>99); for ( i=0;i<n;i++) vec[i]=i; //afisareaelementelorvectoruluipelinie for ( i=0;i<n;i++) cout<< vec[i]<<endl; system(“pause”); } Generarea tabloului • Vectorul a fost declarat ca având lungimea “max”. • “max” a fost declarat ca o constantă având valoarea 99 • Numărul de elemente “n” al vectorului se citește repetat în instrucțiunea do – while atâta timp cât valoarea citită este mai mare ca 99 • În repetiția for, i se atribuie fiecărui element al vectorului valoarea i, astfel încât vectorul va avea forma : • 1, 2 ,3 ,4 , ...n

  11. Tablouriunidimensionale #include<iostream> using namespace std; main() { intvec[99], i, n; do { cout<<"\nNr. elemente = "; cin>>n; } while (n>99); for ( i=0;i<n;i++) { cout<<"\nElementul = "; cin>>vec[i]; } cout<<"\nVectoruleste : "; for (i=0; i<n; i++) cout<<vec[i]<<" "; system(“pause”);} Crearea și afisarea tabloului • Numărul “n” de elemente al vectoruluise citește de la tastaturăîn mod repetat atâta timp cât numărul citit este mai mare ca 99 • În repetiția for, se citește de la tastatură valoarea fiecărui element al vectorului (citirea se face simultan cu memorarea în vector) • Afișarea se face în interiorul structurii repetitive “for”, între elementele vectorului fiind un spațiu liber (cout<<vec[i]<<" “;)

  12. Tablouriunidimensionale #include<iostream> using namespace std; main() { intvec[99], i, n, sum=0; do { cout<<"\nNr. elemente = "; cin>>n; } while (n>99); for ( i=0;i<n;i++) { cout<<"\nElementul = "; cin>>vec[i]; sum+=vec[i]; } cout<<"\nSumaelementelor = " <<sum; system(“pause”);} Sume în tablou • Variabila“sum” este inițializată cu 0 • În repetiția do-while, se citește numărul de elemente “n” până când acesea este mai mic ca 99 • Simultan cu citirea elementelor vectorului (în repetiția “for”) suma se incrementează cu valoarea elementului de vector citit adică altfel scris : suma = suma + vec[i] • La terminarea repetiției, suma elementelor citite este afișată

  13. Tablouriunidimensionale #include<iostream> using namespace std; main() { intvec[99], i, n, par=0; do { cout<<"\nNr. elemente = "; cin>>n; } while (n>99); for ( i=0;i<n;i++) { cout<<"\nElementul = "; cin>>vec[i]; } for (i=0;i<n;i++) if (vec[i]%2 == 0) par++; cout<<"\nElem. pare = "<<par; cout<<"Elem. impare = "<<n-par; system(“pause”);} Numărarea unor elemente • Variabila“par” este inițializată cu 0. Ea va număra câte elemente sunt pare • În repetiția do-while, se citește numărul de elemente “n” până când acesta este mai mic ca 99 • După memorarea elementelor, parcurgem vectorul (cu repetiția“for”)și comparăm pentru fiecare element dacă restul împărțirii lui la 2 este 0. (vec[i] % 2 == 0). • Dacă da, (restul = 0) atunci înseamnă că elementul este par și contorul “par” crește cu o unitate. • Număr impare = total – par

  14. Tablouriunidimensionale #include<iostream> using namespace std; main() { intvec[99], i, n, max, min; do { cout<<"\nNr. elemente = "; cin>>n; } while (n>99); for (i=0;i<n;i++) { cout<<"\nElementul = "; cin>>vec[i]; } max = min = vec[0]; for (i=1;i<n;i++) { if (vec[i]>max) max = vec[i]; if (vec[i]<min) min = vec[i]; } cout<<"\nElement max = "<<max; cout<<"\nElement min = "<<min; system(“pause”);} Determinare min, max • Variabilele “min” și “max” suntinițializate cu valoarea primului element de vector “vec[0]”. • După memorarea elementelor, parcurgem vectorul (cu repetiția“for”) • Comparăm pentru fiecare element dacăestemaimic ca “min”. Dacă da, atunciacestadevine “min” min=vec[i]) • Comparăm și dacă este mai mare ca “max”. Dacă dacă da, acestuiai se atribuievaloarealui “max” (max=vec[i]). • La terminareaparcurgerii, valorile “min” și “max” suntafișate

More Related