Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Ongelma vähentämisessä (QB) (VB6)

Sivun loppuun

Latska [11.05.2004 19:06:53]

#

Niin... Olen tekemässä ohjelmaa aktiivisille tietokoneen käyttäjille. Ilmeni kuitenkin pieni pulma. En hallitse timereitä joten pakko käyttää FOR-NEXT lauseita. Kun ajan ohjelman se näyttää seuraavaa:
"Olen esim.Syömässä ja palaan 1 tunnin -45 minuutin ja 32 sekunnin päästä."
Unohdin alunperin vähennyslaskut, mutta niidenkään kanssa ei pelaa saisinko apua?

setä [12.05.2004 11:27:28]

#

Millanen vähennyshommeli on hukassa. Siis esim. viis miinus kaks lasketaan tolleen:

Print 5 - 2

Antaa, yllätys yllätys, tulokseksi 3 :)

Latska [12.05.2004 20:49:55]

#

Nii että pitäis pistää koodia, niinkö? No tässäpä sitä...

1 :
 DO UNTIL INKEY$ = CHR$(27)
  CLS
  FOR i = 1 TO 24 - r
   FOR o = 1 TO 60 - e
    FOR p = 1 TO 60
     FOR a = 1 TO 90000
     IF s = 0 THEN s = 60 AND e = e - 1
     IF e = 0 THEN e = 60 AND r = r - 1
     IF r = 0 AND e = 0 AND s = 0 THEN PRINT "Aika on täysi. Jos minua ei näy, huuda.": END
     LOCATE 12, 1
     PRINT "Olen "; q$; " ja palaan "; y - r; " tunnin "; t - e; " Minuutin ja "; s; " sekunnin päästä."
     LOCATE 15, 5
     PRINT u$
     NEXT
     s = s - 1
    NEXT
    e = e - 1
   NEXT
   r = r - 1
  NEXT
 LOOP

hunajavohveli [12.05.2004 20:55:12]

#

Hmm... eikö olisi järkevää pitää aika vain yhdessä muuttujassa sekunteina? Eli minuutti olisi 60 sekuntia ja tunti 3600 sekuntia jne. Ja sitten jos kuitekin haluat näyttää ajan erikseen tunteina, minuutteina ja sekunteina, niin sehän onnistuisi kätevästi MOD-operaattorilla vai kuinka?

hunajavohveli [12.05.2004 21:02:27]

#

Okei, koodi lienee paikallaan. :)

CLS

s = 4868       'sekuntien kokonaism??r?

PRINT "Tunteja:", INT(s / 3600)
PRINT "Minuutteja:", INT((s MOD 3600) / 60)
PRINT "Sekunteja:", INT((s MOD 3600) MOD 60)

hunajavohveli [12.05.2004 21:04:47]

#

Edit: Tämänkin tekaisin tuossa äsken viidessä minuutissa (enkä ollut koskaan tehnyt tällaista aiemmin) joten bugeja voi ilmetä, mutta kyllä tämän "pitäisi" toimia. :)

Tuo Edit oli tarkoitus pistää muokkaukseen, mutta pukkasi MySQL-erroria ja valitti ettei muka muokkausoikeutta. Kumma juttu...

mamaze [12.05.2004 21:16:49]

#

tästähän ei saa edes selvää teetkö ohjelmaa Visual Basicille vai QBasicille!

suhteutat 60:ntä 100:n
ja jaat muut laskut sitten niiden mukaisesti.

Edit tai mikälie: ei toimi koska tuolla tapaa sekunttien tiheys johtuu koneen nopeudesta.

mamaze [12.05.2004 21:18:41]

#

oho tyhmyydestä sakotetaan kun en katsonut muuta kuin tuota ekaa kysymystä. kummallekkohan nyt tosiaan lienee...:D

hunajavohveli [13.05.2004 15:59:35]

#

Onnistuiko tuo juttu siis jo, vai tarvitsetko vielä apua? Et muuten tarvitse noita rivinumeroita.

miiro [13.05.2004 16:23:11]

#

eikös tää oo vb:lle koska latska sano ettei hallitse timereitä vai onko qbasicillakin timereitä?

hunajavohveli [13.05.2004 18:36:32]

#

Meinaa vissiin QB:n TIMER-funktiota, joka palauttaa keskiyöstä kuluneiden sekuntien määrän.

Latska [13.05.2004 21:55:13]

#

hunajavohveli kirjoitti:

Onnistuiko tuo juttu siis jo, vai tarvitsetko vielä apua? Et muuten tarvitse noita rivinumeroita.

Toimii joo. Piti pistää koodi uusiks. Siitä nuo rivinumerot.

hunajavohveli kirjoitti:

Meinaa vissiin QB:n TIMER-funktiota, joka palauttaa keskiyöstä kuluneiden sekuntien määrän.

Bingo!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta