[ dalmasica @ 04.03.2007. 15:39 ] @
1. Tvrtka VH se bavi telefonijom. U svrhu što bolje suradnje s korisnicima tvrtka im šalje detaljne ispise svih njihovih poziva, zajedno s vremenom trajanja i cijenama. Za svaki razgovor zapisuje se sat, minuta i sekunda početka i kraja razgovora, te prve tri znamenke zvanog broja. Dan je podijeljen na ukupno dvije vremenske tarife o kojima, između ostaloga, ovise cijene. Tablica cijena ima sljedeći oblik: Tarifa/vrijeme----- 07-19 sati-------- 19-07 sati 098/091---------- 1.60 kn----------- 0.80 kn 099-------------- 0.62 kn----------- 0.31 kn Nacionalna tarifa-- 0.23 kn----------- 0.115 kn Napišite program koji će unositi vrijeme početka i završetka razgovora, te prve tri znamenke biranog broja. Program treba ispisivati cijenu razgovora (ako je vrijeme razgovora trajalo više od pune minute, vrijeme se zaokružuje na prvu veću minutu). Ja sam pokušala na slijedeći način, ali što ako razgovor traje od 6:30 do 7:30...? PROGRAM tarife; VAR h1,h2,m1,m2,s1,s2,broj:INTEGER; t:REAL; BEGIN WRITE('Upišite početak h1:m1:s1- ');READLN(h1);READLN(m1);READLN(s1); WRITE('Upišite završetak h2:m2:s2- ');READLN(h2);READLN(m2);READLN(s2); t:=(h2-h1)*60+(m2-m1)+(s2-s1)/60; WRITE('Upišite prve 3 znamenke biranog broja: ');READLN(broj); IF (h1>7) AND (h1<19) AND (h2>7) AND (h2<19) THEN BEGIN CASE broj OF 098,091: WRITELN (round(t)*1,6); 099: WRITELN (round(t)*0,62); 021: WRITELN (round(t)*0,23); ELSE CASE broj OF 098,091: WRITELN (round(t)*0,8); 099: WRITELN (round(t)*0,31); 021: WRITELN (round(t)*0,115); END; READLN END. |