Structuri de date - funcții de timp - cu structuri

Laborator
8.7/10 (3 voturi)
Conține 1 fișier: doc
Pagini : 8 în total
Cuvinte : 2074
Mărime: 12.34KB (arhivat)
Publicat de: Theodor Marginean
Puncte necesare: 0

Extras din laborator

Membrii unei structuri pot fi parametrii unei functii. Se pot utiliza si pointeri la structuri , mai ales când acestea sunt folosite ca parametri în functii. Spre exemplu, se poate apela functia f, al carei parametru este adresa de început a unei zone de memorie alocata structurii d astfel:

f(&d)

Functia f va fi declarata astfel:

void f(struct data *pd) unde pd este un pointer la structura data , care la apel se va initializa cu adresa structurii (&d).

Pentru a accesa un membru al ei, utilizam operatorul de selectie indirecta "->" tot cu

prioritate maxima.

Exemplu

pd->an

Acest acces este echivalent cu (*pd).an dar se prefera utilizarea operatorului ->

Deci, pentru a avea acces la membrii unei structuri în corpul unei functii

- se declara functia având parametru pointer spre acea structura

functie( struct nume_structura *nume_parametru_formal)

- apelul se face astfel : functie(&nume_parametru_efectiv)

- iar în corpul functiei se folosesc constructii de genul: nume_parametru_formal->nume_membru

Ca orice tip de data, tipurile structurate pot fi denumite de utilizator si în acest sens se utilizeaza specificatorul typedef astfel:

typedef struct data {

int zi, luna, an;

}DC;

O structura particulara se va declara, în continuare, utilizând tipul DC definit mai sus.

DC d;

care este echivalenta cu declaratia: struct data d;

Se recomanda, pentru lizibilitatea programelor, ca noile nume date de utilizator sa fie scrise

cu majuscule (ex. DC).

Exemplu typedef struct{

double real, imaginar;

} COMPLEX;

Se poate calcula modulul unui numar complex, utilizând urmatoarea functie:

double modul (COMPLEX *a)

{

return (sqrt(a->real * a->real + a->imaginar *a->imaginar));

}

Functia modul a utilizat functia sqrt din biblioteca math.h

Se pot defini tablouri de structuri.

Exemplu

Revenind la structura de tip personal, putem defini un tablou de structuri astfel:

struct personal{

char nume [20];

char init_tata;

char prenume [20];

struct data data_nast, data_ang;

}tab pers[20];

În acest exemplu fiecare element tab_pers[i] este o structura de tip personal.

Daca am fi declarat:

struct personal *tab_pers[20];

atunci tab_pers ar fi fost un tablou de pointeri la structuri. Deci tab_pers[i] este un pointer

la o structura de tip personal.

2. Functii de timp

a) time_t time(time_t *timer);

- returneaza numarul de secunde scurse de la 00:00:00 GMT, 1 ianuarie 1970, memorând valoarea respectiva la adresa timer (cu conditia sa fie diferita de NULL) - alegerea anului 1970 ca referinta s-a facut pentru compatibilitatea cu UNIX (referinta DOS fiind 1980);

- are prototipul în time.h;

- daca se apeleaza în forma time(NULL), valoarea este numai returnata, nu si memorata;

- time_t este definita în time.h ca long (typedef long time_t;);

Exemplu:

time_t *z,x;

char *sir;

z=(time_t*)malloc(sizeof(time_t));

x=time(z);

sir=ctime(z);

printf("timpul scurs este %ld, data este: %sn",x,sir);

...

Preview document

Structuri de date - funcții de timp - cu structuri - Pagina 1
Structuri de date - funcții de timp - cu structuri - Pagina 2
Structuri de date - funcții de timp - cu structuri - Pagina 3
Structuri de date - funcții de timp - cu structuri - Pagina 4
Structuri de date - funcții de timp - cu structuri - Pagina 5
Structuri de date - funcții de timp - cu structuri - Pagina 6
Structuri de date - funcții de timp - cu structuri - Pagina 7
Structuri de date - funcții de timp - cu structuri - Pagina 8

Conținut arhivă zip

  • Structuri de date. Functii de timp(cu structuri).doc

Alții au mai descărcat și

Grilă sisteme informaționale de gestiune - Access

Adăugarea de câmpuri la o tabelă se face în modul de vizualizare:...... Previzualizare inaintea imprimarii Aplicarea unei restrictii de...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Baze de Date

3.Introducere in bd si sgbd-uri Definitie: Numim baza de date o colectie partajata de date aflata in interdependenta logica impreuna cu o...

String

Sirul de caractere este un container de tip secventa. Clasa string este construita folosind sablonul basic_string Un operand de tip secventa poate...

Te-ar putea interesa și

Programarea și conducerea producției

1.Date initiale 1.1Tema proiectului Programarea si conducerea productiei pentru fabricarea unui set de repere (corp de pompa,capac cu suport si...

Programarea și conducerea producției

1.Date initiale 1.1.Tema proiectului Programarea si conducerea productiei pentru fabricarea unui set de repere din component produsului P (Suport...

Soft educațional pentru învățarea limbii engleze

ARGUMENT Continua dezvoltare şi răspândire a tehnologiei informaţiei continuă să surprindă încă şi astăzi. Dacă în anii ‚’70 sau ’80 oamenii când...

Formele de Turism

Introducere Turismul a devenit in zilele noastre o activitate la fel de importanta precum cea desfăşurată în alte sectoare-chei din economia...

Reproiectarea managerială a SC Mecanica SA

ANALIZA VIABILITATII ECONOMICE SI MANAGERIALE Analiza subsistemului organizatoric Datele culese din organigrama si din incadrarea cu personal, au...

Subiecte licență contabilitate

Pe baza indicatorilor: mil.lei Nr.crt. INDICATORI P0 P1 1. Cifra de afaceri 3.420.000 3.600.000 2. Active circulante, din care: 190.000 180.000...

Baze de Date

Conţinutul temei Datele sunt stocate în memoria internă şi memoria externă a oricărui sistem de calcul. Organizarea datelor se referă la procesul...

Bazele Tehnologiei Informației

Capitolul 1. Concepte de baza privind tehnologia informationala si de comunicatii 1.1. Informatia, resursa strategica a societatii Orice...

Ai nevoie de altceva?