Sunteți pe pagina 1din 2

Programare 1 ______________________________________________________ Set 2 Problema 1

1
n pdurea cu alune au case mai muli pitici. Fiecare pitic lucreaz la minele din apropiere, dar
timpul de lucru din fiecare zi nu este acelai pentru toi piticii. Fiecare pitic lucreaz n fiecare zi att
ct poate, fiind pltit pentru numrul de ore efectiv lucrate.
Somnorosul, unul din pitici, ajunge la lucru la momentul t1 i lucreaz pn n momentul t2,
se duce la mas i revine n momentul t3 i lucreaz pn n momentul t4.
ntr-o lun Somnorosul lucreaz n zile, n fiecare zi respectnd acelai tipic (dar cele patru
momente pot diferi de la o zi la alta).
Timpul normal de lucru este de 8 ore / zi pentru care se pltete p galbeni pe or. Dac
lucreaz ntre 8 i 10 ore pe zi atunci plata este de 1,5*p galbeni pe or pentru toate orele peste
cele 8 corespunztoare timpului normal de lucru, iar dac lucreaz peste 10 ore atunci primete 2*p
galbeni pe or pentru toate orele lucrate peste 10 ore pe zi.
S se calculeze:
1) numrul total de ore lucrate de pitic
2) ci galbeni a ctigat piticul n luna respectiv
3) care este ctigul mediu pe or al piticului

Date de intrare
Datele de intrare se citesc din fiierul SOMNOROS.IN care are pe prima linie un numr ntreg
(n) care reprezint numrul de zile lucrate ntr-o lun.
Pe urmtoarea linie se gsete un numr real care reprezint salariul pe or al piticului (pentru
timpul normal de lucru).
Pe urmtoarele 4*n linii se gsesc cele patru momente de timp pentru fiecare zi. Fiecare
moment de timp este dat sub forma hh:mm:ss (hh reprezint ora (de la 0 la 23), mm reprezinta
minutul (de la 0 la 59) i ss reprezinta secunda (de la 0 la 59)).

Date de ieire
Rezultatele obinute trebuie nscrise n fiierul SOMNOROS.OUT, iar datele de intrare trebuie
afiate pe monitor pentru a verifica citirea lor corect.

Unui moment de timp i se asociaz o structur TIMP care are trei membri de tip ntreg.
Cele patru momente de timp pentru cele n zile vor fi memorate prin intermediul a patru
pointeri structura de tip TIMP.
Timpul lucrat (n fiecare zi) este stocat prin intermediul unui pointer la structura de tip TIMP.
Pentru calcularea sumei a doua durate de timp i a diferenei ntre dou momente de timp NU
se face transformarea in secunde, ci se face scderea (respectiv adunarea) secundelor, minutelor i
orelor.

Programare 1 ______________________________________________________ Set 2 Problema 1
2
Barem de notare
Tabel nr. 1
A1 Citirea unui moment de timp (funcia are ca parametri un pointer la o structur FILE i
returneaz o structur TIMP).
0,3
A2 Determinarea timpului lucrat pe zile (funcia are ca parametru un pointer la o structur
FILE i un ntreg i returneaz un pointer la o structur TIMP).
0,3
A2a
Alocare dinamic pentru un pointer la structura de tip TIMP. 0,3
A2b
Calcularea numrului de ore lucrate ntr-o zi (funcia primete ca parametri 4 structuri
de tip TIMP i returneaz o structur de tip TIMP)
0,4
A2ba
Calcularea diferenei ntre dou momente de timp (funcia primete ca parametri doi
pointeri la o structur TIMP i returneaz o structur TIMP)
0,4
A2bb
Calcularea sumei a dou durate de timp (funcia primete ca parametri doi pointeri la o
structur TIMP i returneaz o structur TIMP)
0,4
A3 Determinarea duratei totale lucrate (funcia primete ca parametri un pointer la o
structura TIMP i un ntreg i returneaz o structur TIMP)
0,5
A4 Determinarea ctigului total al piticului (funcia primete o structur TIMP i
returneaz un real n dubl precizie)
0,5
A5 Determinarea ctigului orar mediu 0,3
A6 Scrierea n fiier a rezultatelor (funcie care nu returneaz nimic i are parametri
necesari pentru nscrierea tuturor rezultatelor n fiier)
0,5
A7 Dealocarea corect a zonelor de memorie alocat 0,5
A8 Deschiderea i nchiderea corect a fiierelor cu care se lucreaz 0,4
A9 Scrierea corect a fiierului header 0,4
A10 Scrierea funciei main 0,6
A11 Funcionarea corect a programului 1,2
TOTAL TABEL 1 7 p

S-ar putea să vă placă și