Tablouri de Memorie

download Tablouri de Memorie

of 26

Transcript of Tablouri de Memorie

  • 8/11/2019 Tablouri de Memorie

    1/26

    1ING.LUNGU IUDIT

  • 8/11/2019 Tablouri de Memorie

    2/26

    DEFINIIE

    Untablou

    este o colecie de date, de acelai tip,situate ntr-o zon de memorie continu (elementele

    tabloului se afl la adrese succesive).

    Tablourile sunt variabile compuse (structurate),

    deoarece grupeaz mai multe elemente.

    Variabilele tablou au nume, iar tipul tabloului este

    dat de tipul elementelor sale.

    Elementele tabloului pot fi referite prin numeletabloului iindicii (numere ntregi) care reprezint

    poziia elementului n cadrul tabloului.

    2ING.LUNGU IUDIT

  • 8/11/2019 Tablouri de Memorie

    3/26

    MOD DE DECLARARE

    tip nume_tablou[nr_elemente_1]

    *nr_elemente_2+*nr_elemente_n];ex: int a[2][3];

    ING.LUNGU IUDIT 3

  • 8/11/2019 Tablouri de Memorie

    4/26

    TABLOUL CU O DIMENSIUNE -

    VECTORUL

    ING.LUNGU IUDIT 4

  • 8/11/2019 Tablouri de Memorie

    5/26

    VECTORI

    Un vector (array) este un tablouunidimensional (tablouri cu un singur indice).

    Se declar n felul urmtor:

    tip nume[nr_elemente];// exemplu

    // 5 reprezinta numarul de elemente

    nr_elemente trebuie s fie o constant deoarece

    mrimea vectorilor nu poate fi determinat n

    timpul execuiei(structura statica).

    float a[10];

    ING.LUNGU IUDIT 5

  • 8/11/2019 Tablouri de Memorie

    6/26

    Iniializarea vectorilor

    Se pot atribui valori elementelor la declarareEx:

    int a[5]={10,20,30,40,50};

    float a[3]={0.2,0.1,0.5};

    char b*3+=a,b,c,\0-; sau abc

    valori

    indici

    ING.LUNGU IUDIT 6

    a b c nul

    0 1 2 3

  • 8/11/2019 Tablouri de Memorie

    7/26

    Referirea la elementele unui vector

    Se face n urmtorul modnume[indice]

    Nume numele vectorului

    Indice numrul de ordine al elementului ncadrul vectorului

    Observaii

    adresa primului element fiind adresa vectorului,iar indicele reprezentnd deplasarea elementului

    fa de adresa vectorului, indicele primului

    element este 0.

    ING.LUNGU IUDIT 7

  • 8/11/2019 Tablouri de Memorie

    8/26

    Parcurgerea elementelor unui vector

    De la primul element la ultimul

    De la ultimul element la primul

    ING.LUNGU IUDIT 8

  • 8/11/2019 Tablouri de Memorie

    9/26

    De la primul element la ultimul element

    #include

    using namespace std;

    int main()

    {

    int n,i,a[10];

    // i-indicele elementului

    // n-lungimea logica a vectorului// a- vect cu dim de max.10

    coutn;

    for(i=0;i

  • 8/11/2019 Tablouri de Memorie

    10/26

    De la ultimul element la primul elementexerciiu

    #include

    using namespace std;

    int main()

    {

    int n,i,a[10];

    coutn;for(i=n-1;i>=0;i--)

    {

    a[i]=i;

    cout

  • 8/11/2019 Tablouri de Memorie

    11/26

    Aplicaii

    Aplicaia 1Se citesc de la tastatur cel mult 10 numere

    ntregi. S se calculeze media aritmetic a

    numerelor strict pozitive. Pentru memorareanumerelor se va folosi o structur de date de

    tip vector

    ING.LUNGU IUDIT 11

  • 8/11/2019 Tablouri de Memorie

    12/26

    Rezolvare

    #include

    using namespace std;int main()

    {

    int n,i,a[10],k=0,s=0;

    coutn;

    for(i=0;i

  • 8/11/2019 Tablouri de Memorie

    13/26

    Aplicaia 2

    Se introduc de la tastatur cel mult 100 denumere ntregi. S se afieze n ordine invers

    numerele citite.

    ING.LUNGU IUDIT 13

  • 8/11/2019 Tablouri de Memorie

    14/26

    TABLOUL CU DOU DIMENSIUNI -MATRICEA

    ING.LUNGU IUDIT 14

  • 8/11/2019 Tablouri de Memorie

    15/26

    Un tablou memorie cu dou dimensiuniSe declar n felul urmtor:

    tip nume[nr_linii][nr_col];

    // exemplu// o matrice cu 5 linii i 3 coloane

    nr_elemente trebuie s fie o constant deoarece

    mrimea nu poate fi determinat n timpul

    execuiei

    ING.LUNGU IUDIT 15

    MATRICI

  • 8/11/2019 Tablouri de Memorie

    16/26

    Iniializarea matricilor

    Se pot atribui valori elementelor la declarareEx:

    int a[2][3]={10,20,30,40,50};

    float a[2][2]={0.2,0.1,0.5,0.5};Observ.

    Memorarea se face linie cu linie

    ING.LUNGU IUDIT 16

  • 8/11/2019 Tablouri de Memorie

    17/26

    Referirea la elementele unei matrici

    Se face n urmtorul modnume[ind1][ind2];

    Nume numele vectorului

    Ind1 numrul linieiInd2 numrul coloanei

    Observaii

    adresa primului element fiind adresa vectorului,iar indicele reprezentnd deplasarea elementului

    fa de adresa vectorului, indicele primului

    element este 0,0ING.LUNGU IUDIT 17

  • 8/11/2019 Tablouri de Memorie

    18/26

    Parcurgerea elementelor unei matrici

    De la primul element la ultimul

    De la ultimul element la primul

    ING.LUNGU IUDIT 18

  • 8/11/2019 Tablouri de Memorie

    19/26

    De la primul element la ultimul

    element

    #includeusing namespace std;

    int main()

    {

    int n,m,i,j,a[10][10];

    coutn;

    cout

  • 8/11/2019 Tablouri de Memorie

    20/26

    De la ultimul element la primul elementexerciiu

    #include

    using namespace std;

    int main()

    {

    int n,i,a[10];

    coutn;for(i=n-1;i>=0;i--)

    {

    a[i]=i;

    cout

  • 8/11/2019 Tablouri de Memorie

    21/26

    ING.LUNGU IUDIT 21

  • 8/11/2019 Tablouri de Memorie

    22/26

    1. Definiie

    Rearanjeaz elementele vectorului astfel nctntre elementele sale s existe o relaie de

    ordine

    ING.LUNGU IUDIT 22

  • 8/11/2019 Tablouri de Memorie

    23/26

    2. Sortarea prin selectarea min(max)

    Se determin minimul dintre valorile reinuteSe trece pe prima poziie

    Se determin minimul ncepnd cu a doua poziie

    Se trece pe poziia a doua

    .

    Se determin minimul ncepnd cu penultima poziie

    Se trece pe penultima poziie

    ING.LUNGU IUDIT 23

    http://www.youtube.com/watch?v=Ns4TPTC8whw

    #include

    http://www.youtube.com/watch?v=Ns4TPTC8whwhttp://www.youtube.com/watch?v=Ns4TPTC8whw
  • 8/11/2019 Tablouri de Memorie

    24/26

    #include

    using namespace std;

    int main()

    {

    int a[10],n,i,j,k,man,min;

    coutn;

    for(i=0;i

  • 8/11/2019 Tablouri de Memorie

    25/26

    3. Sortarea prin interschimbare

    Se parcurge variabila inversnd coninuturilecomponentelor alturate care nu sunt n

    ordine cresctoare

    .Se repet pn cnd are loc o parcurgere la

    care nu se fac inversri

    ING.LUNGU IUDIT 25

    http://www.youtube.com/watch?v=lyZQPjUT5B4&feature=relmfu

    http://www.youtube.com/watch?v=lyZQPjUT5B4&feature=relmfuhttp://www.youtube.com/watch?v=lyZQPjUT5B4&feature=relmfu
  • 8/11/2019 Tablouri de Memorie

    26/26

    #include

    using namespace std;

    int main()

    {

    int a[10],n,i,man,gasit;

    coutn;for(i=0;i