Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    for (int i=0; i<anno; i++)
    {
    somma = somma * (1 + tasso / 100);
    anno++;
    }
    cout << "Dopo "<< anno <<" anni, la somma sara' "<< somma <<" \n";
    Togli anno++ perchè in questo modo entra in un ciclo infinito (a meno che anno == 0 e non esegue il ciclo)
    ...
    Per il while
    codice:
    int i = 0
    while ( i<anno)
            {
               somma = somma * (1 + tasso / 100);
               i++;
            }
    ..
    Purtroppo sono negato per questo tipo di esercizi, quindi, non posso darti una mano per risolvere gli errori semantici ma solo quelli sintattici, ho notato:
    1 + tasso / 100
    questo pezzo di codice esegue tasso/100 e poi incrementa il risultato di 1, non so se va bene, ma so che spesso è un errore (magari volevi scrivere (tasso+1)/100)...
    ...
    double valore_futuro(double p);
    {
    double b = somma * pow(1 + p / 100, anno);
    return b;
    }
    anno e somma sono globali ? (ossia dichiarate prima del main)
    se non lo sono (credo di aver capito che nn lo sono: "ho dichiarato le 3 variabili tra i 3cout e cin e poi ho chiuso in questo modo") mettile globali: prima della dichiarazione del prototipo è la "convenzione"
    Experience is what you get when you don’t get what you want

  2. #12
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Grazie, sapevo di non essere molto lontano dalla meta: quello che infatti mi lasciava un po perplesso erano appunto i due incrementi di "i" e "anno". Appena ho tolto l'incremento dell anno...tutto ha funzionato. Ora non mi resta che fare la stessa cosa con while.
    Per quanto riguarda invece il terzo punto, beh faccio prima a postarti il codice che non supera le 30 righe. Ovviamente prima vorrei sapere se posso postare un codice di tale lunghezza e se soprattutto hai tempo per darci un occhiata (ti assicuro che sono di quei esercizietti da libro molto facili da capire).
    Ancora grazie e..fammi sapere!
    "To iterate is human, to recurse, divine." (R.(Heller))

  3. #13
    se non è un problema per te, un'occhiata la posso dare
    Credo che 30-50 linee nn siano esagerate cmq
    Experience is what you get when you don’t get what you want

  4. #14
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Bene! Il programma è il seguente:
    codice:
    #include <iostream>
    #include <cmath>
    
    using namespace std;
        double tasso;
        double somma;
    
        int anno;
        double valore_futuro(double p)  
        {
        double b = somma * pow(1 + p / 100, anno);
        return b;
        }   
    
    int main()
    {
        cout << "Inserisci il tasso d'interesse \n";
        double tasso;
        cin >> tasso;
        
        cout << "Inserisci somma \n";
        double somma;
        cin >> somma;
        
        cout << "Inserisci anno \n";
        int anno;
        cin >> anno;
        
        double balance = valore_futuro(tasso, somma, anno);
        cout << "Dopo "<< anno <<", il valore sara' di "<< balance <<" \n";
        
        system("pause");
        return 0;
    }
    Se anche stavolta riesci a "farmi capire senza dire", te ne sarei grato.
    Ciao.
    "To iterate is human, to recurse, divine." (R.(Heller))

  5. #15
    Inizio dalle regole di scope e lifetile:
    una variabile è visibile da quando la dichiari fino alla fine del suo "spazio"
    ossia:
    //x non esiste
    {
    int x; //x esiste da questo punto in poi

    }
    //x non esiste più
    Quindi una variabile globale, dichiarata prima dei prototipi, ha il tempo di vita (lifetime) del programma stesso, mentre una variabile dichiarata nel main o in qualsiasi funzione o blocco ( inteso con blocco un pezzo di codice racchiuso in {} parentesi graffe ) ha durata limitata al "blocco".

    Il c/cpp inoltre permette la dichiarazione di più variabili con lo stesso nome, purchè non appartenenti allo stesso "blocco", ne caso due o più blocchi siano nidificati si attua l'operazione di shadowing (mascheramento)
    es:
    {
    int x = 2;
    {
    int x = 3;
    cout << x;
    }
    cout << x;
    }
    ...
    Questo basta per farti correggere il prgramma
    Experience is what you get when you don’t get what you want

  6. #16
    Visto che non sarò molto presente in seguito ti posto anche il codice ...
    Se non vuoi puoi non guardarlo.

    mancava stdlib per utilizzare la funzione system e c'erano un po' di errori sui parametri e sulle regole di scope e lifetime ...

    codice:
    #include <iostream>
    #include <cmath>
    #include <stdlib.h>
    using namespace std;
    
    double tasso;
    double somma;
    int anno;
    
    double valore_futuro(double Tasso, double Somma,unsigned int Anno);
    
    int main()
    {
        cout << "\nInserisci il tasso d'interesse \n";
        cin >> tasso;
        cout << "\nInserisci somma \n";
        cin >> somma;
        cout << "\nInserisci anno \n";
        cin >> anno;
    
        cout << "\nDopo " << anno << ", il valore sara' di " << valore_futuro(tasso, somma, anno) << endl;
    
        cout << endl << endl;
        system("pause");
        return 0;
    }
    
    double valore_futuro(double Tasso, double Somma,unsigned int Anno)
    {
       return Somma * pow(1 + Tasso / 100, Anno);
    }
    Experience is what you get when you don’t get what you want

  7. #17
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Mi spiace, ma non riesco a capire dove "mettere mani".
    Ho dato ancora una volta un'occhiata al programma, ma non sono riuscito a beccare l'errore.
    Credo di aver capito che ci sia una ripetizione nella funzione "valore_futuro", ma non so bene dove.
    "To iterate is human, to recurse, divine." (R.(Heller))

  8. #18
    Le dichiarazioni globali erano mascherate da quelle locali:

    double tasso;
    ...
    cout << "Inserisci il tasso d'interesse \n";
    double tasso;
    cin >> tasso;

    mentre hai dichiarato una funzione con 1 parametro ma l'hai utilizzata con 3...

    poi (piccolezza) mancava stdlib per poter usare la system
    Experience is what you get when you don’t get what you want

  9. #19
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Non ci sarei mai arrivato allora, perchè quel tipo di libreria non l'ho mai incontrato durante gli studi di C++. Forse quell'esercizio andava risolto in un altro modo, ma non preoccuparti, hai fatto già abbastanza.
    Quando vuoi, vienimi a torvarmi sul mio sito.
    Grazie ancora.
    (P.s.: "nu te scerrare mai de le radici ca tieni!!!" )
    "To iterate is human, to recurse, divine." (R.(Heller))

  10. #20
    perchè quel tipo di libreria non l'ho mai incontrato durante gli studi di C++
    Non ne ho idea...
    Forse perchè system ("pause"); può essere sostituito con una qualsiasi istruzione di input, giusto per bloccare l'esecuzione del programma o può essere omesso se il programma viene lanciato da prompt...
    Grazie ancora.
    figurati
    (P.s.: "nu te scerrare mai de le radici ca tieni!!!" )
    Non succederà
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.