CB-bugi, potenssit

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
mza
Newcomer
Posts: 20
Joined: Mon Aug 27, 2007 11:34 pm

CB-bugi, potenssit

Post 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.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: CB-bugi, potenssit

Post by Koodiapina »

mza wrote:Jos Zeroa näkyy joskus
viewtopic.php?f=9&t=759&start=0 ;)
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: CB-bugi, potenssit

Post 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)
mza
Newcomer
Posts: 20
Joined: Mon Aug 27, 2007 11:34 pm

Re: CB-bugi, potenssit

Post 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. ;)
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: CB-bugi, potenssit

Post 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
Post Reply