Sei sulla pagina 1di 4

#include<stdio.

h>
#include<stdlib.h>
#include <iostream>
using namespace std;
//Variables para los operandos
float primer_op;
float segundo_op;
//Clase
class calculadora
{
float resultado;
public:
float operacion(int tipo)
{
//Aqu efectuamos la operacin matemtica
tipo_de_operacion(tipo);
//Si los operandos valen distinto de cero o no son nulos
if (primer_op != 0.0f && segundo_op != 0.0f
|| primer_op != NULL && segundo_op != NULL)
{
//Para obtener respuesta
char respuesta;
//Preguntamos si desea realizar la operacin
//Con los operandos previamente cargados
cout << "Hay operandos previamente cargados\n"
<< "Desea realizar la operacion de suma\n"
<< "Con ellos o con nuevos??\n"
<< "-S- para los mismos, otros para nuevos." << endl;
cin >> respuesta;
//Si desea utilizar los mismos operandos
if (respuesta == 's' || respuesta == 'S')
{
//Le devuelve el resultado directamente
return resultado;
}
//Sino...
else
{
//Cargamos nuevos operandos
if(tipo ==6)
{
cout<<"Valor de primer_op: ";
cin>>primer_op;
}
else
{
cout<<"Valor de primer_op: ";
cin>>primer_op;
cout<<"Valor de segundo_op: ";
cin>>segundo_op;
}
//Aqu efectuamos la operacin matemtica
tipo_de_operacion(tipo);
//Devolvemos el resultado
return resultado;
}

}
else
{

//Cargamos nuevos operandos


if(tipo ==6)
{
cout<<"Valor de primer_op: ";
cin>>primer_op;
}
else
{
cout<<"Valor de primer_op: ";
cin>>primer_op;
cout<<"Valor de segundo_op: ";
cin>>segundo_op;
}
//Aqu efectuamos la operacin matemtica
tipo_de_operacion(tipo);
//Devolvemos el resultado
return resultado;

}
//Operaciones comunes a la funcin anterior
float tipo_de_operacion(int tipo)
{
switch(tipo)
{
case 1:
resultado = primer_op+segundo_op;
break;
case 2:
resultado = primer_op-segundo_op;
break;
case 3:
resultado = primer_op*segundo_op;
break;
case 4:
resultado = primer_op/segundo_op;
break;
case 5:
int potencia;
resultado = primer_op;
for(potencia=1; potencia<segundo_op; potencia++)
{
resultado*=primer_op;
}
break;
case 6:
resultado = raiz (primer_op);
break;
default:
break;
}
return resultado;
}
//Para sacar la raiz de un nmero equis

//tipo double o float


float raiz(float numero)
{
//Variables que necesitamos
float resultado = numero, temp = 0;
//Ciclo mientras temp sea distinto a resultado
while (temp != resultado)
{
//Asignamos a temp el valor de resultado
temp = resultado;
//Resultado es igual al nmero recibido
//dividido por resultado que inicialmente es el mismo nmero
//luego va decreciendo + el mismo valor de resultado y
//lo que sale de esas ecuaciones se divide por 2
resultado = (numero/resultado + resultado)/2;
//Si resultado a esta altura es igual a temp
//salimos del ciclo
}
//retornamos el valor.
return resultado;
}
};
int main()
{
int opcion;
//Definimos nuestra calculadora personal
calculadora personal;
//Ciclo para el men
do
{
//Limpiamos la pantalla
system("cls");
//Presentamos el men
printf("
|----------------------------------------|\n");
printf("
|
Calculadora por Elinv.
|\n");
printf("
|----------------------------------------|\n");
printf("
|
------------------------|\n");
printf("
|
1-Sumar
|\n");
printf("
|
2-Restar
|\n");
printf("
|
3-Multiplicar
|\n");
printf("
|
4-Dividir
|\n");
printf("
|
5-Potencia
|\n");
printf("
|
6-Raiz
|\n");
printf("
|
------------------------|\n");
printf("
|
7-Salir
|\n");
//Solicitamos la opcin
printf("
|----------------------------------------|\n");
printf("
|
Ingrese opcion >>
");
scanf("%d",&opcion);
//Definimos acciones para el menu
if(opcion == 1)
{
//Limpiamos la pantalla
system("cls");
cout << "La suma de :" << primer_op
<< " + " << segundo_op << " es = a "

<< personal.operacion(1) << endl;


}
if(opcion == 2)
{
//Limpiamos la pantalla
system("cls");
cout << "La resta de :" << primer_op
<< " - " << segundo_op << " es = a "
<< personal.operacion(2) << endl;
}
if(opcion == 3)
{
//Limpiamos la pantalla
system("cls");
cout << "La multiplicacion de :" << primer_op
<< " * " << segundo_op << " es = a "
<< personal.operacion(3) << endl;
}
if(opcion == 4)
{
//Limpiamos la pantalla
system("cls");
cout << "La division de :" << primer_op
<< " / " << segundo_op << " es = a "
<< personal.operacion(4) << endl;
}
if(opcion == 5)
{
//Limpiamos la pantalla
system("cls");
cout << "La Potencia de :" << primer_op
<< " -pot- " << segundo_op << " es = a "
<< personal.operacion(5) << endl;
}
if(opcion == 6)
{
//Limpiamos la pantalla
system("cls");
cout << "La Raiz de :" << primer_op
<< " es = a "
<< personal.operacion(6) << endl;
}
system("pause");
}
while(opcion != 7);
//Salimos del menu y mostramos el fin
printf("FIN\n");
system("PAUSE");
return EXIT_SUCCESS;

Potrebbero piacerti anche