Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CalendarioCalendario  FAQFAQ  CercaCerca  RegistrareRegistrare  Lista utentiLista utenti  GruppiGruppi  Connessione  

Condividere | 
 

 Calcolatrice in C++

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
The_Nano93
membro
membro


Numero di messaggi: 104
Età: 1004
Localizzazione: Da qualche parte nell'universo....
Data d'iscrizione: 28.09.07

MessaggioOggetto: Calcolatrice in C++   Ven Set 28, 2007 4:15 pm

Ciao!
Sono The_Nano93, mi sono appena iscritto, ho visto questo forum e l'ho trovato molto interessante. per cominciare metto subito una calcolatrice che ho programmato in C++, ci ho messo un pò per farla: ho programmao funzione per funzione e poi le ho messe tutte insieme per fare questa calcolatrice multifunzione.
il C++ è molto simile ad altri linguaggi, ma se non capite qualcosa potete comunque chiedere a me. salvate il codice in .cpp, per eseguire il file dovete usare un compilatore (io ho usato dev C++).
Ho diviso il codice in 2 parti, perchè troppo lungo.
buona fortuna! Smile

Parte 1
Codice:
//Autore: The_Nano93
#include <iostream>
main() {
    using namespace std;
    long double altro, oper, ris, ris1, ris2, a, b;// dichiaro le variabili
    cout << "Che operazione vuoi eseguire?" << endl;
    cout << "1 = Addizione            7 = Radice cubica" << endl;
    cout << "2 = Sottrazione          8 = Radice x di y (approssimata a meno 1)" << endl;
    cout << "3 = Moltiplicazione      9 = Scomposizione in fattori primi" << endl;
    cout << "4 = Divisione            10 = MCD, mcm" << endl;
    cout << "5 = Potenza              11 = Trova divisori" << endl;
    cout << "6 = Radice quadrata      12 = exit" << endl;
    cin >> oper;// chiedo che operazione vuole esguire
    if (oper == 1) {// se sceglie l'addizione...
        cout << "Inserisci il primo numero:" << endl;
        cin >> a; // chiedo il primo numero
        cout << "Inserisci il secondo numero:" << endl;
        cin >> b;// chiedo il secondo numero
        ris = a + b;// risolvo il calcolo
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// Fine if
    if (oper == 2) {//se sceglie la sottrazione...
        cout << "Inserisci il primo numero:" << endl;
        cin >> a; // chiedo il primo numero
        cout << "Inserisci il secondo numero:" << endl;
        cin >> b;// chiedo il secondo numero
        ris = a - b;// risolvo il calcolo
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// fine if
    if (oper == 3) {//se sceglie la moltiplicazione...
        cout << "Inserisci il primo numero:" << endl;
        cin >> a;// chiedo il primo numero
        cout << "Inserisci il secondo numero:" << endl;
        cin >> b;// chiedo il secondo numero
        ris = a * b;// risolvo il calcolo
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// fine if
    if (oper == 4) {//se sceglie la divisione...
        cout << "Inserisci il primo numero:" << endl;
        cin >> a;// chiedo il primo numero
        cout << "Inserisci il secondo numero:" << endl;
        cin >> b;// chiedo il secondo numero
        ris = a / b;// risolvo il calcolo
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// fine if
    if (oper == 5) {// se sceglie la potenza...
        cout << "Inserisci la base:" << endl;
        cin >> a;//chiedo la base
        cout << "Inserisci l'esponente:" << endl;
        cin >> b;//chiedo l'esponente
        ris = pow(a,b);//eseguo il calcolo
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// fine if
    if (oper == 6) {// se sceglie la radice quadrata...
        cout << "Inserisci il radicando:" << endl;
        cin >> a;//chiedo il radicando
        ris = sqrt(a);//eseguo l'operazione
        cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
    }// fine if
    if (oper == 7) {
        double f = 0.9999;
        cout << "Inserisci il radicando:" << endl;
        cin >> a;
        if (a == 1) {
            cout << "Il risultato e' 1" << endl << endl;
        }
        if (a == 27) {
            cout << "Il risultato e' 3" << endl << endl;
        }
        if (a == 64) {
            cout << "Il risultato e' 4" << endl << endl;
        }
        if (a == 125) {
            cout << "Il risultato e' 5" << endl << endl;
        }
        if (a != 1 && a != 27 && a != 64 && a != 125) {
            for (long double j = 0; ; j++) {
                f = f +0.0001;
                ris1 = f * f * f;
                if (ris1 >= a) {
                    ris = f - 0.0001;
                    break;
                }
            }
            cout << "Il risultato e' " << ris << endl << endl;
        }
    }
    if (oper == 8) {
        int c;
        cout << "Inserisci l'indice:" << endl;
        cin >> c;
        cout << "Inserisci il radicando:" << endl;
        cin >> b;
        if (c > 20) {
                cout << "Questo programma non e' in gradi di calcolare la radice con un indice cosi' alto" << endl << endl;
        }
        switch(c){
        case 1:
                cout << "Il risultato e' " << b << endl << endl;//dico il risultato
                break;
        case 2:
                ris = sqrt(b);
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 3:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 4:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 5:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 6:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 7:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 8:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 9:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 10:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 11:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 12:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 13:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 14:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 15:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 16:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 17:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 18:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 19:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        case 20:
                for (long double j = 0; ; j++) {
                    ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
                    if (ris1 >= b) {
                        ris = j;
                        break;
                    }
                }
                cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
                break;
        }
    }
 
Tornare in alto Andare in basso
Vedere il profilo dell'utente
The_Nano93
membro
membro


Numero di messaggi: 104
Età: 1004
Localizzazione: Da qualche parte nell'universo....
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Calcolatrice in C++   Ven Set 28, 2007 4:19 pm

Sono sempre The_Nano93.
Ecco la seconda parte del codice.

Parte 2
Codice:

    if (oper == 9) {
        int num;
        int is;
        int j = 1;
        cout << "Inserisci il numero da scomporre in fattori primi:" << endl;
        cin >> num;
        cout << endl;
        for (int i = 0; ; i++) {
            j++;
            is = 1;
            for (int z = 2; z < j; z++) {
                    if ((j % z) == 0) {
                                    is = 0;
                    }
            }
            if ((num % j) == 0) {
                    if (is == 1) {
                        if (num > 1) {
                                    cout << num << ":" << j << endl;
                                    num = num / j;
                                    j = 1;
                        }
                    }
            }
            if (num <= 1) {
                    cout << "1" << endl << endl;
                    break;
            }
        }
    }
    if (oper == 10) {
        int c, d, e;
        int cosa;
        cout << endl;
        cout << "1 = mcm (a, b)      3 = mcm (a, b, c)" << endl;
        cout << "2 = MCD (a, b)      4 = MCD (a, b, c)" << endl;
        cin >> cosa;
        if (cosa == 1) {
                cout << "Inserisci i due numeri:" << endl;
                cin >> c;
                cin >> d;
                for (int i = 2; ; i++) {
                    if (i % c == 0 && i % d == 0) {
                        cout << "mcm (" << c << ", " << d << ")= " << i << endl << endl;
                        break;
                    }
                }
        }
        if (cosa == 2) {
            cout << "Inserisci i due numeri:" << endl;
            cin >> c;
            cin >> d;
            int max;
            if (c > d) {
                    max = c;
            }
            if (d > c) {
                    max = d;
            }
            for (int z = max; ; z--) {
                    if (c % z == 0 && d % z == 0) {
                            cout << "MCD (" << c << ", " << d << ")= " << z << endl << endl;
                            break;
                    }
            }
        }
        if (cosa == 3) {
            cout << "Inserisci i tre numeri:" << endl;
            cin >> c;
            cin >> d;
            cin >> e;
            for (int i = 2; ; i++) {
                if (i % c == 0 && i % d == 0 && i % e == 0) {
                        cout << "mcm (" << c << ", " << d << ", " << e << ")= " << i << endl << endl;
                        break;
                }
            }
        }
        if (cosa == 4) {
            cout << "Inserisci i tre numeri:" << endl;
            cin >> c;
            cin >> d;
            cin >> e;
            int max;
            if (c > d && c > e) {
                    max = c;
            }
            if (d > c && d > e) {
                    max = d;
            }
            if (e > c && e > d) {
                    max = e;
            }
            for (int z = max; ; z--) {
                    if (c % z == 0 && d % z == 0 && e % z == 0) {
                            cout << "MCD (" << c << ", " << d << ", " << e << ")= " << z << endl << endl;
                            break;
                    }
            }
        }
    }
    if (oper == 11) {
        int num, div, c;
        cout << "Inserisci il numero:" << endl;
        cin >> num;
        cout << endl << num << " e' divisibile per:";
        c = num + 1;
        for (int b = 1; b < c; b++) {
            div = b;
            if ((num % div) == 0) {
                    cout << endl << div;
            }
        }
        cout << endl << endl;
    }
    if (oper >= 12) {
        exit(0);
    }
    cout << "Vuoi eseguire altri calcoli?" << endl;//chiedo se vuole eseguire altri calcoli
    cout << "1 = SI" << endl;
    cout << "2 = NO" << endl;
    cin >> altro;//risposta
    if (altro == 1) {// se risponde si...
        system("cls");//pulisco lo schermo
        main();//faccio rincominciare il tutto
    }// fine if
    return 0;//tutto ok
}//fine

Tornare in alto Andare in basso
Vedere il profilo dell'utente
darkjoker
Admin
Admin


Numero di messaggi: 813
Data d'iscrizione: 30.07.07

MessaggioOggetto: Re: Calcolatrice in C++   Ven Set 28, 2007 4:24 pm

molto bella e con molte funzioni... bravo the_nano...

_________________
L'unico computer sicuro, è un computer spento.

Nel software esiste sempre almeno un bug, generalmente è localizzabile tra la tastiera e la sedia

Tornare in alto Andare in basso
Vedere il profilo dell'utente
LordHk
Moderatore
Moderatore


Numero di messaggi: 140
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Calcolatrice in C++   Sab Set 29, 2007 9:50 am

Usando uno switch ti evitavi gran parte del codice nella prima parte. Mentre nella seconda, sempre con lo switch ti evitavi tutti quei rami di if dipendenti dalla variabile cosa... :wink:
Comunque concordo concordo con dark, ci sono un sacco di funzioni, bravo :wink:
Tornare in alto Andare in basso
Vedere il profilo dell'utente
The_Nano93
membro
membro


Numero di messaggi: 104
Età: 1004
Localizzazione: Da qualche parte nell'universo....
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Calcolatrice in C++   Dom Set 30, 2007 12:40 pm

Ti do perfettamente ragione, LordHk. Non ho usato tanti switch perchè mi trovo meglio con gli if, anche se devo scrivere del codice in più
Tornare in alto Andare in basso
Vedere il profilo dell'utente
LordHk
Moderatore
Moderatore


Numero di messaggi: 140
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Calcolatrice in C++   Dom Set 30, 2007 2:45 pm

Poi però diventa meno leggibile ad altri programmatori anche se è ben commentato... Wink
Altro consiglio, metti più spazio tra i commenti e la fine del codice altrimenti ci si confonde Very Happy
Tornare in alto Andare in basso
Vedere il profilo dell'utente
certaindeath
Admin
Admin


Numero di messaggi: 343
Data d'iscrizione: 30.07.07

MessaggioOggetto: Re: Calcolatrice in C++   Dom Set 30, 2007 3:12 pm

Citazione:
Non ho usato tanti switch perchè mi trovo meglio con gli if


c'è chi si trova meglio con gli if, anche per comprendere meglio il programma per scrivere...

personalmente, anche se esistono modi che mi permettono di abbreviare
di molto il mio programma, se ho imparato in un modo continuo a fare così...
Tornare in alto Andare in basso
Vedere il profilo dell'utente
darkjoker
Admin
Admin


Numero di messaggi: 813
Data d'iscrizione: 30.07.07

MessaggioOggetto: Re: Calcolatrice in C++   Lun Ott 01, 2007 4:19 pm

verissimo.... io i cicli for li conosco benissimo ma oramai uso solo while...

_________________
L'unico computer sicuro, è un computer spento.

Nel software esiste sempre almeno un bug, generalmente è localizzabile tra la tastiera e la sedia

Tornare in alto Andare in basso
Vedere il profilo dell'utente
 

Calcolatrice in C++

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 su1

Permesso del forum:Non puoi rispondere agli argomenti in questo forum
Xhack :: Programmazione :: C/C++-