tablouri de memorie
Embed Size (px)
TRANSCRIPT
-
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