Sunteți pe pagina 1din 2

TABLOURILE DE MEMORIE

Tabloul - este o zona continua de memorie interna careia i se atribuie un nume si care permite
memorarea mai multor date de acelasi tip. Aceste date pot fi tratate ca un tot unitar sau ca date
elementare independente.
Operatia de creare a unei structuri de date de tip tablou de memorie presupune:
1.Declararea tabloului de memorie – pentru a i se aloca spatiu de memorie (numele tabloului, tipul
elementelor tabloului, dimensiunea tabloului, numarul de elemente ale tabloului)
2.Atribuirea de valori elementelor tabloului prin: initializarea tabloului la declararea lui,
introducerea valorilor de la tastatura/din fisier, preluarea datelor din alta structura, generarea
valorilor folosind un algoritm.
TABLOUL CU O SINGURA DIMENSIUNE – VECTORUL

Declararea: tip_data nume [nr_elemente];


tip_data tipul elementelor vectorului nume identificatorul vectorului
nr_elemente constanta intreaga (literala/simbolica) specifica numarul de elemente ale vectorului

Ex. int a[20]; float b[30]; char c[25];


const int DIM=50; int v[DIM];
La declararea unui vector se pot atribui valori intiale elementelor, cu instructiunea:
Tip_data nume[nr_elemente]={ lista valori } float b[4]={1.1,3.4,5.6,8.0};
int a[5]={1,22,3,54,78}; int a[]={1,22,3,54,78}; int a[5]={1,22};restul iau valoarea 0
Referirea la un element al vectorului se face: nume [indice]; 0<=indice<n n-nr.elem. vector
nume=numele vectorului; índice= numarul de ordine al elementului in vector;
Deoarece adresa vectorului este si adresa primului element, iar indícele reprezinta deplasarea
elementului fata de adresa vectorului, in C++ numerotarea indicilor se face pornind de la 0;
Element a[0] a[1] … a[n-1]
Índice 0 1 … n-1

ALGORITMI PENTRU PRELUCRAREA TABLOURILOR DE MEMORIE


#include<iostream>
using namespace std;
int main(){
int i,n,a[20]; //i indicele elementului; n lungimea logica;a vector cu lungimea fizica de 20 elemente
cout<<"n=";
cin>>n; //lungimea logica a vectorului
for(i=0;i<n;i++)
{cout<<"a["<<i<<"]="; //citesc elementele vectorului
cin>>a[i];}
for(i=0;i<n;i++) cout<<a[i]<<" "; //afisez elementele de la primul la ultimul
cout<<endl;
for(i=n-1;i>=0;i--) cout<<a[i]<<" "; //afisez elementele de la ultimul la primul
}
Citirea datelor de intrare din fisierul ”date.in”. afisare in fisierul “date.out”
#include<iostream>
#include<fstream>
using namespace std;
int main(){
int i,n,a[20];
ifstream f("date.in");
f>>n;
for(i=0;i<n;i++) f>>a[i];
f.close();
ofstream g("date.out");
for(i=0;i<n;i++) g<<a[i]<<" ";
g.close();}
Se citesc de la tastatura cel mult 20 de numere intregi. Sa se calculeze suma elementelor pare.
#include<iostream>
using namespace std;
int main(){
int i,n,a[20],s=0;
cin>>n;
for(i=0;i<n;i++)cin>>a[i];
for(i=0;i<n;i++) if (a[i]%2==0) s=s+a[i]; }
cout<<”s=”<<s;}
Se citesc din fisier n si n numere intregi. Sa se calculeze suma elementelor pare.
#include<iostream>
#include<fstream>
using namespace std;
int main(){
int i,n,a[20],s=0;
ifstream f("date.in");
f>>n;
for(i=0;i<n;i++) {f>>a[i];
if(a[i]%2==0)s=s+a[i];}
cout<<s;
f.close();}
Un vector contine cel mult 20 de numere intregi. Sa se numere elemente divizibile cu 3.
#include<iostream> cin>>a[i];
using namespace std;
int main(){ for(i=0;i<n;i++)
int i,n,a[20],k=0; if(a[i]%3==0) k++;
cin>>n; cout<< k;
for(i=0;i<n;i++) return 0;}

Un vector contine cel mult 20 de numere intregi Sa se calculeze media aritmetica a numerelor
strict pozitive.
#include<iostream>
using namespace std;
int main(){
int i,n,a[20],k=0,s=0;
cout<<”n=”; cin>>n;
for(i=0;i<n;i++)cin>>a[i];
for(i=0;i<n;i++)if(a[i]>0){s=s+a[i];
k++;}
if(k>0)cout<<”media=”<<(float)s/k;
else cout<<”nu avem nr pozitive”;
return 0;}

S-ar putea să vă placă și