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ä?
VB6:lla tulee samat tulokset. Heti kun muuttujan k määrittelee, molemmista tulee kuitenkin tulokseksi 1.
En huomannut mainita, että k oli määritelty Integer-tyypiksi. Kolmosten paikalla alunperin oli muuttujat i ja j, jotka oli määritelty Long-tyypeiksi.
Oletko koittanut nuilla arvoilla.
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.