online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
//Proyecto N°9 Calculadora #include<iostream> //Necesario para cualquier programa de c++. #include<locale.h> //Sirve para añadir el idioma español para el programa. #include<string.h> //Para que no haya errores en cadenas. #include<stdlib.h> //Sirve para el std. #include<conio.h> //Hará que el programa no se cierre de golpe. #include<math.h> //Ayudará a realizar operaciones matemáticas más rápidas. /* Crea una calculadora que pueda realizar las siguientes funciones; sumar, restar, dividir, sacar raíz y elevar un numero a cualquier potencia. Utiliza una función para cada operación. El programa debe de tener un menú donde el usuario pueda elegir qué operación realizar, después se debe de mostrar el resultado y mostrar la opción de realizar otra operación o finalizar el programa. autor: Kevin Elián Valarezo Guamán date: 26/03/2024 */ //Declaración de funciones. void sumar(double a[], int n, double); //Usado para realizar las sumas. void restar(double a[], int n, double); //Usado para realizar las restas. void dividir(double a[], int n, double); //Usado para realizar las divisiones. void raiz(int d, int e, double); //Usado para sacar la raíz. void elevar(double b, double c, double); //Usado para elevar un número. //Tienen un vector para que el usuario pueda sumar N cantidad de números que desee. //Variables globales /*Variables int a usar u: Sirve para sacar la posición de i de un ciclo for cuando sea mayor que 0. */ int u = 0; /*Variables double a usar resultado: Son para todos los resultados de las operaciones, ya que pueden llegar a ser enteras o con decimales. aux: Servierá para saber el primer número al momento de sumar, restar o dividir N cantidad de números. */ double resultado = 0, aux = 0; //Función principal. int main() { setlocale(LC_CTYPE, "Spanish"); //Sirve para el programa detecte signos del castellaño, aunque con la //ñ sabe tener problemas en no presentarla bien. /*Variables int a usar: opcion: Sirve para navegar en el programa para que elegir unas de las opciones del menú. n: Será la cantidad de números que va querer ingresar el usuario o índice en caso de la raíz. m: Sirve para el número entero que debe ser al momento de sacar la raíz de un número. */ int opcion = 0, n, m; /*Vectores double a usar: a[100]: Será donde se almacenrán los números que se va querer sumar, restar o dividir. */ double a[100]; /*Variables double a usar j y p: Sirven para la opción de elevar un número a cualquier cantidad, siendo el exponente y el número con decimales. */ double j, p; do { opcion = 0; do { //Menú de opcipones del programa. std::cout<<">> 1 Sumar"<<std::endl; std::cout<<">> 2 Restar"<<std::endl; std::cout<<">> 3 Dividir"<<std::endl; std::cout<<">> 4 Raíz"<<std::endl; std::cout<<">> 5 Elevar"<<std::endl; std::cout<<" Opción: "; std::cin>>opcion; system("cls"); //Limpiador de pantalla. switch(opcion) //switch que determinará cada uno de los casos del menú de opciones { case 1: //Caso número 1 en sumar sumar(a, n, resultado); //Función que hará el proceso de sumar N cantidad de números. break; case 2: //Caso número 2 en restar restar(a, n, resultado); //Función que hará el proceso de restar N cantidad de números. break; case 3: //Caso número 3 en dividir. dividir(a, n, resultado); //Función que hará el proceso de dividir N cantidad de números. break; case 4: //Caso número 4 en sacar la raíz de un número. raiz(m, n, resultado); //Función que sacará la raíz de cualquier número que no sea negativo. break; case 5: //Caso número 5 en elevar un número a cierta cantidad. elevar(j, p, resultado); //Función que elevará un número a cualquier cantidad. break; default: //Caso default en no ser ningúna de los casos anteriores. std::cout<<"Error: Opción no disponible\n"; /*Mensaje de error que aparcerá cuando el usuario elija una opción fuera de los parametro establecidos en el menú.*/ break; } }while(opcion<=0 || opcion>5); //Ciclo do...while() secundario que se repetirá si el usuario elige una opción fuera del rango establecido. std::cout<<std::endl<<std::endl; //Dos saltos de líneas. do { //Menú de opciones en querer hacer otro proceso o salir del programa. std::cout<<"Volver al menú de opciones[1] |"; std::cout<<"| Salir del programa[2]"<<std::endl; std::cout<<" Opción: "; std::cin>>opcion; if(opcion<=0 || opcion>2) //if en caso de que el usuario elija una opción fuera de los parametros. { system("cls"); std::cout<<"Error: Opción no disponible\n"; //Mensaje de error. } else if(opcion == 2) //else if en caso de que el usuario quiera salir del programa. { std::cout<<"\nGracias por haber usado este programa :D"; //Mensaje de agradecimiento. getch(); } else system("cls"); //else en querer hacer otro cálculo. }while(opcion<=0 || opcion>2); //Ciclo do...while() teceriario que se repetirá si el usuario elige una opción fuera de los parametros. }while(opcion==1); //Ciclo do...while() principal solo si quiere hacer otro cálculo del programa. return 0; //Finaliza el programa. } //Definición de funciones void sumar(double a[], int n, double resultado) //Función que hará el proceso de sumar N cantidad de números. { do { std::cout<<"Ingrese cuantos números va sumar: "; std::cin>>n; if(n<=0 || n>100) { system("cls"); std::cout<<"Cantidad de número no admitida\n"; } else std::cout<<std::endl; }while(n<=0 || n>100); for(int i = 0; i<=n-1; i++) { std::cout<<" "; std::cin>>a[i]; if(i<n-1) std::cout<<"+ "<<std::endl; //if para que no aparezca un signo '+' al ingresar el último número. resultado += a[i]; //En el mismo for se irá sumando todos los números que ingrese el usuario. } std::cout<<"--------\n"; std::cout<<" "<<resultado; //Se presentrá el resultado en pantalla. } void restar(double a[], int n, double resultado) //Funciín que hará el proceso de restar N cantidad de números. { do { std::cout<<"Ingrese cuantos números va restar: "; std::cin>>n; if(n<=0 || n>100) { system("cls"); std::cout<<"Cantidad de número no admitida\n"; } else std::cout<<std::endl; }while(n<=0 || n>100); for(int i = 0; i<=n-1; i++) { if(i>0) u = i; //u guardará el valor de i solo si 'i' es mayor que 0. std::cout<<" "; std::cin>>a[i]; if(i<n-1) std::cout<<"- "<<std::endl; //if para no mostrar el signo '-' al ingresar el último número. if(i==0) resultado = a[0];//Guadrá el primer valor que ingrese el usuario para ser restado con los siguientes. else resultado -= a[u]; //Se restarán los siguientes números que vaya ingresando el usuario. } std::cout<<"--------\n"; std::cout<<" "<<resultado; //Se presentará el resultado en pantalla con el signo correspodiente. } void dividir(double a[], int n, double resultado) //Función que hará el proceso de dividir N cantidad de números. { int v = 0; //Verificador en caso de que se quiera dividir entre 0. do { std::cout<<"Ingrese cuantos números va dividir: "; std::cin>>n; if(n<=0 || n>100) { system("cls"); std::cout<<"Cantidad de número no admitida\n"; } else std::cout<<std::endl; }while(n<=0 || n>100); for(int i = 0; i<=n-1; i++) //Ciclo for con el mismo proceso de restar cualquier cantidad de números. { if(i>0) u = i; std::cout<<" "; std::cin>>a[i]; /* if en caso de que un número después del primero sea 0 y se quiera dividir con los otros se va a salir del for con el break y 'v' valdrá 1 para mostrar el mensaje de que no se puede dividir entre 0. */ if(a[i]==0 && i>0) { v = 1; break; //Se sale del for. } if(i<n-1) std::cout<<"/"<<std::endl; //No hará mostrar el signo '/' al ingresar el último número. if(i==0) resultado = a[0]; else resultado /= a[u]; } if(v==1) std::cout<<"No se puede dividir entre 0"; //Mensaje de error. else{ std::cout<<"--------\n"; std::cout<<" "<<resultado; } } void raiz(int d, int e, double resultado) //Función que hará el proceso de sacar raíz a un número. { std::cout<<"Ingrese el índice: "; std::cin>>e; std::cout<<"Número a sacar raíz: "; std::cin>>d; if(e == 0) std::cout<<"\nResultado: Sin definir"; //if en caso de que el usuario quiera sacar raíz con índice 0 aparece mensaje de error. else if((e%2==0) && (d<0)) std::cout<<"\nResultado: Número imaginario";//else if en caso de ingresar un índice par y un número negativo. else{ //else para no tener problemas para sacar la raíz de un número sin problemas para la computadora. resultado = pow(d, 1.0/e); //Forma de sacar raíz de cualquier número con cualquier índice. std::cout<<"Resultado: "<<resultado; } } void elevar(double b, double c, double resultado) //Función que hará elevar a cualquier número a cierta cantidad. { std::cout<<"Ingrese el exponente: "; std::cin>>c; std::cout<<"Número: "; std::cin>>b; if(c<=0 && b == 0) std::cout<<"\nResultado: Sin definir"; //if en caso de que el exponente sea 0 o menor a este y el número sea 0. else if(c == 0) std::cout<<"\nResultado: 1"; //else if cuando el usuario ingrese el exponente 0 para cualquier número. else{ //else para no tener problemas al momento de elevar un número a cualquier cantidad. resultado = pow(b, c); std::cout<<"\nResultado: "<<resultado; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue