martes, 19 de junio de 2012

Ejemplo de la utilización de funciones en un programa.
ESPERO COMENTARIOS.
Calculadora que permite sumar,restar,multiplicar,dividir y elevar un numero a otro, arrastrando posteriormente el resultado y pudiendo volver a escoger operacion infinitamente hasta macar la opcion de salir. Tambien tiene una opcion de reseteo del valor

#include
#include
#include
#include
using namespace std;
class calculadora{
float dato1;
float dato2;
float resultado;
public:
void setDato1(float d1);
void setDato2(float d2);
void setResult(float r);
float getResult();
float suma();
float resta();
float division();
float multiplicacion();
float exponente(int exp);
float raiz();
void invierteDatos();
void resetV();
void reset(); 
}; 
void calculadora::setDato1(float d1){
dato1=d1;
}
void calculadora::setDato2(float d2){
dato2=d2;
}
void calculadora::setResult(float r){
resultado=r;
}
float calculadora::getResult(){
return resultado;
}
float calculadora::suma(){
return dato1+dato2;
}
float calculadora::resta(){
return dato1-dato2; 
}
float calculadora::multiplicacion(){
return dato1*dato2; 
}
float calculadora::division(){
return dato1/dato2; 
}
float calculadora::exponente(int exp){
if (exp==0){
return 1;
} 
if (exp==1){
return dato1;
}
else{
float e=dato1;
while(exp>1){
e=e*dato1;
exp=exp-1;
}
return e;
}
}
float calculadora::raiz(){
return sqrt(dato1);
}
void calculadora::invierteDatos(){
float t=dato1;
dato1=dato2;
dato2=t;
}
void calculadora::resetV(){
dato1=0.0;
dato2=0.0;
}
void calculadora::reset(){
resultado=0.0;
}
int main(){
calculadora c; 
bool b=false;
int op;
while(!b){
system("cls");
cout<<"Menu calculadora basica:\n\n";
cout<<" 1)Suma.\n";
cout<<" 2)Resta.\n";
cout<<" 3)Division.\n";
cout<<" 4)Multiplicacion.\n";
cout<<" 5)Potencia.\n";
cout<<" 6)Raiz Cuadrada.\n";
cout<<" 7)Invertir valores guardados.\n";
cout<<" 8)Resetear valores.\n";
cout<<" 9)Resetear resultado.\n";
cout<<" 10)Salir.\n\n\n";
cout<<" Opcion: ";
cin>>op;
switch(op){
case 1:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"Dame el segundo valor: ";
cin>>d;
c.setDato1(c.getResult());
c.setDato2(d);
cout<<"\n\nEl resultado es: "<
c.setResult(c.suma());
bx=true;
}
}
else{
system("cls");
cout<<"Dame el primer dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nDame el segundo dato: ";
cin>>d;
c.setDato2(d);
cout<<"\nEl resultado es: "<
c.setResult(c.suma());
bx=true;
}
}
system("pause");
break;
}
case 2:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"Dame el segundo valor: ";
cin>>d;
c.setDato1(c.getResult());
c.setDato2(d);
cout<<"\n\nEl resultado es: "<
c.setResult(c.resta());
bx=true;
}
}
else{
system("cls");
cout<<"Dame el primer dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nDame el segundo dato: ";
cin>>d;
c.setDato2(d);
cout<<"\nEl resultado es: "<
c.setResult(c.resta());
bx=true;
}
}
system("pause");
break;
}
case 3:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"Dame el segundo valor: ";
cin>>d;
c.setDato1(c.getResult());
c.setDato2(d);
cout<<"\n\nEl resultado es: "<
c.setResult(c.division());
bx=true;
}
}
else{
system("cls");
cout<<"Dame el primer dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nDame el segundo dato: ";
cin>>d;
c.setDato2(d);
cout<<"\nEl resultado es: "<
c.setResult(c.division());
bx=true;
}
}
system("pause");
break;
}
case 4:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"Dame el segundo valor: ";
cin>>d;
c.setDato1(c.getResult());
c.setDato2(d);
cout<<"\n\nEl resultado es: "<
c.setResult(c.multiplicacion());
bx=true;
}
}
else{
system("cls");
cout<<"Dame el primer dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nDame el segundo dato: ";
cin>>d;
c.setDato2(d);
cout<<"\nEl resultado es: "<
c.setResult(c.multiplicacion());
bx=true;
}
}
system("pause");
break;
}
case 5:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"Dame la potencia: ";
cin>>d;
c.setDato1(c.getResult());
cout<<"\n\nEl resultado es: "<
c.setResult(c.exponente(d));
bx=true;
}
}
else{
system("cls");
cout<<"Dame el primer dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nDame la potencia: ";
cin>>d;
cout<<"\nEl resultado es: "<
c.setResult(c.exponente(d));
bx=true;
}
}
system("pause");
break;
}
case 6:{
int opx,d;
bool bx=false;
while(!bx){
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Desea ocupar el resultado en memoria?";
cout<<"\n\n 1)Si";
cout<<"\n\n 2)No";
cout<<"\n\nOpcion: ";
cin>>opx;
if(opx==1){
system("cls");
cout<<"El resultado se asignara al Primer dato.\n\n";
cout<<"Si esta deacuerdo presione 1.\n\nSino presione 2.";
cout<<"\n\nR: ";
cin>>opx;
if(opx==1){
system("cls");
c.setDato1(c.getResult());
cout<<"\n\nEl resultado es: "<
c.setResult(c.raiz());
bx=true;
}
}
else{
system("cls");
cout<<"Dame el dato: ";
cin>>d;
c.setDato1(d);
cout<<"\nEl resultado es: "<
c.setResult(c.raiz());
bx=true;
}
}
system("pause");
break;
}
case 7:{
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Los datos se han invertido.\n\n";
c.invierteDatos();
system("pause");
break;
}
case 8:{
system("cls");
cout<<"NOTA: Esta calculadora trabaja unicamente con 2 valores \n\n y el resultado se guarda en memoria.\n\n";
cout<<"Los Valores se han reseteado.\n\n";
c.resetV();
system("pause");
break;
}
case 9:{
system("cls");
c.reset();
cout<<"Se reseteo el resultado en memoria.\n\n";
system("pause");
break;
}
case 10:{
b=true;
break;
}
default:{
system("cls");
cout<<"ERROR: Entrada Invalida, por favor intente otra vez.\n\n";
system("pause");
break;
}
}
}
}