Xhack
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CercaCerca  Ultime immaginiUltime immagini  RegistratiRegistrati  Accedi  

 

 Calcolatrice in C++

Andare in basso 
4 partecipanti
AutoreMessaggio
The_Nano93
membro
membro
The_Nano93


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

Calcolatrice in C++ Empty
MessaggioTitolo: Calcolatrice in C++   Calcolatrice in C++ EmptyVen Set 28, 2007 6: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;
        }
    }
 
Torna in alto Andare in basso
The_Nano93
membro
membro
The_Nano93


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

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyVen Set 28, 2007 6: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

Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyVen Set 28, 2007 6:24 pm

molto bella e con molte funzioni... bravo the_nano...
Torna in alto Andare in basso
LordHk
Moderatore
Moderatore
LordHk


Numero di messaggi : 140
Data d'iscrizione : 28.09.07

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptySab Set 29, 2007 11: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:
Torna in alto Andare in basso
The_Nano93
membro
membro
The_Nano93


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

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyDom Set 30, 2007 2: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ù
Torna in alto Andare in basso
LordHk
Moderatore
Moderatore
LordHk


Numero di messaggi : 140
Data d'iscrizione : 28.09.07

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyDom Set 30, 2007 4: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
Torna in alto Andare in basso
certaindeath
Admin
Admin
certaindeath


Numero di messaggi : 343
Data d'iscrizione : 30.07.07

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyDom Set 30, 2007 5: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ì...
Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ EmptyLun Ott 01, 2007 6:19 pm

verissimo.... io i cicli for li conosco benissimo ma oramai uso solo while...
Torna in alto Andare in basso
Contenuto sponsorizzato





Calcolatrice in C++ Empty
MessaggioTitolo: Re: Calcolatrice in C++   Calcolatrice in C++ Empty

Torna in alto Andare in basso
 
Calcolatrice in C++
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» calcolatrice
» calcolatrice in C
» Calcolatrice con autoit
» [C#]Consiglio in programma...(calcolatrice)

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
Xhack :: Programmazione :: C/C++-
Vai verso: