Domanda [CREAZIONE IN C++] Source Calcolatrice.

Stato
Discussione chiusa ad ulteriori risposte.

Capodoglio

Utente Emerald
31 Marzo 2009
1,667
51
187
589
Ultima modifica:
Ciao spudorata community:)asd:)
Non avendo nulla da fare ho fatto questa calcolatrice, così che i meno esperto hanno un esempio per capire il "ciclo while"

Codice:
/* 
	CALCOLATRICE by fabrix1990 (cambiato nome ieri notte asd)
*/


#include <iostream.h>
#include <stdio.h>		
#include <string.h> 
#include <math.h>		   			   

double somma(double, double);					
double sott(double, double);
double prodotto(double, double);
double divisione(double, double);
double inverso(double);
double radice(double);
double potenza (double n1, double n2);


int main()					
{
	double n, ris=0;
	char op;
	cout<<"ELENCO OPERAZIONI DISPONIBILI:\n"<<endl;
	cout<<"somma (+)"<<endl;			
	cout<<"sottrazione (-)"<<endl;
	cout<<"prodotto (*)"<<endl;
	cout<<"divisione (/)"<<endl;
	cout<<"inverso di un numero (!)"<<endl;
	cout<<"potenza (^)"<<endl;
	cout<<"radice quadrata (R)"<<endl;	
	cout<<"visualizzazione risultato (=)"<<endl;

	cout<<"\n\nPrimo numero: ";						
	cin>>ris;
	while (op!='='){
		cout<<"Operatore: ";
		cin>>op;
		switch (op)									
		{
		case '+': 
			cout<<"Secondo numero: ";
			cin>>n;	  
			ris=somma(ris,n);				
			break;
		case '-':
			cout<<"Secondo numero: ";
			cin>>n;   
			ris=sott(ris,n);			
		    	break;
		case '*': 
			cout<<"Secondo numero: ";
			cin>>n;
			ris=prodotto(ris,n); 
			break;					
		case '/': 
			cout<<"Secondo numero: ";
			cin>>n;
			ris=divisione(ris,n); 
			break;
		case '!': 
			ris=inverso(ris); 
			break;
		case '^': 
			cout<<"Secondo numero: ";
			cin>>n;
			while(ris==0 && n<0){
				cout<<"Errore! Reinserire il secondo numero (maggiore di 0)(In base alla scelta dei matematici): ";
				cin>>n;
			}
			ris=potenza(ris,n); 
			break;
		case 'R': 
			ris=radice(ris); 
			break;						
		case '=': 
			cout<<ris<<endl; 
			break;
	
		default: cout<<"operazione non possibile"<<endl; 
		}
	}
	getchar();
	return 0;
}


double somma(double n1, double n2)
{
	return n1+n2;
}

double sott(double n1, double n2){
	return n1-n2;
}

double prodotto(double n1, double n2)
{
	return n1*n2;
}
double divisione(double n1, double n2)
{
	return n1/n2;

}
double inverso(double n1)
{
	return n1*(-1);
}

double radice(double n1)
{
	return sqrt(n1);
}

double potenza (double n1, double n2)	
{
	double base, ris=1;
	if (n2>0) base=n1;
	else {
		base = (double)1/n1;
		n2 = -n2;
	}
	if (n2==0) return 1;
	else {
		for (int i=0; i<n2; i++) {
			ris*=base;
		}
		return ris;
	}
}
Tanti saluti!
Alla prossima!
 
Molto probabilmente ho cambiato nome...ieri notte!(se fossi venuto ieri notte...mi chiamavo ancora fabrix1990 -.- diccelo a LordDracon)
(Se non sai le cose non parlare, grazie!)
 
Sei catanese? diccelo lo dicono i catanesi u,u cmq io sono catanese e dico "dillo", oppure "diglielo" xD cmq secondo me l'hai fatta tu :sisi:
 
Stato
Discussione chiusa ad ulteriori risposte.