Salve mi sn appena iscritto. Vorrei subito sfoderare un programmino che mi è stato richiesto dal mio prof di creare. secondo voi può avere un senso? altrimenti che mi consigliate?
codice:#include <cstdlib> #include <iostream> using namespace std; // header funzione float Controlla (double a, double b); int main(void) { // dichiarazione ed inizializzazione precauzionale dei "personaggi" double n1=0,n2=0; float perc=0.0; char answ='n'; // presentazione del programma all'utente cout << "+------------------------------------------------------------+" << endl << endl; cout << " Questo programma si propone di calcolare la percentuale di"<< endl; cout << "''somiglianza'' tra due numeri interi arbitrari. QWERTY group"<< endl << endl; cout << "+------------------------------------------------------------+"<< endl << endl; cout << "ATTENZIONE: puoi scrivere qualsiasi numero intero e/o decimale" << endl; cout << "\t\t ma per i decimali devi usare il punto e non la virgola!" << endl << endl << endl; do{ // programma cout << "Inserisci il primo numero: "; cin >> n1; cout << endl; cout << "Inserisci il secondo numero: "; cin >> n2; cout << endl; // analisi perc = Controlla(n1,n2); // controllo dell'ordine di grandezza + stampa if(perc < 0.0001){cout << "La percentuale e' troppo piccola" << endl << endl;} else{cout << "I due numeri sono simili allo/al: " << perc << "%\n\n";} // implementazione per + sessioni di gioco do{ cout << "Vuoi giocare di nuovo? [y/n]: "; cin >> answ; cout << endl; }while(answ != 'y' && answ != 'n' && answ != 'Y' && answ != 'N'); }while(answ == 'y' || answ == 'Y'); cout << "Bye Bye! =]" << endl << endl; system("PAUSE"); return EXIT_SUCCESS; } float Controlla (double a, double b) { double min=0,max=0; float perc=0.0,diff=0.0; // analisi del caso di 2 numeri uguali if(a==b){perc=100.0;return perc;} // analisi del caso con lo 0 if((a==0)||(b==0)){ a=a+1; b=b+1;} // analisi dei casi negativi if((a<0) && (b>0)){ a = a*(-1); if(a<b){max = b;} else{max = a;} diff = (float)b + (float)a; perc = 100.0 - ((diff * 100.0)/(float)max); if(perc < 0.0){perc = perc*(-1);} return perc;} if((b<0) && (a>0)){ b = b*(-1); if(b<a){max = a;} else{max = b;} diff = (float)b + (float)a; perc = 100.0 - ((diff * 100.0)/(float)max); if(perc < 0.0){perc = perc*(-1);} return perc;} // analisi dei casi standard positivi if(a<b){min = a; max = b; diff = (float)b - (float)a; perc = 100.0 - ((diff * 100.0)/(float)max); return perc;} if(a>b){min = b; max = a; diff = (float)a - (float)b; perc = 100.0 - ((diff * 100.0)/(float)max); return perc;} }

Rispondi quotando