| Calcolatrice in C++ | |
|
|
Autore | Messaggio |
---|
The_Nano93 membro
Numero di messaggi : 104 Età : 1016 Localizzazione : Da qualche parte nell'universo.... Data d'iscrizione : 28.09.07
| Titolo: Calcolatrice in C++ Ven 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! 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; } } | |
|
| |
The_Nano93 membro
Numero di messaggi : 104 Età : 1016 Localizzazione : Da qualche parte nell'universo.... Data d'iscrizione : 28.09.07
| Titolo: Re: Calcolatrice in C++ Ven 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
| |
|
| |
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: Calcolatrice in C++ Ven Set 28, 2007 6:24 pm | |
| molto bella e con molte funzioni... bravo the_nano... | |
|
| |
LordHk Moderatore
Numero di messaggi : 140 Data d'iscrizione : 28.09.07
| Titolo: Re: Calcolatrice in C++ Sab 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: | |
|
| |
The_Nano93 membro
Numero di messaggi : 104 Età : 1016 Localizzazione : Da qualche parte nell'universo.... Data d'iscrizione : 28.09.07
| Titolo: Re: Calcolatrice in C++ Dom 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ù | |
|
| |
LordHk Moderatore
Numero di messaggi : 140 Data d'iscrizione : 28.09.07
| Titolo: Re: Calcolatrice in C++ Dom Set 30, 2007 4:45 pm | |
| Poi però diventa meno leggibile ad altri programmatori anche se è ben commentato... Altro consiglio, metti più spazio tra i commenti e la fine del codice altrimenti ci si confonde | |
|
| |
certaindeath Admin
Numero di messaggi : 343 Data d'iscrizione : 30.07.07
| Titolo: Re: Calcolatrice in C++ Dom 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ì... | |
|
| |
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: Calcolatrice in C++ Lun Ott 01, 2007 6:19 pm | |
| verissimo.... io i cicli for li conosco benissimo ma oramai uso solo while... | |
|
| |
Contenuto sponsorizzato
| Titolo: Re: Calcolatrice in C++ | |
| |
|
| |
| Calcolatrice in C++ | |
|