Table of Contents

Laborator 09 - Structuri-Enumerări-Uniuni

Problema 1 (rezolvată)


Scrieți un program în care să se definească o structură Punct ce are ca membrii coordonatele x și y. Să se citească de la tastatură coordonatele pentru un Punct p și să se afișeze sub forma (x,y). Observați folosirea structurilor (definire, accesare membrii).

Date de intrare

Doua numere reprezentand coordonatele punctului

Date de ieşire

Punctul in formatul din exemplul oferit

Restricţii

Exemplu

Intrare Ieşire
8.6 (8.60,3.50)
3.5
Rezolvare

Programul C care implementează cerinţa problemei de mai sus va fi:

#include <stdio.h>
 
typedef struct {
     float x, y;
} Punct;
 
int main ()
{
     Punct p;
 
     printf("Introduceti x: ");
     scanf("%f", &p.x);
     printf("Introduceti y: ");
     scanf("%f", &p.y);
 
     printf("(%.2f,%.2f)\n", p.x, p.y);
 
     return 0;
}

Problema 2


Moduri în care timpul poate fi exprimat într-un program C:

struct tm { // definita in time.h
    int tm_sec,tm_min, tm_hour; // sec (0-59), min (0-59), ora (0-23)
    int tm_mday, tm_mon, tm_year; // zi (0-31), luna (0-11), an (dupa 1900)
    int tm_wday; // ziua din saptamana (0-6)
    int tm_yday; // ziua din an (0-365)
    int tm_isdst; // +1 Daylight Savings Time, 0 No DST, -1 don't know
};

Pentru a facilita lucrul cu date ce reprezintă timpul sunt declarate în biblioteca time.h mai multe funcții. Câteva funcții din time.h:

Să se scrie un program pentru afișarea orei și datei folosind funcțiile din time.h descrise mai sus.

Problema 3


Să se scrie și să se verifice o funcție pentru transformarea orei din struct tm în șir de caractere (se vor afișa oră, minut, secundă) :

char* timestr(struct tm t, char* time);

Rezultatul funcției este același cu al doilea argument și reprezintă adresa unde se depune șirul de caractere rezultat.

Problema 4


Să se definească o structură pentru un vector struct vector de întregi alocat dinamic care conține:

Să se scrie funcții pentru:

Testaţi programul adăugând pe rând, şi afişând vectorul după fiecare adăugare, numerele de la 0 la 100.

Problema 5


Să se definească o structură pentru un număr complex cu componente reale (de tip float) şi funcţii pentru operatorii aritmetici cu numere complexe:

Folosind funcţiile anterioare, să se scrie un program pentru calulul valorii unui polinom de variabilă complexă cu coeficienţi reali.

Problema 6


Să se scrie un program pentru citirea unor cuvinte și afișarea numărului de apariții al fiecărui cuvânt.

Problema se va rezolva în două variante diferite:

Exemplu

Intrare Ieşire
6
unu doi
trei doi trei trei
unu 1
doi 2
trei 3