scarlett68 (Normal User)
Newbie
Messaggi: 10
Iscritto: 05/03/2010
|
Mi serve, cortesemente aiuto per realizzare un programma in c++ che permette di calcolare i primi 10000000 numeri della costante e (numero di nepero). Io l'ho fatto ma non funziona!
EDIT by HeDo: C++ nel titolo... siamo nella sezione C++...
Ultima modifica effettuata da HeDo il 14/03/2010 alle 18:44 |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Posta quello che hai scritto, dì cosa non funziona: sono errori di compilazione, di semantica. Non abbiamo la sfera di cristallo.
Ultima modifica effettuata da gio97 il 05/03/2010 alle 18:16 |
|
scarlett68 (Normal User)
Newbie
Messaggi: 10
Iscritto: 05/03/2010
|
scusate! ecco il programma
main(){
float y=1, x=1;
int n=1;
do {
y= y/n;
x= x+y;
count<<"\n %10d %25.21f %25.21f", n, y, x; //errore
n= n+1;
if (!(n%10)) getch 1);
}while (n<10000000);
getch;
}
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Progetto piuttosto ambizioso!
Ho letto il tuo programma, e non ho trovato una struttura di dati in grado di
memorizzare 10000000 numeri.
Ti ricordo che i "float" sono formati solo da 4 byte, quindi possono memorizzare un numero di soli 6/7 cifre!
Inoltre la funzione "count" non esiste.
Ultima modifica effettuata da Poggi Marco il 05/03/2010 alle 23:36 |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
anche se fosse cout, quello sembra un printf...
|
|
giuseppe93 (Ex-Member)
Pro
Messaggi: 166
Iscritto: 02/08/2009
|
Postato originariamente da scarlett68:
count<<"\n %10d %25.21f %25.21f", n, y, x; //errore
|
si direbbe che hai fatto un po' di confusione tra c e c++!
si scrive in questo modo:
cout<<endl<<" "<<n<<" "<<x<<" "<<y; |
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Postato originariamente da scarlett68:
Mi serve, cortesemente aiuto per realizzare un programma in c++ che permette di calcolare i primi 10000000 numeri della costante e (numero di nepero). Io l'ho fatto ma non funziona! |
Immagino tu intendessi "le prime 10000000 cifre, del numero di napier".
In ogni caso non è semplicissimo, a causa dell'enorme numero di cifre che ti sei posto come obbiettivo.
A giudicare dal codice che hai postato, senza offesa, è decisamente al di là delle tue attuali capacità. Potresti usare una libreria per grandi numeri, ma il miglior consiglio che ti posso dare è di rimandare il tuo progetto. Studia e comincia a fare pratica con problemi più semplici. Ultima modifica effettuata da Matthew il 06/03/2010 alle 5:20 |
|
scarlett68 (Normal User)
Newbie
Messaggi: 10
Iscritto: 05/03/2010
|
scusate ho scritto una n in più a cout e comunque l'esercizio è stato assegnato dal prof di matematica ( Stiamo studiando i limiti) ma credo che volesse dimostrare che per n piccoli tutto ok (si approssima a e) per n grandi invece il risultato è 1, perchè 1/n diventa qualcosa del tipo 0.000000000001 e per un calcolatore questo è 0 , quindi (1+0)^n = 1 per qualsiasi,( La settimana scorsa in laboratorio abbiamo studiato gli errori di rappresentazione!)
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Ovviamente l'esercizio è semplice se ti accontenti di poche cifre significative, come il tuo prof ha mostrato. Se vuoi calcolare più cifre, diventa un problema, perchè la variabile più precisa è il double, il quale può contenere solo una decina di cifre significative.
Esistono librerie apposite per fare quello che hai chiesto, ma senza queste librerie è un problema abbastanza complicato.
|
|