Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Potenssiongelma

Sale [12.07.2006 09:13:37]

#

:)

Ennenkuin kukaan käyttää aikaansa tuohon, niin kyseessähän on ihan sulkuvirhe! Löysin virheen aivan melkein edellisen viestin kirjoitettuani. Pahoitteluni teille, hyvä mieli meille!

vol=0.00011547*pow(plot_diameters[k],1.89074+0.019089*(plot_diameters[k]+h)) * pow(h,0.64146-0.034968*plot_diameters[k]);

Hei

Koetan saada eraan laskun toimimaan C:lla mutta ei onnaa.

Excelin laskentapohjaan kaava on kirjoitettu:

0.00011547*A3^(1.89074+0.019089*(A3+B3))*B3^(0.64146-0.034968*A3)

Missa A3 on läpimitta ja B3 pituus.

Koetin vääntää siita vastaavan koodinpätkän, joka kuitenkin laskee double -tyypin muuttujaan arvoja kuten 3.123234345543e-007. Eli ei sinne päinkään.

Muuttujat ovat doubleja. Koodissa kaava näyttää tältä:

vol=pow(0.00011547*plot_diameters[k],1.89074+0.019089*(plot_diameters[k]+h)) * pow(h,0.64146-0.034968*plot_diameters[k]);

Tässä plot_diameters[k] on läpimitta ja h pituus.

Mikä pielessä, koetin myös apumuuttujien avulla, mutta sama tulos.

Metabolix [12.07.2006 10:02:18]

#

Laskujärjestyssäännöt! 0.00011547 ei kuulu potenssin kantalukuun, ota se pois pow-funktiosta.
0.00011547 * A3^x oli siis lauseke.
0.00011547 * (A3^x) on oikein,
(0.00011547 * A3)^x on väärin.

ajv [12.07.2006 19:03:05]

#

Jahas, ajattelin jo että joku on postas tänne vahingossa demin foorumin sijaan... :)

Vastaus

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

Tietoa sivustosta