[ Passwd @ 25.06.2005. 23:28 ] @
Evo, ovako glasi zadatak: Code: Svi mobilni operateri u Hrvatskoj pružaju mogućnost ispisa poziva. Zadan je niz poziva i potrebno je izračunati ukupnu duljinu svih razgovora. Ulazni podaci Ulazni podaci se učitavaju s tipkovnice. U prvom retku se nalazi jedan prirodan broj N (1 ? N ? 70,000), broj poziva. U svakom od slijedećih N redaka se nalazi opis jednog poziva u slijedećem formatu: h:m:s,h:m:s. To znači da je vrijeme početka i kraja razgovora odlijeljeno znakom ',' (zarez), a svako vrijeme je dano sa brojem sati, minuta i sekunda koji su međusobno odvojeni znakom ':' (dvotočka). Vrijeme je dano u standardnoj europskoj notaciji: broj sati je od 0 do 23, broj minuta i sekundi je od 0 do 59. Napomena: najduže moguće trajanje razgovora je jedan cijeli dan, a najkraće jedna sekunda. Izlazni podaci Rješenje treba ispisati na zaslon. U prvi i jedini redak treba ispisati traženo vrijeme iz teksta zadatka u formatu: d:h:m:s. Znači, broj dana, sati, minuta i sekunda treba odvojiti znakom ':'. Ispis mora biti napravljen u najboljem mogućem obliku. To znači, broj minuta i sekunda ne smije biti veći od 59, broj sati ne smije biti veći od 23. Također, broj sati, minuta i sekunda treba imati striktno dvije znamenke, što znači da treba, po potrebi, dodati određeni broj znakova '0', na početak broja. Isto tako, ako je broj dana jednak nuli, taj dio uopće ne treba ispisivati. A evo kako sam ja poceo brljat: Code: program pozivi; uses crt; var br,n,x,z:integer; vrijeme:string; Hp,Mp,Sp,Hk,Mk,Sk,trajanjeukH, trajanjeukM,trajanjeukS:array [1..20] of string; trajanjeH,trajanjeM,trajanjeS:array [1..20] of string; begin readln(n); readln(vrijeme); for x:=1 to n do begin z:=pos(':',vrijeme); Hp[x]:=copy(vrijeme,1,z-1); delete(vrijeme,1,z); z:=pos(':',vrijeme); Mp[x]:=copy(vrijeme,1,z-1); delete(vrijeme,1,z); z:=pos(',',vrijeme); Sp[x]:=copy(vrijeme,1,z-1); delete(vrijeme,1,z); z:=pos(':',vrijeme); Hk[x]:=copy(vrijeme,1,z-1); delete(vrijeme,1,z); z:=pos(':',vrijeme); Mk[x]:=copy(vrijeme,1,z-1); delete(vrijeme,1,z); Sk[x]:=vrijeme; end; for x:=1 to n do begin trajanjeH[x]:=Hk-Hp; //sad ne mogu ovo napravit jer su Hk i Hp string a ne integer trajanjeM[x]:=Mk-Mp; trajanjeS[x]:=Sk-Sp; end; br:=0; repeat br:=br+1; trajanjeukH:=trajanjeukH+trajanjeH[br]; trajanjeukM:=trajanjeukM+trajanjeM[br]; trajanjeukS:=trajanjeukS+trajanjeS[br]; until br=n; clrscr; writeln('Ukupno: ',trajanjeukH,':',trajanjeukM,':',trajanjeukS); readln; end. Svaka je pomoc dobro dosla, znaci zanima me kako pretvorit onaj string u integer kako bi mogao oduzet trajanje......a na kraju cu odredit da minuta ima do 59 sekundi........ ![]() ![]() |