Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    4

    [C++] esercizio numero di nepero

    salve a tutti,
    come da titolo vorrei una mano con un esercizio:
    devo scrivere un programma che valuti il numero di nepero con la formula
    e=1+1/1!+1/2!.....
    ne ho gia scritto uno che "funziona"
    Codice PHP:
    #include <iostream>
    using namespace std;float fatt (int num)
    {
    int a=numfatt=1;
    while(
    a>1){        fatt=fatt*a;a=a-1;}
    return 
    fatt;}
    int main(){    float a,ris;    cout<< "ricorda , piu termini della serie prendiamo in considerazione, piu il valore di e sarà preciso"<<endl;    cout<< "indica a che termine della serie vuoi fermarti "<<endl;    cin>>a;    ris=1;    while(a>=1)    {        ris=ris+1/fatt(a);        a=a-1;    }

        
    cout<< "il numero di nepero è : "<<ris<<endl;


    ora però ne vorrei scrivere uno che stampi il valore di "e" senza che io inserisca alcun valore;
    in poche parole vorrei scrivere una funzione (cosi come ho fatto per il fattoriale) che valuti "e".

    avete dei suggerimenti?
    come potrei fare?
    Grazie a tutti!
    Ultima modifica di sici_90; 09-03-2015 a 17:38

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    4
    ragazzi sono riuscito a risolvere...
    ora posto il codice...
    nel caso in cui potesse interessare a qualcuno.
    Codice PHP:
    #include <iostream>
    using namespace std;float fatt (int num)
    {
    int a=numfatt=1;
    while(
    a>1){        fatt=fatt*a;a=a-1;}
    return 
    fatt;}
    float nepero (float num){ float a=num=0nepero=1;while(a<=20)    {        a=a+1;        nepero=nepero+1/fatt(a);    }    return nepero;}
    int main(){float a=1;cout<< "il numero di nepero è : "<<nepero(a)<<endl;
        return 
    0;} 

  3. #3
    Il mio consiglio per il futuro è quello di organizzare il codice... usa uno standard di codifica e seguilo alla lettera, perché con programmi di grosse dimensioni, questo stile di programmazione, non ti porta da nessuna parte. Inoltre utilizzi un ciclo while quando potresti utilizzare un for, che ti porta a fare molti meno e rende il codice più facile da leggere.

    Tieni a mente che il fattoriale di un numero negativo non è definito, inoltre lavori con un int e ritorni un float... sarebbe opportuno utilizzare un intero senza segno, come parametro. Alla funzione "nepero" invece, il parametro proprio non lo usi.

    Guarda qua:
    codice:
    #include <iostream>
    using namespace std;
    
    
    long fattoriale (unsigned num) {
        long fatt = 1;
        for(unsigned i = 2; i <= num; i++) {
            fatt = fatt*a;
        }
        return fatt;
    }
    
    
    double nepero (unsigned iterazioni = 20) { 
        double e = 1;
        for(unsigned i = 0; i < iterazioni; i++) {
            e += (double)1/fattoriale(i);
        }    
        return e;
    }
    
    
    int main() {
        for(int i = 0; i < 20; i++) {
            cout << "Il numero di nepero all'iterazione n° " << i + 1 << " è : " << nepero(i) << endl;
        }
        return 0;
    }
    Experience is what you get when you don’t get what you want

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.