Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

zadatak sa duljiom razgovora ??

[es] :: Pascal / Delphi / Kylix :: zadatak sa duljiom razgovora ??

[ Pregleda: 1855 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon zadatak sa duljiom razgovora ?? 25.06.2005. u 23:28 - pre 229 meseci
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........
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon Re: zadatak sa duljinom razgovora ?? 25.06.2005. u 23:31 - pre 229 meseci
I nadam se da se necete ljutit sto je tema malo "presiroka"
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
62.108.102.*

Sajt: https://avramovic.info


+46 Profil

icon Re: zadatak sa duljiom razgovora ?? 25.06.2005. u 23:32 - pre 229 meseci
e ne znam za TP, ali u delphiju mozes (cini mi se) stringtotime (ili tako nesto) pa da onda saberes vremena, i onda timetostring (timetostr, ili kako vec)

ne znam, slabo se bavim vremenom :)
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: zadatak sa duljiom razgovora ?? 25.06.2005. u 23:44 - pre 229 meseci
Da, to sam koliko se secam rekao (bas tebi) da treba samo da ides cifru po cifru. Npr. ako je strig "543" i treba da ga prebasic u broj tako da je m = 543, krenes od pocetka stringa, ispitac prvi char, i onda pomnozis m sa 10 i dodas mu cifru u zavisnosti od chara.
Imas i f-ju (valjda je val) koja to radi, ali je nibi preporucivao pre svega sto radi samo za Integer a i ovaj kod da otkucas treba ti 3min...

Code:

m := 0;
for i := 1 to length (s) do begin
   c := Ord (s [i]) - Ord ('0');
   m := m * 10 + c;
end;

Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: zadatak sa duljiom razgovora ?? 25.06.2005. u 23:47 - pre 229 meseci
E da, a sto se tice sabiranja vremena to radis trivijalno samo sto imas 2-3 uslova u ovim prekoracenjima od 23 do 0 i od 59 na 00... Tu vidis da li je pocetno vreme vece od krajnjeg, ako jeste samo oduzmes sate pa opet to gledas minute, a ako je manje onda taj rezulatat oduzmes od 24... Mislim, videces sam koje uslove treba da imas...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: zadatak sa duljiom razgovora ??

[ Pregleda: 1855 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.