temperatura con funcion

Iniciado por dariomega, 16 Agosto 2013, 19:44 PM

0 Miembros y 1 Visitante están viendo este tema.

dariomega

que tal jovenes, hice este programa con funcion pero necesito saber si esta bien o en donde meti la pata

toda critica buena o mala es muy bien recibida
este es el programa  :rolleyes:

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
int temperatura();

int main()
{
temperatura();
return 0;

}

int temperatura ()
{
char letratemp;
float temp, fahren, celsius;
cout<<"Ingrese la temperatura a convertir: ";
cin>>temp;
   cout<<"Si desea la temperatura en Fahrenheit presione f"
       <<"o c si la desea en Celsius: ";
       cin>>letratemp;
   cout<<setiosflags (ios::fixed)
       <<setiosflags (ios::showpoint)
       <<setprecision(2);
  if (letratemp == 'f')
   {
   celsius == (5.0/9.0) * (temp - 32.0);
   cout<<"\nLa temperatura equivalente en Celsius es: "<<celsius<<endl;
   }
   else
   {
   fahren == (9.0/5.0) * (temp - 32.0);
   cout<<"\nLa temperatura equivalente en Fahrenheit es: "<<fahren<<endl;
   }
getch ();
return 0;
}

avesudra

Hola deberías editar el post si quieres decir algo nuevo en vez de enviar un comentario nuevo, con eso le ahorras trabajo a los moderadores. Te voy a ir diciendo lo que está mal y tu ya lo arreglaras(algunos) porque son fallos muy básicos que mirando en cualquier lado te das cuenta de lo que pasa.

1. La librería iostream.h no existe es iostream:
Código (cpp) [Seleccionar]
#include <iostream>
2. La librería iomanip.h no existe es iomanip:
Código (cpp) [Seleccionar]
#include <iomanip>
3. cin endl ios setiosflags y cout no están declarados en este ámbito líneas del error:
Código (cpp) [Seleccionar]
cout<<"Ingrese la temperatura a convertir: ";
cin>>temp;
cout<<"Si desea la temperatura en Fahrenheit presione f"
   <<"o c si la desea en Celsius: ";
cin>>letratemp;
cout<<setiosflags (ios::fixed)
   <<setiosflags (ios::showpoint)
   <<setprecision(2);

Motivo del error: que cin endl ios setiosflags y cout pertenecen a la clase std. Posibles soluciones: o antepones std:: a todos los cin y cout o usas el namespace std para no tener que escribir std:: todas las veces:
Código (cpp) [Seleccionar]
using namespace std;
4. Otras cosas a tener en cuenta, no te voy a decir donde está el error para que lo investiges , el operador == es el de COMPARACIÓN y el = es el de ASIGNACIÓN.

Revisa tu código.

¡Un saludo! Avesudra.
Regístrate en

Eternal Idol

#2
conio.h tampoco es standard y para eso que haces te sobraria con getchar que si lo es, tambien podrias usar los metodos get o ignore con el objeto cin.

Un compilador moderno como VC++ te advierte del punto 4 que te marca avesudra. Seguro estas usando algun compilador obsoleto de Borland ...
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

vangodp

#3
 :silbar: jajaja se que no se deve de usar goto pero me dio vaguesa  ;D

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

//°F= °C x 1.8 + 32
//°C= (°F - 32) / 1.8


void fahrenheit (int c)
{
     float f;
     f = c * 1.8 + 32;
   cout << f << "F" << endl;
}

void centigrados (float f)
{
   float c;
   c = (f - 32) / 1.8;
   cout << c << "C" << endl;  
}



int main ()
{
   float f;
   int c;
   int caso = 0;
   char continuar;
   
   inicio:
   
   cout << "1- Fahrenheit a Centigrados." << endl;
   cout << "2- Centigrados a Fahrenheit." << endl;
   cin >> caso;
   
   switch (caso)
   {
        case 1:
        cout << "introduzca grados los grados Fahrenheit a convertir: \n" <<endl;
        cin >> f;
        centigrados (f);
        break;

        case 2:
        cout << "introduzca grados los grados Centigrados a convertir: \n" <<endl;
        cin >> c;
        fahrenheit (c);
        break;
       
        default:
        cout << "No has elegido una de las 2 opciones" << endl;
        break;
    }
   
    onemoretime:
               
    cout << "Desea hacer alguna convercion mas?" << endl;
    cout << "s = si\n" << "n = no" << endl;
    cin >> continuar;
    switch (continuar)
    {
           case 's':
                goto inicio;
                break;
           case 'n':
                cout << "Hasta pronto!" << endl;
                break;
           default:
                cout << "no has selecionado una opcion valida" << endl;
                goto onemoretime;
                break;
    }
    fin:


   system ("pause>nul");
   return 0;
}


ya se que la gente hace mejor solo queria ver si yo era capaz.... aun soy novato jeje
Saludos :D



EI: juntando mensajes.


aa una cosa mas lo hice en dev c++ por si algo no anda jeje

amchacon

Gotos tiene pocos usos utiles, es mucho mejor usar while y fors... Debería rehacer el codigo y prohibirte a ti mismo usarlo...

Cita de: vangodp en 17 Agosto 2013, 06:11 AMaa una cosa mas lo hice en dev c++ por si algo no anda jeje
http://foro.elhacker.net/programacion_cc/iquestpor_que_no_deberias_usar_el_devcpp-t385150.0.html

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

vangodp

jajaj ok ok por lo del spaguetis...  ;) po si, voy a reacer y lo subo :xD

za.asi

una solución fácil para quitar esos gotos seria poner una referencia a main() en el goto inicio y crear otra función en la que esté el bucle para redirigir el otro. también puedes usar un while y te ahorras el crear una función nueva.

amchacon

Cita de: za.asi en 17 Agosto 2013, 17:25 PM
una solución fácil para quitar esos gotos seria poner una referencia a main() en el goto inicio y crear otra función en la que esté el bucle para redirigir el otro. también puedes usar un while y te ahorras el crear una función nueva.
Eso es aun peor que el goto...
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

za.asi

#8
Cita de: amchacon en 17 Agosto 2013, 19:13 PM
Eso es aun peor que el goto...

Por eso he dicho qie era una solución facil, ya se que lo correcto seria un while, pero si esta aprendiendo desde hace poco quiza no sepa usar bién los controladores de flujo, el primer programa que hice yo lo hice usando gotos, y cuando fui aprendiendo lo modifique de esta manera y finalmente con el while y el for, pero hay que aprender paso a paso para entender bién lo que se esta haciendo, si no no sirve de nada.

vangodp

 ;D

Las funciones lo tengo claro.... y el control de flujo aun no me va fluido, aun que si me pongo serio capaz aoy de hacer lo que sea jaja.
La cosa que me jode la rosca de momento es la composicion jajaj