SlideShare a Scribd company logo
TABLOURI UNIDIMENSIONALE
(VECTORI)
La finalul acestei unități de învățare veți fi capabili să :
 identificați diferite tipuri de variabile structurate
 efectuați diferite operații asupra vectorilor
 alegeți tipul potrivit de variabile pentru rezolvarea problemelor
Tipuri simple vs. Tipuri derivate (structurate)
 Tipurile de date utilizate până acum sunt tipuri simple.
 Pe baza tipurilor simple de date se pot contstrui tipuri derivate :
tablouri, structuri, fișiere
Tablouri

 Un tablou (array) este un ansamblu de variabile de acelaşi tip la care se face referire folosindu-se
un acelaşi nume.
 Un anume element dintr-un tablou este indicat prin intermediul unui indice (index).
 În C, toate tablourile sunt alcătuite din locaţii de memorie învecinate. Adresa de memorie cea mai
mică corespunde primului element, iar adresa cea mai mare corespunde ultimului element.
 Tablourile pot avea de la una la mai multe dimensiuni.
 Tabloul cel mai des folosit în C este şirul – string, care este un tablou de caractere care se încheie
cu un zero. Acest mod de a privi şirurile conferă limbajului C mai multă putere şi eficienţă faţă de
altelimbaje.
Tablouri unidimensionale – Definiție și Declarare
 În C, tablourile unidimensionale sunt alcătuite dintr-un grup de elemente de acelaşi tip
(numit tip de bază) şi referite printr-un nume comun.
 Variabilele de tip tablou se definesc astfel:
tip_de_baza nume_var[dimensiune];

unde tip_de_baza reprezintă tipul tabloului, adică al fiecărui element inclus în tablou, iar
dimensiune defineşte numărul de elemente conţinute în tablou.
 Un element al tabloului este accesat folosind ca index poziţia elementului, astfel
tabloul_meu[6] va referi al şaptelea element al tabloului tabloul_meu.
ATENȚIE!
 În C, "numerotarea" elementelor tablourilor începe cu poziţia 0, astfel, dacă avem

definiţia:
int tabloul_meu[100];
primul element al tabloului va fi tabloul_meu[0], iar ultimul tabloul_meu[99].
 Tablourile sunt stocate în memorie la locaţii consecutive, un tablou ocupând o zonă
contiguă de memorie, cu primul element al tabloului aflat la adresa mai mica.
ATENȚIE!
O problemă legată de tablouri este că în C nu se face nici o verificare legată de
"marginile" tabloului, astfel că se pot accesa greşit elemente din afara tabloului. De
exemplu, pentru definţia:
int tabloul_meu[100];

dacă accesăm tabloul_meu[105] nu se va semnala nici o eroare, returnându-se
valoarea de la o locaţie de memorie aflată la o distanţă de 5 locaţii faţă de sfârşitul
tabloului, fapt ce va duce la comportări "bizare" ale programului. Aceeaşi situaţe, dar faţă
de începutul tabloului, se întâmplă la accesarea tabloul_meu[-5].

Este datoria programatorului să evite astfel de situații !!!
EXEMPLE
char s[100];
int x[25];
Observaţii:
- primul element dintr-un vector va avea indexul 0, iar ultimul element stocat va avea indexul dim-1
- dimensiunile tabloului trebuie să fie expresii constante

- compilatorul nu face verificări pentru depăşirea dimensiunii tabloului
- pentru alocarea unui tablou sunt necesari nr_elemente*sizeof(tip) octeţi, unde tip este tipul de bază
al tabloului
- atribuirea tablourilor nu poate fi făcută direct
Exemplu :

int x[10],

y[10];

x = y; /*operaţie ilegală*/
Inițializarea tablourilor
 Declaraţia unui tablou poate fi urmată de o secvenţă de iniţializare formată din una sau mai multe perechi de acolade între
care se pun valori ale tipului de bază, separate prin virgulă.
 Pentru tablourile unidimensionale este permisă omiterea numărului de elemente. El va fi egal cu numărul de valori folosite
la iniţializare.
 În cazul în care la iniţializarea tablourilor de tip numeric sunt folosite mai puţine elemente decât dimensiunea

tabloului, restul elementelor sunt iniţializate cu 0.
 Exemple:
float x[5]={1.2,3.4e3,-2,90.7E-8,-88.5e-7};
char s[100]=”test tablou”;
short y[]={0,1,2,3,4}; /* y are 5 elemente */
char s[]={„t‟,„e‟,„s‟,„t‟,„0‟}; /* char s[]=”test”; */
int x[5]={1,2}; /* x=(1, 2, 0, 0, 0) */
Prelucrări elementare în vectori


Deoarece limbajul C nu verifică depăşirea dimensiunilor maxime declarate pentru tablourile utilizate în aplicaţii, pentru a evita scrierea accidentală a unor
zone de memorie, programatorul trebuie să asigure validarea dimensiunilor reale (implicit a numărului de elemente) citite de la intrare. Uzual, un vector se
declară în următoarea manieră:

#define MAX 100 /* dimensiunea maximă admisă */
…………………………
int a[MAX];
int n; /* dimensiunea reală citită la intrare */

Secvenţa tipică de validare a dimensiunii unui vector este următoarea:
do{
cout << “n = “;
cin >> n;
if(n <= 0 || n > MAX) printf(“dimensiune incorectan”);
}while(n <= 0 || n > MAX);
Citirea elementelor unui vector
 După validarea dimensiunii, citirea elementelor unui vector se face în ordinea crescătoare a indicilor, uzual cu o instrucţiune for :

for(int i = 0; i < n; i++)
{
cout << “a[“ << i << “]=“;
cin >> a[i];
}
 Observaţie: Deşi tablourile sunt indexate în C începând de la 0, se pot utiliza elementele numai de la indexul 1 (ca în
Pascal), elementul a[0] rămânând liber. În această situaţie secvenţa de citire (şi toate celelalte secvenţe de prelucrare) se vor
modifica corespunzător, conform modelului de mai jos:

for(int i = 1;i <= n; i++)

{
cout << “a[“ << i << “]=“;
cin >> a[i];
}
Determinarea elementului minim / maxim
 Metoda tipică de determinare a elementului minim/maxim dintr-un vector este
următoarea : se iniţializează minimul/maximul cu primul element din vector apoi se
compară cu celelalte elemente din vector reţinându-se, pe rând, valorile mai mici/mai
mari.
minim = a[0]; /* maxim=a[0]; */
for(i = 1; i < n; i++)

if(minim > a[i]) /* (maxim<a[i]) */
minim = a[i]; /* maxim=a[i]; */
Determinarea primului element cu o anumită proprietate
 Pentru a determina primul element (de indice minim) cu o anumită proprietate, se
parcurge vectorul de la stânga la dreapta până când găsim primul element cu
proprietatea cerută sau până când epuizăm elementele vectorului. De
exemplu, determinarea primului element nul dintr-un vector se realizează cu secvenţa:
f=-1;
for(j = 0;j < n; j++)

if(!a[j])
{ f = j; break; }
 Verificând valoarea variabilei f decidem dacă în vectorul există cel puţin un element cu
proprietatea cerută (f = indicele acestuia) sau nici unul (f =-1).
Determinarea ultimului element cu o anumită proprietate
 Pentru a determina ultimul element (de indice maxim) cu o anumită proprietate, se
parcurge vectorul de la dreapta spre stânga (în ordinea descrescătoare a indicilor)
până când găsim primul element cu proprietatea cerută sau până când epuizăm
elementele vectorului. De exemplu, determinarea ultimului element par dintr-un vector
se realizează cu secvenţa:
f=-1;
for(j = n-1;j >= 0;j--)
if(!(a[j]%2))
{

f = j; break; }
Eliminarea tuturor elementelor care au o anumită
proprietate
 Cea mai simplă metodă de a elimina dintr-un vector toate elementele cu o anumită
proprietate este să creăm un nou vector în care se păstrează elementele care nu au
proprietatea respectivă. De exemplu, pentru a elimina dintr-un vector toate elementele
negative, putem utiliza secvenţa:
j=-1;
for(i = 0;i < n; i++)

if(a[i] >= 0) /* nu are proprietatea cerută */
b[++j] = a[i]; /* păstram elementul în vectorul b */
n = j; /* actualizăm dimensiunea vectorului */
Eliminarea tuturor elementelor care au o anumită
proprietate
 Metoda este ineficientă datorită consumului de memorie necesară pentru vectorul b. O
metodă mult mai eficientă este să folosim acelaşi vector în care vom „îngrămădi” pe
primele poziţii elementele care trebuie păstrate. Prin actualizarea dimensiunii
vectorului, elementele de prisos nu vor mai fi luate în consideraţie în prelucrările
ulterioare. Secvenţa care realizează această operaţie este următoarea:
j = -1;
for(i

= 0; i < n; i++)
if(a[i] >= 0) /* nu are proprietatea cerută */

a[++j] = a[i]; /* mutăm elementul la începutul
vectorului */

n = j; /* actualizăm dimensiunea vectorului */
Eliminarea elementului din poziţia k dată (1<=k<=n)
 Prin eliminarea elementului din poziţia k dată (elementul de indice k-1), se observă că
primele k-1 elemente rămân neschimbate, în timp ce elementele din poziţiile
k+1, k+2,…….,n se deplasează cu o poziţie spre stânga pentru a “umple” golul rămas
prin eliminarea elementului din poziţia k. Evident, dimensiunea vectorului scade cu o
unitate :
for(j = k-1;j <= n-2;j++)
a[j] = a[j + 1]; /* deplasăm elementele spre stânga */
n--; /* corectăm dimensiunea */
Inserarea unui element y în poziţia k dată (1<=k<=n)
 Cum inserarea unui element se face fără a pierde vreun element din vectorul
iniţial, elementele din poziţiile k, k+1,.......n trebuie să se deplaseze cu o poziţie spre
dreapta pentru a face loc noii valori y introdusă în poziţia k (indice k-1). Dimensiunea
vectorului creşte cu o unitate:
for(j=n;j>=k;j--)
a[j]=a[j-1]; /* deplasăm elementele spre dreapta */

a[k-1]=y; /* inserăm elementul y */
n++; /* actualizăm dimensiunea */
PROBLEME PROPUSE
1. Se consideră n numere întregi reţinute într-un vector v. (1<n<=50). Să se determine celmai mic număr
pozitiv din vector şi cel mai mare număr negativ conţinut de vector. În cazulîn care una din valori nu
poate fi determinată, să se dea un mesaj corespunzător.
Exemplu: n=8; v={4, -7, 9, 8, -3, 2, 10, -5}, atunci min_poz=2, max_neg=-3
2. Se citeşte un şir de numere întregi până la introducerea valorii zero. Să se formeze doi vectori: unul cu
numerele pare introduse, iar celălalt cu cele impare. Să se afişeze conţinuturile celor doi vectori.

Exemplu: numerele introduse sunt: 7, -5, 8, 1, 2, -6, 3, 0
cei doi vectori vor fi: a[0]=8, a[1]=2, a[2]=-6;

b[0]=7, b[1]=-5], b[2]=1, b[3]=3

3. Se citeşte un număr natural de maxim 10 cifre. Să se introducă cifrele numărului într-un vector.

Exemplu: dacă n= 725943 atunci v[0]=3, v[1]=4, v[2]=9, v[3]=5, v[4]=5, v[5]=2 şi v[6]=7.

More Related Content

PPT
Tablouri bidimensionale
DOC
Functii, tablouri si pointeri in c si c++
PDF
Tipuri de date tablou
DOC
Algebra si analiza de 11
DOC
Laborator 1
PPT
Proiect tic a_2b_bria_monica
Tablouri bidimensionale
Functii, tablouri si pointeri in c si c++
Tipuri de date tablou
Algebra si analiza de 11
Laborator 1
Proiect tic a_2b_bria_monica

What's hot (20)

PPT
Tipuri de date simple
PPTX
Grafuri curs
PPT
Metoda greedy.a
PDF
Calculul numeric teorie
PPT
Metoda trierii
PPTX
PPT
Ch02 poca r
PPTX
PPT
C4 regr lin multipla
PPTX
Functii derivabile
PDF
Aplicatia calculator
PPTX
Functii derivabile legatura_intre_continuitate_si_derivabilitate_derivate_lat...
PPT
PPT
Metoda Trierii
PPS
Tehnici de programare triere
DOCX
Arbori de-intervale
PDF
Gc baleiere _infasuratoare_convexa (2)
DOC
Reprezentarea algoritmilor ap 21feb2011
Tipuri de date simple
Grafuri curs
Metoda greedy.a
Calculul numeric teorie
Metoda trierii
Ch02 poca r
C4 regr lin multipla
Functii derivabile
Aplicatia calculator
Functii derivabile legatura_intre_continuitate_si_derivabilitate_derivate_lat...
Metoda Trierii
Tehnici de programare triere
Arbori de-intervale
Gc baleiere _infasuratoare_convexa (2)
Reprezentarea algoritmilor ap 21feb2011
Ad

Viewers also liked (8)

PPT
Proiect cl ix
PPS
Slideshow
PDF
Probacl IX
PPTX
Cuntizarea imaginilor
DOC
Fisa
DOC
Data
PPT
1.5.Cuantizarea imaginilor
PPT
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Proiect cl ix
Slideshow
Probacl IX
Cuntizarea imaginilor
Fisa
Data
1.5.Cuantizarea imaginilor
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Ad

Similar to Vectori (20)

PPTX
Vectori c1
PDF
Pointeri şi tablouri
PPS
Curs5-PC-Cl9
PPT
Informatica
PPT
Studierea limbajului pascal
PDF
Practici comune pentru limbajul de programare în C
PPTX
Tablouri bidimensionale cu exemple de program
PDF
00007 backtracking
PPT
Cap.5
DOCX
Tipul multime brosura rom
DOC
Manual de programare c
DOC
Carte C 2003
DOCX
Liste înlănţuite
TXT
Problemeinfo27.09
PPT
Quicksort
PPT
Proiect tic
PPT
Structuri De Date Alocate Dinamic
PPTX
ALGORITMI DE REZOLVARE A UNOR PROBLEME MATEMATICE
PDF
manual-de-programare-c
Vectori c1
Pointeri şi tablouri
Curs5-PC-Cl9
Informatica
Studierea limbajului pascal
Practici comune pentru limbajul de programare în C
Tablouri bidimensionale cu exemple de program
00007 backtracking
Cap.5
Tipul multime brosura rom
Manual de programare c
Carte C 2003
Liste înlănţuite
Problemeinfo27.09
Quicksort
Proiect tic
Structuri De Date Alocate Dinamic
ALGORITMI DE REZOLVARE A UNOR PROBLEME MATEMATICE
manual-de-programare-c

Vectori

  • 2. La finalul acestei unități de învățare veți fi capabili să :  identificați diferite tipuri de variabile structurate  efectuați diferite operații asupra vectorilor  alegeți tipul potrivit de variabile pentru rezolvarea problemelor
  • 3. Tipuri simple vs. Tipuri derivate (structurate)  Tipurile de date utilizate până acum sunt tipuri simple.  Pe baza tipurilor simple de date se pot contstrui tipuri derivate : tablouri, structuri, fișiere
  • 4. Tablouri  Un tablou (array) este un ansamblu de variabile de acelaşi tip la care se face referire folosindu-se un acelaşi nume.  Un anume element dintr-un tablou este indicat prin intermediul unui indice (index).  În C, toate tablourile sunt alcătuite din locaţii de memorie învecinate. Adresa de memorie cea mai mică corespunde primului element, iar adresa cea mai mare corespunde ultimului element.  Tablourile pot avea de la una la mai multe dimensiuni.  Tabloul cel mai des folosit în C este şirul – string, care este un tablou de caractere care se încheie cu un zero. Acest mod de a privi şirurile conferă limbajului C mai multă putere şi eficienţă faţă de altelimbaje.
  • 5. Tablouri unidimensionale – Definiție și Declarare  În C, tablourile unidimensionale sunt alcătuite dintr-un grup de elemente de acelaşi tip (numit tip de bază) şi referite printr-un nume comun.  Variabilele de tip tablou se definesc astfel: tip_de_baza nume_var[dimensiune]; unde tip_de_baza reprezintă tipul tabloului, adică al fiecărui element inclus în tablou, iar dimensiune defineşte numărul de elemente conţinute în tablou.  Un element al tabloului este accesat folosind ca index poziţia elementului, astfel tabloul_meu[6] va referi al şaptelea element al tabloului tabloul_meu.
  • 6. ATENȚIE!  În C, "numerotarea" elementelor tablourilor începe cu poziţia 0, astfel, dacă avem definiţia: int tabloul_meu[100]; primul element al tabloului va fi tabloul_meu[0], iar ultimul tabloul_meu[99].  Tablourile sunt stocate în memorie la locaţii consecutive, un tablou ocupând o zonă contiguă de memorie, cu primul element al tabloului aflat la adresa mai mica.
  • 7. ATENȚIE! O problemă legată de tablouri este că în C nu se face nici o verificare legată de "marginile" tabloului, astfel că se pot accesa greşit elemente din afara tabloului. De exemplu, pentru definţia: int tabloul_meu[100]; dacă accesăm tabloul_meu[105] nu se va semnala nici o eroare, returnându-se valoarea de la o locaţie de memorie aflată la o distanţă de 5 locaţii faţă de sfârşitul tabloului, fapt ce va duce la comportări "bizare" ale programului. Aceeaşi situaţe, dar faţă de începutul tabloului, se întâmplă la accesarea tabloul_meu[-5]. Este datoria programatorului să evite astfel de situații !!!
  • 8. EXEMPLE char s[100]; int x[25]; Observaţii: - primul element dintr-un vector va avea indexul 0, iar ultimul element stocat va avea indexul dim-1 - dimensiunile tabloului trebuie să fie expresii constante - compilatorul nu face verificări pentru depăşirea dimensiunii tabloului - pentru alocarea unui tablou sunt necesari nr_elemente*sizeof(tip) octeţi, unde tip este tipul de bază al tabloului - atribuirea tablourilor nu poate fi făcută direct Exemplu : int x[10], y[10]; x = y; /*operaţie ilegală*/
  • 9. Inițializarea tablourilor  Declaraţia unui tablou poate fi urmată de o secvenţă de iniţializare formată din una sau mai multe perechi de acolade între care se pun valori ale tipului de bază, separate prin virgulă.  Pentru tablourile unidimensionale este permisă omiterea numărului de elemente. El va fi egal cu numărul de valori folosite la iniţializare.  În cazul în care la iniţializarea tablourilor de tip numeric sunt folosite mai puţine elemente decât dimensiunea tabloului, restul elementelor sunt iniţializate cu 0.  Exemple: float x[5]={1.2,3.4e3,-2,90.7E-8,-88.5e-7}; char s[100]=”test tablou”; short y[]={0,1,2,3,4}; /* y are 5 elemente */ char s[]={„t‟,„e‟,„s‟,„t‟,„0‟}; /* char s[]=”test”; */ int x[5]={1,2}; /* x=(1, 2, 0, 0, 0) */
  • 10. Prelucrări elementare în vectori  Deoarece limbajul C nu verifică depăşirea dimensiunilor maxime declarate pentru tablourile utilizate în aplicaţii, pentru a evita scrierea accidentală a unor zone de memorie, programatorul trebuie să asigure validarea dimensiunilor reale (implicit a numărului de elemente) citite de la intrare. Uzual, un vector se declară în următoarea manieră: #define MAX 100 /* dimensiunea maximă admisă */ ………………………… int a[MAX]; int n; /* dimensiunea reală citită la intrare */ Secvenţa tipică de validare a dimensiunii unui vector este următoarea: do{ cout << “n = “; cin >> n; if(n <= 0 || n > MAX) printf(“dimensiune incorectan”); }while(n <= 0 || n > MAX);
  • 11. Citirea elementelor unui vector  După validarea dimensiunii, citirea elementelor unui vector se face în ordinea crescătoare a indicilor, uzual cu o instrucţiune for : for(int i = 0; i < n; i++) { cout << “a[“ << i << “]=“; cin >> a[i]; }  Observaţie: Deşi tablourile sunt indexate în C începând de la 0, se pot utiliza elementele numai de la indexul 1 (ca în Pascal), elementul a[0] rămânând liber. În această situaţie secvenţa de citire (şi toate celelalte secvenţe de prelucrare) se vor modifica corespunzător, conform modelului de mai jos: for(int i = 1;i <= n; i++) { cout << “a[“ << i << “]=“; cin >> a[i]; }
  • 12. Determinarea elementului minim / maxim  Metoda tipică de determinare a elementului minim/maxim dintr-un vector este următoarea : se iniţializează minimul/maximul cu primul element din vector apoi se compară cu celelalte elemente din vector reţinându-se, pe rând, valorile mai mici/mai mari. minim = a[0]; /* maxim=a[0]; */ for(i = 1; i < n; i++) if(minim > a[i]) /* (maxim<a[i]) */ minim = a[i]; /* maxim=a[i]; */
  • 13. Determinarea primului element cu o anumită proprietate  Pentru a determina primul element (de indice minim) cu o anumită proprietate, se parcurge vectorul de la stânga la dreapta până când găsim primul element cu proprietatea cerută sau până când epuizăm elementele vectorului. De exemplu, determinarea primului element nul dintr-un vector se realizează cu secvenţa: f=-1; for(j = 0;j < n; j++) if(!a[j]) { f = j; break; }  Verificând valoarea variabilei f decidem dacă în vectorul există cel puţin un element cu proprietatea cerută (f = indicele acestuia) sau nici unul (f =-1).
  • 14. Determinarea ultimului element cu o anumită proprietate  Pentru a determina ultimul element (de indice maxim) cu o anumită proprietate, se parcurge vectorul de la dreapta spre stânga (în ordinea descrescătoare a indicilor) până când găsim primul element cu proprietatea cerută sau până când epuizăm elementele vectorului. De exemplu, determinarea ultimului element par dintr-un vector se realizează cu secvenţa: f=-1; for(j = n-1;j >= 0;j--) if(!(a[j]%2)) { f = j; break; }
  • 15. Eliminarea tuturor elementelor care au o anumită proprietate  Cea mai simplă metodă de a elimina dintr-un vector toate elementele cu o anumită proprietate este să creăm un nou vector în care se păstrează elementele care nu au proprietatea respectivă. De exemplu, pentru a elimina dintr-un vector toate elementele negative, putem utiliza secvenţa: j=-1; for(i = 0;i < n; i++) if(a[i] >= 0) /* nu are proprietatea cerută */ b[++j] = a[i]; /* păstram elementul în vectorul b */ n = j; /* actualizăm dimensiunea vectorului */
  • 16. Eliminarea tuturor elementelor care au o anumită proprietate  Metoda este ineficientă datorită consumului de memorie necesară pentru vectorul b. O metodă mult mai eficientă este să folosim acelaşi vector în care vom „îngrămădi” pe primele poziţii elementele care trebuie păstrate. Prin actualizarea dimensiunii vectorului, elementele de prisos nu vor mai fi luate în consideraţie în prelucrările ulterioare. Secvenţa care realizează această operaţie este următoarea: j = -1; for(i = 0; i < n; i++) if(a[i] >= 0) /* nu are proprietatea cerută */ a[++j] = a[i]; /* mutăm elementul la începutul vectorului */ n = j; /* actualizăm dimensiunea vectorului */
  • 17. Eliminarea elementului din poziţia k dată (1<=k<=n)  Prin eliminarea elementului din poziţia k dată (elementul de indice k-1), se observă că primele k-1 elemente rămân neschimbate, în timp ce elementele din poziţiile k+1, k+2,…….,n se deplasează cu o poziţie spre stânga pentru a “umple” golul rămas prin eliminarea elementului din poziţia k. Evident, dimensiunea vectorului scade cu o unitate : for(j = k-1;j <= n-2;j++) a[j] = a[j + 1]; /* deplasăm elementele spre stânga */ n--; /* corectăm dimensiunea */
  • 18. Inserarea unui element y în poziţia k dată (1<=k<=n)  Cum inserarea unui element se face fără a pierde vreun element din vectorul iniţial, elementele din poziţiile k, k+1,.......n trebuie să se deplaseze cu o poziţie spre dreapta pentru a face loc noii valori y introdusă în poziţia k (indice k-1). Dimensiunea vectorului creşte cu o unitate: for(j=n;j>=k;j--) a[j]=a[j-1]; /* deplasăm elementele spre dreapta */ a[k-1]=y; /* inserăm elementul y */ n++; /* actualizăm dimensiunea */
  • 19. PROBLEME PROPUSE 1. Se consideră n numere întregi reţinute într-un vector v. (1<n<=50). Să se determine celmai mic număr pozitiv din vector şi cel mai mare număr negativ conţinut de vector. În cazulîn care una din valori nu poate fi determinată, să se dea un mesaj corespunzător. Exemplu: n=8; v={4, -7, 9, 8, -3, 2, 10, -5}, atunci min_poz=2, max_neg=-3 2. Se citeşte un şir de numere întregi până la introducerea valorii zero. Să se formeze doi vectori: unul cu numerele pare introduse, iar celălalt cu cele impare. Să se afişeze conţinuturile celor doi vectori. Exemplu: numerele introduse sunt: 7, -5, 8, 1, 2, -6, 3, 0 cei doi vectori vor fi: a[0]=8, a[1]=2, a[2]=-6; b[0]=7, b[1]=-5], b[2]=1, b[3]=3 3. Se citeşte un număr natural de maxim 10 cifre. Să se introducă cifrele numărului într-un vector. Exemplu: dacă n= 725943 atunci v[0]=3, v[1]=4, v[2]=9, v[3]=5, v[4]=5, v[5]=2 şi v[6]=7.