Sunteți pe pagina 1din 4

Tipuri de date:

-predefinite: intregi, reale, caracter;


-structurate: tablou, sir de caractere (structura elementelor din tablou si din sir de caractere =
omogenitate=toate elementele sunt de acelasi tip de baza)

Ex:

-examen de capacitate
nume, pre,mr,mm,mig,mgen;
char nume[1000][20], pre[1000][20];
float mr[1000],mm[1000],ig[1000],mgen[1000];
int n;

-exista posibilitatea de a define o structura neomogena
un element- elevul cu toate datele: nume, pre,mr,mm,mig,mgen;


Tipul inregistrare-articol-struct

Def:

struct [nume]
{
tip1 lista1;
tip2 lista2;

tipn listan;
}[lista_var];

Ex:
struct elev
{
char nume[20],pre[20];
float mr,mm,mig,mgen;
};
struct elev v[1000], x;

variantele noi de limbaj C accepta: elev v[1000], x;

struct elev
{
char nume[20],pre[20];
float mr,mm,mig,mgen;
}v[1000], x;


struct
{
char nume[20],pre[20];
float mr,mm,mig,mgen;
};
struct elev v[1000], x;

NUU:
struct elev
{
char nume[20],pre[20];
float mr,mm,mig,mgen;
};

Definitia tipurilor:

typedef = permite definirea tipurilor de date;

typedef structura_cunoscuta structura_noua;

Ex:

typedef int Intreg; int a[100],c; Intreg a[100],c;
typedef int[100] Vector; int a[100]; Vector a;
typedef Vector[100] Matrice; int a[100][100]; Vector a[100]; Matrice a;

Definitia tipului struct folosind typedef:

typedef struct
{
tip1 lista1;
tip2 lista2;

tipn listan;
}Nume;
Nume=tip de date nou

typedef struct
{
char nume[20],pre[20];
float mr,mm,mig,mgen;
}Elev;

Elev v[1000],x;

tip de date=orice tip de date cunoscut sau definit anterior(int,float,char,struct)

Ex:

typedef struct
{
int z,l,an;
}Data;
typedef struct
{
char nume[20],pre[20];
Data x;
float mr,mm,mig,mgen;
}Elev;

Elementele care formeaza variabilele din struct se numesc campuri.
Accesul la un camp al structurii se realizeaza folosind caracterul punct .

typedef struct
{
int z,l,an;
}Data;
typedef struct
{
char nume[20],pre[20];
Data x;
float mr,mm,mig,mgen;
}Elev;
Elev x,v[1000];
int n;

x.nume,x.pre,x.mr,x.mm,x.mig
x.mgen=(x.mr+x.mm+x.mig)/3
x.x.z; x.x.l; x.x.an

v[i].nume, v[i].pre

Operatii si functii pentru struct:

-variabilele de tip struct nu pot fi citite sau afisate;
-cin>>x; cout<<x; cin>>v[i]; cout<<v[i] <= NUUUUU
-pot citi si afisa campurile
cin>>x.nume>>x.pre>>x.mr>>
cout<<x.nume<<x.pre<<
-toate operatiile si functiile definite pe tipul de date al campului sunt preluate de tipul
struct;

functiile pentru siruri de caractere: x.nume, x.pre, v[i].nume, v[i].pre

Atribuirea intre doua variabile de acelasi tip struct

Elev, v[100], x;
x=v[1]; v[3]=x;