Page 1 of 1
CB-bugi, potenssit
Posted: Sun Aug 17, 2008 2:05 pm
by mza
Taas täällä, pitkästä aikaa.
Code: Select all
Text 0,0,-(4.0)^1.1
DrawScreen
WaitKey
Tuloksena on NaN, koska (-4.0)^1.1 ei ole määritelty. Tämä on aiheuttanut lukuisia ongelmia, ehkä aiheettomia maveja jne projekteissani. Myös mielestäni loogisempaa olisi myös, että -4.0^1.1 tarkoittaisi samaa kuin -(4.0)^1.1. Jos Zeroa näkyy joskus, niin antakaahan tietoa eteenpäin.
Re: CB-bugi, potenssit
Posted: Sun Aug 17, 2008 2:20 pm
by Koodiapina
mza wrote:Jos Zeroa näkyy joskus
viewtopic.php?f=9&t=759&start=0 ;)
Re: CB-bugi, potenssit
Posted: Sun Aug 17, 2008 2:57 pm
by Dande
mza wrote:Taas täällä, pitkästä aikaa.
Code: Select all
Text 0,0,-(4.0)^1.1
DrawScreen
WaitKey
Tuloksena on NaN, koska (-4.0)^1.1 ei ole määritelty. Tämä on aiheuttanut lukuisia ongelmia, ehkä aiheettomia maveja jne projekteissani. Myös mielestäni loogisempaa olisi myös, että -4.0^1.1 tarkoittaisi samaa kuin -(4.0)^1.1. Jos Zeroa näkyy joskus, niin antakaahan tietoa eteenpäin.
En näe tuossa mitään bugia, sillä cb:ssä unaarinen - (eli siis negaatio) on toiseksi korkein suoritusprioriteetiltä (heti sulkeiden jälkeen) ja sen jälkeen tulee vasta potenssiin korotus. Joten mielestäni se on ihan oikein että -(4.0)^1.1 = -4.0^1.1 =NaN. Vai olisiko sinusta bugi, jos 3*2+1=7 sen sijasta että siitä tulisi 3*3=9
Tuollaisen lausekkeen saat laskettua siis -(4.0^1.1)
Re: CB-bugi, potenssit
Posted: Sun Aug 17, 2008 3:46 pm
by mza
Cb:n suoritusjärjestys taitaa sitten poiketa matematiikan perusjärjestyksestä tässä. Miinus pitäisi olla suluissa, jotta se lasketaan mukaan potenssiin, jos mennään matemaattisesti oikein.
Re: CB-bugi, potenssit
Posted: Sun Aug 17, 2008 3:50 pm
by Dande
mza wrote:Cb:n suoritusjärjestys taitaa sitten poiketa matematiikan perusjärjestyksestä tässä. Miinus pitäisi olla suluissa, jotta se lasketaan mukaan potenssiin, jos mennään matemaattisesti oikein.
Jokaisessa ohjelmointikielessä mennään ohjelmointikielen määritelmän sääntöjen mukaan, vaikka niiden mukaan pluslasku suoritettaisiin ennen kertolaskua. CB:n operaattoreiden prioriteetit löytyväy manuaalin kohdasta CoolBasic Ohjelmointikieli -> Laskutoimitukset