Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB5:n virhe

setä [08.10.2005 19:36:50]

#

Tulipa tuon palindromitehtävän yhteydessä vastaan omituinen VB5:n virhe. En ole tarkistanut VB6:sta.

k = Int(Log(3) / Log(3))
Print k  '=> 0
Print Int(Log(3) / Log(3)) '=> 1

Tekeekö saman virheen muilla vai onko vikaa koneessa tai kenties silmissä?

hunajavohveli [08.10.2005 20:12:41]

#

VB6:lla tulee samat tulokset. Heti kun muuttujan k määrittelee, molemmista tulee kuitenkin tulokseksi 1.

setä [08.10.2005 20:55:53]

#

En huomannut mainita, että k oli määritelty Integer-tyypiksi. Kolmosten paikalla alunperin oli muuttujat i ja j, jotka oli määritelty Long-tyypeiksi.

ZcMander [09.10.2005 18:36:53]

#

Oletko koittanut nuilla arvoilla.

setä [09.10.2005 19:02:50]

#

Tarkistin sekä koodissa että immediateikkunassa. Jostain syystä VB5 laskee eri tavalla sijoituskäskyssä ja tulostuskäskyssä. Vaikka molemmissa on tuo Int-funktio tulee eri tulos ja sijoituskäskyllä siis väärä tulos. Ei oikein uppoa kaaliin.

setä [10.10.2005 10:02:22]

#

Ihmettelin mitä ZcMander tarkoittaa nuilla arvoilla mutta tarkoittikin varmaan muilla arvoilla. Virhe tulee esim. arvoilla 3,9,10,11,12,13,17,21,22,24,26,27,29,30,31,34,41 jne. Muilla tulee oikea arvo eli 1. Kun jättää sijoituskäskyn pois ja printtaa suoraan lausekkeen arvon tulee kaikki oikein. Aika mystinen virhe.

Vastaus

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

Tietoa sivustosta