elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++] Problema con conversor de temperaturas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C++] Problema con conversor de temperaturas  (Leído 4,696 veces)
Kurolox

Desconectado Desconectado

Mensajes: 208


sudo apt-get install Kurolox


Ver Perfil
[C++] Problema con conversor de temperaturas
« en: 17 Julio 2012, 20:20 pm »

Buenas. Estoy aprendiendo C++ Por un libro. No llevo mas que los primeros 5 temas, pero queria hacer un proyecto para ver que tal iba. He intentado desarrollar un conversor de celsius a fahrenheit y viceversa, y he conseguido compilarlo. Pero al ejecutarlo, solo me sale esto:

|_____________________________|________________________|

EDITO: Puedo escribir. Si escribo 1 o 2 me pide directamente el valor de celsius, y despues el de fahrenheit

Código
  1. #include <iostream>
  2.  
  3. float convertircf(float);
  4. float convertirfc(float);
  5.  
  6. int main()
  7. {
  8.    int convertir(int);
  9.    float farhenheit;
  10.    float celsius;
  11.    int seleccion;
  12.  
  13.    std::cout << "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\r";
  14.    std::cout << "|           Conversor de temperaturas v1.0               |\r";
  15.    std::cout << "|           ------------------------------               |\r";
  16.    std::cout << "|                                                        |\r";
  17.    std::cout << "|                Made By DigitalCarlox                   |\r";
  18.    std::cout << "|                                                        |\r";
  19.    std::cout << "|________________________________________________________|\r\r";
  20.    std::cout << "Seleccione una opción\r\r";
  21.    std::cout << "|^^^^^^^^^^^^^^^^^^^^^^^^^|\r";
  22.    std::cout << "|1. Celsius a Fahrenheit  |\r";
  23.    std::cout << "|                         |\r";
  24.    std::cout << "|2. Fahrenheit a Celsius  |\r";
  25.    std::cout << "|_________________________|\r";
  26.    std::cin >> seleccion;
  27.  
  28.    if (seleccion = 1)
  29.    {
  30.     std::cout << "\r\rHa escogido Celsius a Fahrenheit.\r";
  31.     std::cout << "Por favor, introduzca la temperatura en Celsius.\r";
  32.     std::cin >> celsius;
  33.     celsius = convertircf(farhenheit);
  34.     std::cout << "La temperatura en Fahrenheit es: ";
  35.     std::cout << farhenheit << "\r";
  36.                  }
  37.    if (seleccion = 2)
  38.    {
  39.     std::cout << "\r\rHa escogido Fahrenheit a Celsius.\r";
  40.     std::cout << "Por favor, introduzca la temperatura en Fahrenheit.\r";
  41.     std::cin >> farhenheit;
  42.     celsius = convertircf(farhenheit);
  43.     std::cout << "La temperatura en Fahrenheit es: ";
  44.     std::cout << celsius << "\r";
  45.  
  46.                  }
  47.    }
  48.    float convertircf(float celsius)
  49.    {
  50.        float farhenheit;
  51.        farhenheit = ((celsius * 9) / 5) + 32;
  52.        return farhenheit;
  53.        }
  54.    float convertirfc(float farhenheit)
  55.    {
  56.        float celsius;
  57.        celsius = ((farhenheit - 32) * 5) / 9;
  58.        return celsius;
  59.        }
  60.  

Seguramente el problema sea obvio, pero yo no lo consigo ver. Tampoco quiero soluciones muy avanzadas, por que es solo un programa de bajo nivel. (Ya vi algunas fallas, pero aun no puedo solucionarlas por que no tengo el nivel)


« Última modificación: 17 Julio 2012, 20:23 pm por CDigital » En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: [C++] Problema con conversor de temperaturas
« Respuesta #1 en: 17 Julio 2012, 20:45 pm »

¡Buenas!

Solo le he echado un vistazo por encima, pero en los if, en lugar de hacer una comparacion estas haciendo una asignacion. Para comparar tienes que usar el doble igual:
Código
  1. if(algo == loquesea)
  2.    ...
  3.  

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: [C++] Problema con conversor de temperaturas
« Respuesta #2 en: 17 Julio 2012, 20:46 pm »

En los if debes usar el operador de comparación ("=="), no es de asignación ('=').

Así:

Código
  1. #include <iostream>
  2. using namespace std;
  3. float convertircf(float);
  4. float convertirfc(float);
  5.  
  6. int main()
  7. {
  8.    int convertir(int);
  9.    float farhenheit;
  10.    float celsius;
  11.    int seleccion;
  12.  
  13.    cout << "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" << endl;
  14.    cout << "|           Conversor de temperaturas v1.0               |" << endl;
  15.    cout << "|           ------------------------------               |" <<endl;
  16.    cout << "|                                                        |"<<endl;
  17.    cout << "|                Made By DigitalCarlox                   |"<<endl;
  18.    cout << "|                                                        |"<<endl;
  19.    cout << "|________________________________________________________|\r\r"<<endl;
  20.    cout << "Seleccione una opción\r\r"<<endl;
  21.    cout << "|^^^^^^^^^^^^^^^^^^^^^^^^^|\r"<<endl;
  22.    cout << "|1. Celsius a Fahrenheit  |\r"<<endl;
  23.    cout << "|                         |\r"<<endl;
  24.    cout << "|2. Fahrenheit a Celsius  |\r"<<endl;
  25.    cout << "|_________________________|\r"<<endl;
  26.    cin >> seleccion;
  27.  
  28.    if (seleccion == 1)
  29.    {
  30.     cout << "\r\rHa escogido Celsius a Fahrenheit.\r";
  31.     cout << "Por favor, introduzca la temperatura en Celsius.\r";
  32.     cin >> celsius;
  33.     celsius = convertircf(farhenheit);
  34.     cout << "La temperatura en Fahrenheit es: ";
  35.     cout << farhenheit << "\r";
  36.                  }
  37.    if (seleccion == 2)
  38.    {
  39.     cout << "\r\rHa escogido Fahrenheit a Celsius.\r";
  40.     cout << "Por favor, introduzca la temperatura en Fahrenheit.\r";
  41.     cin >> farhenheit;
  42.     celsius = convertircf(farhenheit);
  43.     cout << "La temperatura en Fahrenheit es: ";
  44.     cout << celsius << "\r";
  45.  
  46.                  }
  47.    }
  48.    float convertircf(float celsius)
  49.    {
  50.        float farhenheit;
  51.        farhenheit = ((celsius * 9) / 5) + 32;
  52.        return farhenheit;
  53.        }
  54.    float convertirfc(float farhenheit)
  55.    {
  56.        float celsius;
  57.        celsius = ((farhenheit - 32) * 5) / 9;
  58.        return celsius;
  59.        }
  60.  

También he puesto en el programa para que hagas saltos de línea (endl), y para que no tengas que poner std:: delante de cin y cout, he puesto using namespace std;

Saludos!

En línea

dac

Desconectado Desconectado

Mensajes: 94



Ver Perfil WWW
Re: [C++] Problema con conversor de temperaturas
« Respuesta #3 en: 17 Julio 2012, 20:51 pm »

Código:
if (seleccion = 1)
    {
     std::cout << "\r\rHa escogido Celsius a Fahrenheit.\r";
     std::cout << "Por favor, introduzca la temperatura en Celsius.\r";
     std::cin >> celsius;
     celsius = convertircf(farhenheit);  \\ ¿?¿? o.O
     std::cout << "La temperatura en Fahrenheit es: ";
     std::cout << farhenheit << "\r";
                  }
    if (seleccion = 2)
    {
     std::cout << "\r\rHa escogido Fahrenheit a Celsius.\r";
     std::cout << "Por favor, introduzca la temperatura en Fahrenheit.\r";
     std::cin >> farhenheit;
     celsius = convertircf(farhenheit);
     std::cout << "La temperatura en Fahrenheit es: ";
     std::cout << celsius << "\r";
 
                  }


Esta como que alreves... deberia ser:


Código:
if (seleccion == 1) \\ ==
    {
     std::cout << "\r\rHa escogido Celsius a Fahrenheit.\r";
     std::cout << "Por favor, introduzca la temperatura en Celsius.\r";
     std::cin >> celsius;
     farhenheit = convertircf(celsius);  
     std::cout << "La temperatura en Fahrenheit es: ";
     std::cout << farhenheit << "\r";
                  }
    if (seleccion == 2) \\ ==
    {
     std::cout << "\r\rHa escogido Fahrenheit a Celsius.\r";
     std::cout << "Por favor, introduzca la temperatura en Fahrenheit.\r";
     std::cin >> farhenheit;
     celsius = convertircf(farhenheit);
     std::cout << "La temperatura en Fahrenheit es: ";
     std::cout << celsius << "\r";
 
                  }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Temperaturas « 1 2 »
Hardware
Gcb93 14 8,662 Último mensaje 28 Abril 2011, 15:12 pm
por Gcb93
Temperaturas PC « 1 2 »
Hardware
oscardlaoya 12 6,951 Último mensaje 3 Junio 2012, 21:33 pm
por Aprendiz-Oscuro
Problema con temperaturas en un intel pentium e5200
Hardware
jonathanmr 2 2,798 Último mensaje 13 Diciembre 2012, 09:30 am
por jonathanmr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines