Visualizzazione risultati 1 fino 22 di 22

Discussione: progetto c++

  1. #1
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito progetto c++

    CIao a tutti, sono alle prime armi con il c++ e volevo chiedere se avevo fatto bene questo:
    Codice:
    //programma calcolo equazioni 2° grado
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    double a, b, c, x1, x2, d;
    int main ()
    {
        cout<<"Inserisci il valore di a: ";
        cin>>a;
        cout<<"Inserisci il valore di b: ";
        cin>>b;
        cout<<"Inserisci il valore di c: ";
        cin>>c;
        
        d = b * b - 4*a*c; // calcola il delta
        if ( d>0 )
        {
             x1 = (-b -sqrt(d))/2*a;
             
             x2 = (-b +sqrt(d))/2*a;
             
             cout<<"x1= "<< x1 << "x2= "<<x2<< endl;
             } else
              {
                  cout<<"L'equzione non e' possibile in R perche' il delta e' negativo." ;
                  
                  }
                  system ("pause");
                  }

  2. #2
    Guest

    Predefinito

    Prova a compilarlo e se non lo compila posta gli errori.
    EDIT:
    sostituisci:
    Codice:
    #include <math.h>
    con
    Codice:
    #include <cmath>

  3. #3
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    ancora non lo avevo compilato perchè lo avevo scritto solo con il blocco note.
    adesso l'ho compilato e non mi da errori con math.h. che differenza c'è tra i due?


    EDIT: mmmh, mi sa ke ho sbagliato la parte matematica perchè mi sbaglia a fare un equazione.
    Ultima modifica di versionilatino : 22-01-2009 alle ore 22.17.09

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    C'è un errore logico: in realtà l'equazione è risolvibile anche se d == 0 (nel qual caso, come confermato dalla teoria, le due soluzioni sono uguali). Il tuo programma invece crede che con d == 0 l'equazione sia irriducibile...

    Altro errore: metti tra parentesi (2 * a), giusto per garantirti che prima non divida per 2 e moltiplichi poi IL RISULTATO per a... a proposito, e se a fosse zero, cosa succede?

    Stammi bene...
    Ultima modifica di dementialsite : 22-01-2009 alle ore 22.41.13
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    ciao,
    mi diverto a programmare in c++ da un po'.. mi ha colpito il tuo programmino..
    devi inserire comunque:
    else if (d==0)
    {
    x1 = -b/(2*a); //mi sembra sia così
    }

    mi spiegate cos'é cmat? grazie...ciao!

    EDIT: ps, ora che ci penso nn server, farebbe b - delta = 0.. metti semplicemente => e dovrebbe andare..ciao!
    Ultima modifica di bluster : 22-01-2009 alle ore 23.21.37

  6. #6
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    C'è un errore logico: in realtà l'equazione è risolvibile anche se d == 0 (nel qual caso, come confermato dalla teoria, le due soluzioni sono uguali). Il tuo programma invece crede che con d == 0 l'equazione sia irriducibile...

    Altro errore: metti tra parentesi (2 * a), giusto per garantirti che prima non divida per 2 e moltiplichi poi IL RISULTATO per a... a proposito, e se a fosse zero, cosa succede?

    Stammi bene...
    grazie dell'aiuto delle parentesi, per l'uguale a zero lo devo finire.
    ciao,
    mi diverto a programmare in c++ da un po'.. mi ha colpito il tuo programmino..
    devi inserire comunque:
    else if (d==0)
    {
    x1 = -b/(2*a); //mi sembra sia così
    }

    mi spiegate cos'é cmat? grazie...ciao!

    EDIT: ps, ora che ci penso nn server, farebbe b - delta = 0.. metti semplicemente => e dovrebbe andare..ciao!
    grazie

    EDIT: ho riscritto tutto il codice ma lo compilo con dev c++ mi da un errore alla riga 19" expected `;' before "endl" e questo " In function `int main()': "
    Codice:
    //programma calcolo equazioni 2° grado
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    double a, b, c, x1, x2, d;
    int main ()
    {
        cout<<"Inserisci il valore di a: ";
        cin>>a;
        cout<<"Inserisci il valore di b: ";
        cin>>b;
        cout<<"Inserisci il valore di c: ";
        cin>>c;
        d = (b*b)-(4*a*c);
      
       if (d<0)
       {cout<<"Non esistono soluzioni reali!" endl;
    }
    else {
         if(d==0)
    { x1= -b/(2*a);
    x2= -b/(2*a);
    }
    else {
         x1=(-b-sqrt(d))/(2*a);
         x2=(-b+sqrt(d))/(2*a);
         }
         cout<<"x1= "<<x1<<"x2= "<<x2<<endl;}
    
                  system ("pause");
                  }
    Ultima modifica di debug : 26-01-2009 alle ore 15.37.56

  7. #7
    Guest

    Predefinito

    ciao,
    prova così:
    Codice:
    if (d<0)
       {
    cout<<"Non esistono soluzioni reali!"<<endl;
    }
    ho dato solo un occhaita, ora provo a metterlo giù bene...fammi sapere se funziona!

    ho riscrittto un po' il codice:
    Codice:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    double a, b, c, x1, x2, d;
    
    int main ()
    {
    
        cout << "Inserisci il valore di a: ";
        cin >> a;
        cout << "Inserisci il valore di b: ";
        cin >> b;
        cout << "Inserisci il valore di c: ";
        cin >> c;
    
        d = (b*b)-(4*a*c);
    
       if (d >= 0)
        {
    
         x1 = (-b-sqrt(d))/(2*a);
         x2 = (-b+sqrt(d))/(2*a);
    
             cout << "x1= " << x1 << endl << "x2= " << x2;
    
        } else {
    
            cout << "Non esistono soluzioni reali!";
    
        }
    
    return 0;
    }
    sembrerebbe funzionare... ed é anche piu pulito..! ciaoooo!
    Ultima modifica di bluster : 23-01-2009 alle ore 20.49.18

  8. #8
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Piccolo consiglio: indenta meglio il codice, così risulta più facile capire dove magari potresti aver sbagliato ;)

  9. #9
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    cosa vorresti dire con indenta?

    EDIT:
    bluster==>anche facendo le modifiche che mi hai detto te mi da sempre gli stessi errori.
    Ultima modifica di versionilatino : 23-01-2009 alle ore 22.30.47

  10. #10
    Guest

    Predefinito

    molto strano, lo compilato pure io il mio codice, e funziona ;)
    cambia compilatore dev c++ é fermo... usa code::blocks, io lo utilizzo e mi ci trovo molto bene...ciao!

  11. #11
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ti dò qualche altro consiglio:
    - puoi dichiarare le variabili anche all'inizio del metodo main(), invece di fare dichiarazioni globali come hai fatto tu. Nel tuo caso non comporta grosse conseguenze... ma ti potrà essere davvero d'aiuto (o potrebbe essere la tua condanna, a seconda dei punti di vista) quando inizierai a sviluppare funzioni diverse dal main().
    - altra cosa: se vuoi perfezionare davvero il tuo programma, dovresti prevedere il caso in cui a == 0. In questo caso il tuo programma molto probabilmente genererà errore in esecuzione (divisione per zero), ma l'equazione in sé non è irrisolvibile... è solo che diventa di primo grado e quindi... (a te il resto).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  12. #12
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    bluster==>code::block e solo in inglese? se c'è in ita mi dai il link?

  13. #13
    Guest

    Predefinito

    io ce l'ho in inglese, vabbé sono poche parole che devi consocere per utilizzarlo ;) e poi se programmi un po di inglese lo sai.. cmq so che c'é il modo di cambiare compilatore, prendi quello di code::blocks (che é aggiornato) e lo sostituisci a quello di dev c++, cerca in google, nn so come si fa, ma so che si può fare...ciao!

  14. #14
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    ho scaricato code::block ma mi da gli stessi errori quando compilo. bo.

    ti riposto il codice
    Codice:
    int main ()
    {
        cout<<"Inserisci il valore di a: ";
        cin>>a;
        cout<<"Inserisci il valore di b: ";
        cin>>b;
        cout<<"Inserisci il valore di c: ";
        cin>>c;
        d = (b*b)-(4*a*c);
      
       if (d<0)
       {
               cout<<"Non esistono soluzioni reali!" endl;
    }
    else {
         if(d==0)
    { x1= -b/(2*a);
    x2= -b/(2*a);
    }
    else {
         x1=(-b-sqrt(d))/(2*a);
         x2=(-b+sqrt(d))/(2*a);
         }
         cout<<"x1= "<<x1<<"x2= "<<x2<<endl;}
    
                  system ("pause");
                  }
    EDIT: gli errori sono:
    -F:\Ale\equazionia.cpp||In function `int main()'
    F:\Ale\equazionia.cpp|20|error: expected `;' before "endl"|
    ||=== Build finished: 1 errors, 0 warnings ===|

  15. #15
    Guest

    Predefinito

    Codice:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    double a, b, c, x1, x2, d;
    
    int main ()
    {
    
        cout << "Inserisci il valore di a: ";
        cin >> a;
        cout << "Inserisci il valore di b: ";
        cin >> b;
        cout << "Inserisci il valore di c: ";
        cin >> c;
    
        d = (b*b)-(4*a*c);
    
       if (d >= 0)
        {
    
         x1 = (-b-sqrt(d))/(2*a);
         x2 = (-b+sqrt(d))/(2*a);
    
             cout << "x1= " << x1 << endl << "x2= " << x2;
    
        } else {
    
            cout << "Non esistono soluzioni reali!";
    
        }
    
    return 0;
    }
    prova a compilare il mio codice, ricorda inoltre che esiste else if (), e poi un altro consiglio che é stato gia detto, identa meglio il codice, é piu facile trovare gli errori ;)

  16. #16
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    cosa serve return 0 alla fine?

  17. #17
    Guest

    Predefinito

    non ritorna alcun valore, ma permette di farti vedere l'applicazione, system("PAUSE") non é molto consigliato...ciao!
    PS: funziona ora?

  18. #18
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    no sempre gli stessi errori.

    provato su code blocks e dev c++

  19. #19
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Citazione Originalmente inviato da versionilatino Visualizza messaggio
    ho scaricato code::block ma mi da gli stessi errori quando compilo. bo.

    ti riposto il codice
    Codice:
    int main ()
    {
        cout<<"Inserisci il valore di a: ";
        cin>>a;
        cout<<"Inserisci il valore di b: ";
        cin>>b;
        cout<<"Inserisci il valore di c: ";
        cin>>c;
        d = (b*b)-(4*a*c);
      
       if (d<0)
       {
               cout<<"Non esistono soluzioni reali!" endl;
    }
    else {
         if(d==0)
    { x1= -b/(2*a);
    x2= -b/(2*a);
    }
    else {
         x1=(-b-sqrt(d))/(2*a);
         x2=(-b+sqrt(d))/(2*a);
         }
         cout<<"x1= "<<x1<<"x2= "<<x2<<endl;}
    
                  system ("pause");
                  }
    EDIT: gli errori sono:
    -F:\Ale\equazionia.cpp||In function `int main()'
    F:\Ale\equazionia.cpp|20|error: expected `;' before "endl"|
    ||=== Build finished: 1 errors, 0 warnings ===|
    ti da errore perchè il primo "endl" non è concatenato (<<) al resto della stringa

  20. #20
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da bluster Visualizza messaggio
    non ritorna alcun valore, ma permette di farti vedere l'applicazione, system("PAUSE") non é molto consigliato...ciao!
    PS: funziona ora?
    Sbagliato... il return del main() non ha nulla a che vedere con la funzione system(), è solo il codice di errore che viene restituito al sistema operativo. Lo zero indica solo che è andato tutto bene...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  21. #21
    Data registrazione
    05-09-2008
    Residenza
    Marche!
    Messaggi
    166

    Predefinito

    hai ragione adesso va. mancavano quei due minori!!!

  22. #22
    Guest

    Predefinito

    si vabbé, te l'avevo scritto qualche post piu su ;) ti avevo psotato anche tutto il codice corretto ;) ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •