Sunteți pe pagina 1din 12

Ghiveci 1

Ghiveci 4

Ghiveci 2

Ghiveci 5

Ghiveci 6

Ghiveci 3

Ghiveci 7

Ghiveci [0]
=1

Ghiveci[3]
=7

Ghiveci[1]
=6

Ghiveci[4]
=4

Ghiveci[5]
=3

Ghiveci[2]
=5

Ghiveci[6]
=2

Ghiveci [0]
=1
Ghiveci[1]
=
6
Ghiveci[2]

Declaratie:
int ghiveci[7];

=5
Ghiveci[3]
=
7
Ghiveci[4]
=
4
Ghiveci[5]
=
3
Ghiveci[6]
=2
1

6
3

5
2

GHIVE
CI

VALORI

INDICI

Clasa
codificare
numar de
elevi
=============================
=========
6a
0
23
6b

24

6c

26

7a

3
4

21

7c

25

24

int codif_clasa[6];

21

7b

23
21

Declaratie:

26

valori

21

25

Codificare clasa

indici

Fisiere text utilizate mai des pentru citirea valorilor vectorilor


1.Fisiere in care pe prima linie este numarul n de elemente ale
vectorului si pe urmatoarele n linii sunt valorile corespunzatoare
elementelor vectorului, in ordine, incepand de la elementul cu
indice 0 pana la elementul cu indice (n-1).
2.Fisiere care contin doar cele n elemente ale vectorului, cate o
valoare pe fiecare linie, in ordine, de la valoarea elementului cu
indice 0 pana la valoarea elementului cu indice n-1.
Ex. Pt fisierele de tip 1 in care avem pe prima linie numarul 5
reprezentand numarul de elemente ale vectorului.
5
23
21
26
21
16

Definitie:
Tablou unidimensional (vector) : colectie
de date de acelasi tip reunite sub un
nume comun.
Declaratie:
tip_elemente
nume_vector[numar_elemente];
Ex.: double raza_cerc[10];
(am declarat un vector cu 10 elemente,
vectorul este numit raza_cerc iar tipul
elementelor este double (numere reale).

In cazul declaratiei anterioare, elementele


vectorului vor primi valori prin citiri din fisiere
sau de la tastatura.
Daca vrem sa atribuim valori elementelor unui
vector atunci cand facem declaratia variabilei
procedam astfel:
double raza_cerc[3] = {3.23, 4.21, 5.656};
(am declarat un vector cu 3 elemente,
vectorul este numit raza_cerc, tipul
elementelor este double (numere reale), iar
valorile elementelor sunt:
raza_cerc[0] = 3.23, raza_cerc[1] = 4.21,
raza_cerc[2] = 5.656.

Tema in clasa:
Fiind dat un fisier numit valori.txt in care pe
prima linie este numarul 5 reprezentand numarul
de elemente ale unui vector iar pe urmatoarele 5
linii valori numerice de tip real reprezentand razele
unor cercuri, sa se creeze un vector numit
raze_cerc ale carui elemente au valorile citite din
fisier.
Sa se scrie intr-un fisier text numit rezultate.txt
ariile celor 5 cercuri corespunzatoare celor 5 raze
de cerc din vectorul raze_cerc.

Exemplu pentru fisierul valori.txt


5
3.45
4.45
2.23
3.76
9.56

Dupa crearea proiectului codeblocks, fisierul valori.txt se va salva in


acelasi dosar cu al proiectului.

Citiri/scrieri din/in fisiere


Includem fisierul antet fstream #include <fstream>
Citire
ifstream fileinput; // am declarat un stream de intrare numit fileinput
fileinput.open(valori.txt); //deschidem fisierul valori.txt utilizand
functia open()
int n; //declaram variabila n care va memora numarul de elemente ale
vectorului
// variabila ba fi citita de pe prima linie a fisierului valori.txt
fileinput >> n; // dirijam streamul (curentul, suvoiul) de citire catre
variabila n
double raze_cerc[n]; // am declarat un vector numit raze_cerc cu n
elemente de tip real
for(int i=0; i<n; i++)
{
fileinput >> raze_cerc[i];
// in c++ variabilele pot fi declarate chiar in locul unde vor fi folosite
//ex.: pentru ciclul for folosim o variabila contor numita i pe care o
declaram si o //initializam cu zero chiar in cadrul expresiei de

Scrieri
ofstream fileoutput; //declaram un stream de iesire numit fileoutput
fileoutput.open(rezultate.txt);//deschidem fisierul rezultate.txt
// caracterul . dintre fileoutput si open reprezinta selectia unei functii
numita open() din //clasa ofstream ( veti invata pe clasa a XI-a la
programarea orientata pe obiecte
for(int i=0; i<n; i++)
{
fileoutput << 3.14*raze_cerc[i]*raze_cerc[i] << endl;
}
fileinput.close();
fileoutput.close();
//am inchis fisierele utilizate. Inchiderea este necesara pentru a nu
corupe datele din //aceste fisiere si pentru a elibera memoria interna
utilizata pentru a stoca datele din //aceste fisiere
endl este un manipulator al streamurilor de scriere si realizeaza
trecerea la o linie noua
Explicatie pentru i++ : ++ este operatorul unar de incrementare. El
realizeaza marirea valorii operandului cu o unitate. Este echivalent cu i

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