Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - FOURJhina

#1
Osea te refieres a que declare mis variables como string?
Y si perdon por lo de las etiquetas, ando un poco apresurado con muchas tareas y proyectos
#2
Cita de: YreX-DwX en  9 Marzo 2019, 22:55 PM
Lo primero, coloca tu código entre etiquetas de código GeSHi (puedes seleccionarlas en un desplegable que hay encima del cuadro de texto cuando escribes/modificas un mensaje). Es más difícil de ver y puede dar lugar a errores al no estar dentro de las etiquetas.

Aparte como el código es bastante largo, si puedes especificar en qué momento falla... Es decir, qué línea o bloque de instrucciones se está ejecutando justo en el momento que el programa entra en el bucle infinito :rolleyes: :-X

Me falla en cualquier parte donde hay que poner un numero osea practicamente en todo el programa, estoy super estresado con todo esto


#3
Tengo un proyecto de la escuela el cual es una calculadora con varias opciones, ya están todas programadas, el único problema que tengo es que al ingresar una letra se crea un bucle infinito y ya no puedo hacer nada, llevo intentando arreglarlo demasiado tiempo pero simplemente ya no se que hacer, me bloquee por completo, por favor alguien ayúdeme.
El código es el siguiente:

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



using namespace std;

int main() {

float numero1, numero2;
int potencia, base;
int opcion;

int n;
long double factorial(int);
char cadena[63];
unsigned long long int decimal = 0;
int bas;
int tabla=0 or 1, tabla1=0 or  1;




do {
   etiqueta_1:
   system ("color 0D");
   system("cls");
   cout << "BIENVENIDO AL PROGRAMA DE CALCULADORA" << endl;
   cout << "MENU PRINCIPAL" << endl;
    cout << "1. Operaciones aritmeticas" << endl;
    cout << "2. Factorial" << endl;
    cout << "3. Conversor entre bases" << endl;
    cout << "4. Tabla de verdad" << endl;
    cout << "5. Salir" << endl;
    cout << "Elija una opcion" << endl;
    cin >> opcion;

    switch(opcion){
case 1:
system ("color 01");


do{

system("cls");
cout << "MENU DE OPERACIONES ARITMETICAS" << endl;
cout << "1. Suma" << endl;
cout << "2. Resta" << endl;
cout << "3. Multiplicacion" << endl;
cout << "4. Division" << endl;
cout << "5. Potencia" << endl;
cout << "6. Volver al menu principal" << endl;
cout << "7. Salir" << endl;
cout << "Elija una opcion" << endl;
cin >> opcion;


system("cls");

if(opcion >= 1 && opcion <=4)
{
cout << "Ingrese el numero 1:" << endl;
cin >> numero1;
cout << "Ingrese el numero 2:" << endl;
cin >> numero2;


switch(opcion){
case 1:
cout << "La suma es: " << numero1 + numero2 << endl << endl;
break;
case 2:
cout << "La resta es: " << numero1 - numero2 << endl << endl;
break;
case 3:
cout << "La multiplicacion es: " << numero1 * numero2 << endl << endl;
break;   
case 4:
cout << "La division es: " << numero1 / numero2 << endl << endl;
break;

}
}
else if (opcion == 5){
cout << "Introduce la base: " << endl;
cin >> base;
cout << "Introduce la potencia: " << endl;
cin >> potencia;
cout << "El resultado es: " << pow(base,potencia) << endl << endl;

   

}
if (opcion == 6){
   goto etiqueta_1;
}

if(opcion != 7){
cout << "Presione cualquier tecla para volver al menu de operaciones aritmeticas." << endl;
getchar(); getchar(); 
}


}

while(opcion != 7);   
return 0;



case 2:
system ("color 02");


do{
system("cls");
cout << "MENU DE FACTORIAL" << endl;
cout << "1. Factorial" << endl;
cout << "2. volver al menu principal" << endl;
cout << "3. Salir" << endl;
cout << "Elija una opcion" << endl;
cin >> opcion;
system("cls");


if(opcion == 1)
{
    cout << "Introduzca numero: ";
    cin >> n;
    cout << "Factorial: " << factorial(n) << endl;
    system("pause");

}
if (opcion == 2){
   goto etiqueta_1;
}



if(opcion != 3){
cout << "Presione cualquier tecla para volver al menu de factorial." << endl;
getchar(); getchar();
}
}while(opcion != 3);   
return 0;




case 3:
system ("color 03");

do{
system("cls");
cout << "MENU DE CONVERTIDOR DE BASES" << endl;
cout << "1. Binario" << endl;
cout << "2. Octal" << endl;
cout << "3. Hexadecimal" << endl;
cout << "4. volver al menu principal" << endl;
cout << "5. Salir" << endl;
cout << "Elija una opcion" << endl;
cin >> opcion;
system("cls");


if(opcion >= 1 && opcion <=3)
{

    cout << "Ingresa un numero decimal: " << endl;
    cin >> decimal;

switch(opcion){
case 1:

ltoa(decimal, cadena, 2);
    cout << "El numero en base binaria es:" << (2, cadena) << endl;

break;
case 2:
ltoa(decimal, cadena, 8);
    cout << "El numero en base octal es:" << (8, cadena) << endl;


break;
case 3:
ltoa(decimal, cadena, 16);
    cout << "El numero en base hexadecimal es:" << (16, cadena) << endl;


break;   

}

   

 


}


if (opcion == 4){
   goto etiqueta_1;
}


if(opcion != 5){
cout << "Presione cualquier tecla para volver al menu de convertidor de bases." << endl;
getchar(); getchar();
}
}while(opcion != 5);   
return 0;




case 4:
system ("color 04");


do{
system("cls");
cout << "MENU DE OPERADORES LOGICOS" << endl;
cout << "1. AND" << endl;
cout << "2. OR" << endl;
cout << "3. XOR" << endl;
cout << "4. NOT" << endl;
cout << "5. Volver al menu principal " << endl;
cout << "6. Salir" << endl;
cout << "Elija una opcion" << endl;
cin >> opcion;
system("cls");


if(opcion >= 1 && opcion <=3)
{
    cout << "Inserte el valor de A (solo 0 o 1): " << endl;
    cin >> tabla;
cout << "Inserte el valor de B (solo 0 o 1): " << endl;
    cin >> tabla1;
switch(opcion){
case 1:
if(tabla == 0 && tabla1 ==0)
{
   cout << "Su salida es: 0" << endl;
}

else if (tabla == 1 && tabla1 == 0)
{
   cout << "Su salida es: 0" << endl;
}

else if (tabla == 0 && tabla1 == 1)
{
   cout << "Su salida es: 0" << endl;
}

else if (tabla == 1 && tabla1 == 1)
{
   cout << "Su salida es: 1" << endl;
}


break;


case 2:
if(tabla == 0 && tabla1 ==0)
{
   cout << "Su salida es: 0" << endl;
}

else if (tabla == 1 && tabla1 == 0)
{
   cout << "Su salida es: 1" << endl;
}

else if (tabla == 0 && tabla1 == 1)
{
   cout << "Su salida es: 1" << endl;
}

else if (tabla == 1 && tabla1 == 1)
{
   cout << "Su salida es: 1" << endl;
}



break;


case 3:
if(tabla == 0 && tabla1 ==0)
{
   cout << "Su salida es: 0" << endl;
}

else if (tabla == 1 && tabla1 == 0)
{
   cout << "Su salida es: 1" << endl;
}

else if (tabla == 0 && tabla1 == 1)
{
   cout << "Su salida es: 1" << endl;
}

else if (tabla == 1 && tabla1 == 1)
{
   cout << "Su salida es: 0" << endl;
}

break;   
}


}
else if (opcion == 4){
cout << "Introduce el valor de A (solo 0 o 1): " << endl;
cin >> tabla;
if(tabla == 0 )
{
   cout << "Su salida es: 0" << endl;
}
else if (tabla == 1 )
{
   cout << "Su salida es: 1" << endl;
}

}

   

 



if (opcion == 5){
   goto etiqueta_1;
}


if(opcion != 6){
cout << "Presione cualquier tecla para volver al menu de operadores logicos." << endl;
getchar(); getchar();
}
}while(opcion != 6);   
return 0;



}
   
   
   

}


while(opcion != 5);

}


long double factorial(int n)
{
    long double fact;
    if (n==0)
        return 1;
    else
         return n*factorial(n-1);
  }



De antemano muchas gracias.