Documente Academic
Documente Profesional
Documente Cultură
STRUCTURI
2. Definiti structura pentru evidenta cartilor existente ( maxim 100) intr-o biblioteca stiind ca pentru fiecare
carte trebuie memorate urmatoarele atribute: titlul, autorul, pretul, starea cartii (deteriorate sau nu), numărul de
bucăţi, valoarea totala a cărţilor de acelaşi tip.
struct carte { char titlu[50], autor[50];
float pret;
char stare[50];
int bucati
int valoare} carti[100]
a. pentru a memora informaţiile aferente unei anumite cărţi, declarăm o variabilă c astfel
struct carte c;
1
Laborator 2
4. Definiti structura pentru evidenta produselor existente ( maxim 100) intr-un magazin, stiind ca pentru
fiecare produs trebuie memorate urmatoarele atribute: denumirea, pretul, cantitatea, valoarea totala a produselor de
acelaşi tip.
struct produs
{char denumire[60] ;
float pret, cantitate, valoare ; } p[100];
a. pentru a memora informaţiile aferente unui anumit produs, declarăm o variabilă pr astfel
struct produs pr;
struct cetatean
{char nume[20], starea_civila[10] ;
int varsta ;
long int salariul ; } ;
cetatean a[50], b;
a. scrieti secventa de instructiuni care citeste datele despre n cetateni
cin>>n;
for (i=1;i<=n;i++){
cout<<”Numele cetateanului “<<i<<”:”; cin>>a[i].nume;
cout<<”Starea civila pentru cetateanul “<<i<<”:”; cin>>a[i].stare_civila;
cout<<”Varsta cetateanului “<<i<<”:”; cin>>a[i].varsta;
cout<<”Salariul cetateanului “<<i<<”:”; cin>>a[i].salariu;}
2
Laborator 2
d. completati structura cetetean cu un camp data_n de tip structura care sa reprezinte data nasterii cetateanului si
scrie instructiunea prin care citesti aceasta data pentru primul cetatean.
struct data{
int zi;
int luna;
int an;};
//a fost definita o structura numita data, care retine informatia dintr-o data calendaristica
struct cetatean
{char nume[20], starea_civila[10] ;
int varsta ;
long int salariul ;
struct data data_n } ;
cetatean a[50], b;
//structura definita anterior, este folosita in structura cetatean
e. scrieti instructiunile prin care se citeste data nasterii pentru ultimul cetatean
//daca a este vectorul in care sunt memorate datele despre cetateni, iar n este numarul efectiv de elemente din a,
secventa care preia data nasterii pentru elementul n este
cin>>a[n].data_n.zi;
cin>>a[n].data_n.luna;
cin>>a[n].data_n.an;
3
Laborator 3
Probleme structuri
Se citesc de la tastatura:
n - numarul de antene
x1 y1 r1
x2 y2 r2 - coordonatele (abcisa, respective ordonata),raza
si
….. - perioada proprie ale fiecarei antene
xs ys rs
x0 y0 - coordonatele zonei
Exemplu
Pentru s=4 si antenele:
X1 =2 y1 =2 r1 =3 p1 =3
X2 =3 y2 =3 r2 =4 p2 =5
X3 =0 y3 =2 r3 =5 p3 =4
X4 =0 y4 =0 r4 =3 p4 =2
Xg =0 yi =0
se afiseaza:
1 3 4
#include <iostream.h>
#include <math.h>
struct antena{
int x,y;
float raza;} antene[50];
void main(){int n,i,x0,y0, nr=0, amin, amax;
cout<<"Dati numarul antenelor";
float d[50], dmin, dmax;
cin>>n;
for (i=1;i<=n;i++){
cout<<"Coordonata in x pentru antena "<<i<<":";
cin>>antene[i].x;
cout<<"Coordonata in y pentru antena "<<i<<":";
cin>>antene[i].y;
cout<<"Raza de acoperire pentru antena "<<i<<":";
1
Laborator 3
cin>>antene[i].raza; }
cout<<"Coordonatele locatiei de control (x0,y0)";
cin>>x0>>y0;
for (i=1;i<=n;i++){
d[i]=distanta(antene[i].x,antene[i].y,x0,y0);
if (d[i]<antene[i].raza) {cout<<"antena "<<i<<endl; nr++;}; }
if (nr==0) cout<<"Nu exista acoperire in aceasta zona" ;
dmin=d[1];
dmax=d[1];
for (i=2;i<=n;i++) {
if (dmin>d[i]) {dmin=d[i]; amin=i;}
if (dmax<d[i]) {dmax=d[i]; amax=i;};};
cout<<"Cea mai aproape este antena "<<amin<<" la distanta de "<<dmin<<endl;
cout<<"Cea mai departe este antena "<<amax<<" la distanta de "<<dmax<<endl;}
2
Laborator 4 - structuri
#include <iostream.h>
#include <conio.h>
typedef struct candidat{
int id;
char nume[20];float note[3], media;
}; //definirea tipului candidat
void cit_candidat(candidat a[], int n)
{for (int i=1; i<=n; i++){
cout<<"Nume candidat "<<i<<":"; cin>>a[i].nume;
//citirea numelui unui candidat
cout<<"Nr. legitimatie:"; cin>>a[i].id;
for (int j=1; j<=3; j++){ // citirea notelor obtinute la examen
do
{
cout<<"Nota :"<<j<<" ="; cin>>a[i].note[j];
if (a[i].note[j]<0 || a[i].note[j]>10)
//validarea notei (intre 0 si 10)
cout<<"Nota incorecta!....Repeta!"<<endl;
}
while (a[i].note[j]<0 || a[i].note[j]>10);
}
}
}
void main()
{ int nr,p,k,l=0,nrloc;
clrscr();
cout<<"Nr. candidati:";cin>>nr;
1
Laborator 4 - structuri
//ordonare alfabetica
for (p=1;p<=nr-1;p++)
for (k=p+1;k<=nr;k++)
if (c[p].nume>c[k].nume){
aux=c[p];
c[p]=c[k];
c[k]=aux;}