Documente Academic
Documente Profesional
Documente Cultură
DATE NEOMOGENE
Prezentare adaptata
Structuri
O structur este un ansamblu format din una sau mai
Tipul struct
Exemplu: Dac dorim s prelucrm date
referitoare la mai muli elevi, pentru
fiecare elev trebuie s cunoatem:
Numele char[20]
Prenumele char[20]
Nota matematic - float
Nota informatic - float
Vrsta - int
Tipul struct
n C++ exist un tip de date, numit struct,
care permite ca fiecrui elev s-i
corespund o singur nregistrare.
Forma general este:
struct [nume structura]
{
[<tip> <nume variabila [, nume variabila, ]>];
[<tip> <nume variabila [, nume variabila, ]>];
} [lista de variabile];
Tipul struct
Exist dou posibiliti de declarare a variabilelor care
alctuiesc structura:
1.
Scriind la sfrit numele variabilelor:
struct elev
{ char nume[20], prenume[20];
float nota_mate, nota_info;
int varsta;
} e1,e2;
2.
Tipul struct
Definiia structurii poate fi fcut:
n cadrul funciei main()
naintea funciei main()
(caz recomandat)
Pentru accesul la cmpurile unei variabile
de tip struct se folosete operatorul de
selecie direct, notat cu ., operator cu
prioritate maxim.
Tipul struct
Fie e o variabil de tipul elev. Atunci:
e.nume reprezint irul nume al
variabilei inr;
e.nume[0] - reprezint primul caracter al
irului nume;
e.nota_mate reprezint cmpul
nota_mate al variabilei inr.
Tipul struct
ntre dou variabile de acelai tip struct se
poate folosi atribuirea.
Dac e1, e2 sunt dou variabile de tip
elev, prin atribuirea e1=e2, variabila inr1
ia aceeai valoare ca variabila inr2.
O astfel de atribuire se mai numete
copiere bit cu bit.
Exemplu
Se considera tipul elev descris mai sus.
Sa se citeasca 2 variabile de tip elev,
Functia de citire:
elev citire()
{elev e;
cout<<"nume=";cin>>e.nume;
cout<<"prenume=";cin>>e.prenume;
cout<<"nota mate=";cin>>e.nota_mate;
cout<<"nota info=";cin>>e.nota_info;
cout<<"varsta=";cin>>e.varsta;
return e;
}
Functia de afisare:
void afisare(elev e)
{cout<<e.nume<<" "<<e.prenume;
cout<<" are "<<e.nota_mate<<" la mate si ";
cout<<e.nota_info<<" la info "<<endl;
}
Functia main:
int main()
{elev e1,e2,aux;
e1=citire(); e2=citire();
system("cls");
cout<<"In ordinea citirii:";
afisare(e1); afisare(e2);
if(strcmp(e1.nume,e2.nume)>0)
aux=e1,e1=e2,e2=aux;
cout<<"\n\nIn ordine lexicografica:";
afisare(e1); afisare(e2);
}
Aplicatii
In majoritatea aplicatiilor se folosesc vectori de
Exemplu
Sa se citeasca si sa se afiseze
Exemplu
Citirea (folosind functia descrisa anterior):
Exemplu
Afisarea (folosind functia descrisa anterior):
1. Agenda
Se citesc din fisierul de intrare agenda.in un
2. Elevi
Se considera o lista formata din date referitoare
3. Intervale
Se considera n intervale inchise [a,b], a
4. Fractii
Se considera un sir de n fractii identificate prin
5. Puncte
Se considera un sir de n puncte in plan,