Newsgroup: it.comp.lang.c
Titolo: Problema con variabile

Salve, scusate del disturbo ma avrei bisogno di una mano.
Sto scrivendo un programma, ma ho un problema con una variabile. Dopo averla
dichiarata le ho assegnato un valore cosě:
zero =  a[0]*pow(x, 8) + b[0]*pow(x, 7) + c[0]*pow(x, 6)
                    + d[0]*pow(x, 5) + e[0]*pow(x, 4) + f[0]*pow(x, 3)
                    + g[0]*pow(x, 2) + h[0]*x + i;
dove zero č la variabile che mi da problemi mentre tutte le altre, compresi
gli array sono corretti come valori. Li ho controllati tutti col brakpoint e
sono corretti:
a[0] = 0
b[0] = 0
c[0] = 1
d[0] = 0
e[0] = 0
f[0] = -9
g[0] = 0
h[0] = 0
i = 8
x = 1
Perň mi risulta dal programma che zero = 8, dopo il calcolo.
Ho provato a fare lo stesso pezzo di programma da solo in un programma vuoto
e mi risulta giustamente 0. L'unica differenza č che, sempre col breakpoint,
ma da come valore di zero prima di eseguire il calcolo 6618616, invece di
dirmi come normalmente variabile zero non disponibile (usando Borland C++).
Quindi, la differenza tra il programma intero e quello di prova in cui
esegue solo l'equazione č questo valore della variabile zero. Il resto č
uguale. Che possa essere questo il problema? Se vi puň essere utile cmq, la
variabile zero č usata per la prima volta nel programma intero, non possiede
vecchi valori.
Spero che qualcuno mi possa aiutare.
Ramses

Salve, scusate del disturbo ma avrei bisogno di una mano.
...
Solo un sospetto... hai incluso <math.h> nella funzione che
esegue questo calcolo ? Se non lo hai fatto allora il problema
e' che il valore di ritorno di pow() viene dedotto erroneamente
come int con conseguenze che giustificherebbero quanto osservi.
Se questo e' il problema e' anche strano che il compilatore non
ti abbia generato un warning al riguardo. L'uso dei prototype
non e' obbligatorio in C ma molti compilatori avvisano comunque
della deduzione implicita di parametri/return type perche' si
tratta di errori molto fastidiosi che altrimenti risulta
difficile individuare.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 wrote in message
news:3b1a1954...@news.interbusiness.it...


 come int con conseguenze che giustificherebbero quanto osservi.
Ho provato a cambiare tutto senza usare la math, ma non serve a nulla,
sempre uguale.
Ramses

sempre uguale.
L'include di <math.h> *DEVE* essere presente... altrimenti non c'e'
da stupirsi che la cosa non funzioni. Se <math.h> e' incluso e sei
sicuro che i valori dei coefficienti siano quelli che hai detto
allora effettivamente c'e' qualcosa di strano.
Per andare a fondo e' pero' necessario avere qualcosa di osservabile.
Si tratta di un programma molto grande ? Se non e' gigantesco e me
lo mandi per mail posso provare a dargli un'occhiata (non prometto
pero' nulla).


 
http://www.netservers.com/~agriff
Ramses
--
http://evilzone.tsx.org

 fuori 0.
Prova a spezzare la somma in piu` parti:
zero = a[0]*pow(x, 8);
zero += b[0]*pow(x, 7);
...
ed esegui passo passo con il debugger. Il comportamento e` comunque molto 
strano, non e` che hai combianato prima qualche casino con i puntatori?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La Via prosegue senza fine."
	Bilbo Baggins - Il Signore degli Anelli - J.R.R. Tolkien

 wrote in message
news:9fg90j$3qi$1...@dreamland.darkstar.net...


grazie lo stesso.
beh, a questo punto dicci cosa era che non funzionava ;-)
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 wrote in message
news:YugcO=1F2XOwpKP7a...@4ax.com...
