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


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  ¿Me echáis un cable?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿Me echáis un cable?  (Leído 1,206 veces)
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
¿Me echáis un cable?
« en: 26 Marzo 2013, 00:11 »

Hola buenas tardes, necesito que me echen una mano con este ejercicio:

Programa en C que pase de pies (unidad de longitud) a metros y a la inversa, utilizando funciones, las cuales no recibirán parámetros. (1 metro=0.3048pies).

Muchas gracias :D


« Última modificación: 26 Marzo 2013, 00:31 por kayron8 » En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 592


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #1 en: 26 Marzo 2013, 00:13 »

¿Llevas algo hecho ya? Postealo si es así.Dado que este es un foro para resolver dudas, no para hacerle el trabajo a nadie.

¡Un saludo y bienvenido al foro!


En línea

Regístrate en
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #2 en: 26 Marzo 2013, 00:26 »

Sí, se me olvidó escribir lo que llevo hecho.
Soy novato y aun no controlo mucho el tema jajaja
Esto es lo que llevo por ahora:
Código:
#include <stdio.h>
#include <stdlib.h>

int conversor(float x, char letra);

int main (){
    float metros=0, pies=0;
    printf ("Introduce el valor de pies: ");
    scanf("%f",&pies);
        
    if(conversor(metros,pies)==1){
     metros=pies*0.3048;
     printf ("%.2f pies son: %.2f metros\n",pies,metros);
}
else{
pies=metros/0.3048;
     printf ("%.2f metros son: %.2f pies\n",metros,pies);
    }

system ("pause");
    return 0;
}

int conversor(float x, char letra){
    if(letra=='p')
           return 1;
     else
           return 0;
}

Muchas gracias :D
« Última modificación: 26 Marzo 2013, 00:45 por kayron8 » En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 592


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #3 en: 26 Marzo 2013, 00:28 »

Bueno pero tendrás que contarnos cual es tu problema ¿no? , no podemos adivinar  :silbar:
En línea

Regístrate en
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #4 en: 26 Marzo 2013, 00:34 »

Pues el problema es que cuando compilo el código fuente y voy a probarlo siempre me aparece 0 como resultado.

Muchas gracias :D
En línea

¡Salu2 a to2!
durasno


Desconectado Desconectado

Mensajes: 376


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #5 en: 26 Marzo 2013, 00:46 »

Hola! LA variable pies es de tipo float sin embargo tu funcion recibe un char. Si queres ingresar un caracter tenes que declarar a pies como char y en el scanf usar %c


Saludos
En línea

Ahorrate una pregunta, lee el man
avesudra


Desconectado Desconectado

Mensajes: 592


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #6 en: 26 Marzo 2013, 00:49 »

Bien pues vamos por partes al no poder usar funciones con parámetros vamos a ser chicos malos y usaremos variables globales, a las que podremos acceder durante todo el programa. Por lo tanto lo primero que tenemos que decirle al usuario es que si quiere convertir de metros a pies o de pies a metros, luego pedirle cuantos pies o cuantos metros desea convertir y luego cuando ya tengamos la entrada, pues decidir en base a eso y llamar a las funciones:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. float metros    = 0;
  5. float pies      = 0;
  6.  
  7. void metrosAPies();
  8. void piesAMetros();
  9.  
  10. int main ()
  11. {
  12.  
  13.    int eleccion = 0;
  14.    printf("CONVERSOR METROS-PIES\n");
  15.    printf("---------------------------\n");
  16.    printf("1. Metros a pies.\n");
  17.    printf("2. Pies a metros.\n");
  18.    printf("\nSelecciona numero: ");
  19.    scanf("%d",&eleccion);
  20.  
  21.    if(eleccion == 1)
  22.    {
  23.        printf("\nIntroduzca los metros a convertir: ");
  24.        scanf("%f",&metros);
  25.        metrosAPies();
  26.        printf ("\n%.2f pies son: %.2f metres\n",pies,metros);
  27.    }
  28.    else if(eleccion == 2)
  29.    {
  30.        printf("\nIntroduzca los pies a convertir: ");
  31.        scanf("%f",&pies);
  32.        piesAMetros();
  33.        printf("\n%.2f metros son: %.2f pies\n",metros,pies);
  34.    }
  35.    else
  36.    {
  37.        printf("\nNo ha seleccionado una opcion correcta.");
  38.    }
  39.    getchar();
  40.    return 0;
  41. }
  42.  
  43. void metrosAPies()
  44. {
  45.    pies = metros / 0.3048;
  46. }
  47. void piesAMetros()
  48. {
  49.    metros = pies * 0.3048;
  50. }
Hola! LA variable pies es de tipo float sin embargo tu funcion recibe un char. Si queres ingresar un caracter tenes que declarar a pies como char y en el scanf usar %c


Saludos
Durasno de todas maneras no ingresaba ni los metros ni los pies por lo tanto siempre iba a darle 0 de salida.

¡Un saludo!

kayron8 en tu código el principal problema es que no sabías como decidir lo que el usuario quería, además debías ingresar los metros o pies que querías. Tal y como posteaste el programa pies casi nunca sería igual que 1 dado que pies casi nunca sería 'p' y entonces al pasar al bloque de sentencias del else , al ser metros 0, 0/0.3048 = 0, por lo tanto a pies se le asignaba el valor 0 y por eso todo daba 0.
« Última modificación: 26 Marzo 2013, 01:24 por avesudra » En línea

Regístrate en
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #7 en: 26 Marzo 2013, 01:04 »

Wow, muchísimas gracias por ayudarme a resolver el problema, sabía que el ejercicio en sí, no era muy difícil.

El problema lo tengo con las funciones que no me aclaro de familiarizar con ellas.

¡Ojalá solucionase los ejercicios así de rápido!

Por cierto, en la línea 24 te dejaste el &, sino el programa peta ;)

Muchas gracias de nuevo :D
« Última modificación: 26 Marzo 2013, 01:21 por kayron8 » En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 592


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #8 en: 26 Marzo 2013, 01:24 »

Wow, muchísimas gracias por ayudarme a resolver el problema, sabía que el ejercicio en sí, no era muy difícil.

El problema lo tengo con las funciones que no me aclaro de familiarizar con ellas.

¡Ojalá solucionase los ejercicios así de rápido!

Por cierto, en la línea 24 te dejaste el &, sino el programa peta ;)

Muchas gracias de nuevo :D

De nada, las funciones son sencillas, nada del otro mundo, lo más complicado que puedes ver ahí es la recursividad y el número variable de argumentos pero poco más . . .  ¡Que fallo! lo corrijo ahora mismo, es que hace poco he desactivado los avisos del compilador para que no me de el coñazo con algunos avisos innecesarios y se me ha olvidado activarlo.
En línea

Regístrate en
durasno


Desconectado Desconectado

Mensajes: 376


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #9 en: 26 Marzo 2013, 02:15 »

Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien


Saludos
En línea

Ahorrate una pregunta, lee el man
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #10 en: 26 Marzo 2013, 12:46 »

Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien


Saludos

Lo tendré en cuenta ;)
En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 592


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #11 en: 26 Marzo 2013, 12:52 »

Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien


Saludos
Llevas muchísima razón, lo mejor en ese código hubiese sido esto(utilizando variables locales en las funciones):
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void metrosAPies();
  5. void piesAMetros();
  6.  
  7. int main ()
  8. {
  9.  
  10.    int eleccion = 0;
  11.    printf("CONVERSOR METROS-PIES\n");
  12.    printf("---------------------------\n");
  13.    printf("1. Metros a pies.\n");
  14.    printf("2. Pies a metros.\n");
  15.    printf("\nSelecciona numero: ");
  16.    scanf("%d",&eleccion);
  17.  
  18.    if(eleccion == 1)
  19.    {
  20.        metrosAPies();
  21.    }
  22.    else if(eleccion == 2)
  23.    {
  24.        piesAMetros();
  25.    }
  26.    else
  27.    {
  28.        printf("\nNo ha seleccionado una opcion correcta.");
  29.    }
  30.    getchar();
  31.    return 0;
  32. }
  33.  
  34. void metrosAPies()
  35. {
  36.    float metros    = 0;
  37.    float pies      = 0;
  38.    printf("\nIntroduzca los metros a convertir: ");
  39.    scanf("%f",&metros);
  40.    pies = metros / 0.3048;
  41.    printf ("\n%.2f pies son: %.2f metres\n",pies,metros);
  42. }
  43. void piesAMetros()
  44. {
  45.    float metros    = 0;
  46.    float pies      = 0;
  47.    printf("\nIntroduzca los pies a convertir: ");
  48.    scanf("%f",&pies);
  49.    metros = pies * 0.3048;
  50.    printf("\n%.2f metros son: %.2f pies\n",metros,pies);
  51. }
En línea

Regístrate en
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #12 en: 26 Marzo 2013, 14:21 »

Llevas muchísima razón, lo mejor en ese código hubiese sido esto(utilizando variables locales en las funciones):
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void metrosAPies();
  5. void piesAMetros();
  6.  
  7. int main ()
  8. {
  9.  
  10.    int eleccion = 0;
  11.    printf("CONVERSOR METROS-PIES\n");
  12.    printf("---------------------------\n");
  13.    printf("1. Metros a pies.\n");
  14.    printf("2. Pies a metros.\n");
  15.    printf("\nSelecciona numero: ");
  16.    scanf("%d",&eleccion);
  17.  
  18.    if(eleccion == 1)
  19.    {
  20.        metrosAPies();
  21.    }
  22.    else if(eleccion == 2)
  23.    {
  24.        piesAMetros();
  25.    }
  26.    else
  27.    {
  28.        printf("\nNo ha seleccionado una opcion correcta.");
  29.    }
  30.    getchar();
  31.    return 0;
  32. }
  33.  
  34. void metrosAPies()
  35. {
  36.    float metros    = 0;
  37.    float pies      = 0;
  38.    printf("\nIntroduzca los metros a convertir: ");
  39.    scanf("%f",&metros);
  40.    pies = metros / 0.3048;
  41.    printf ("\n%.2f pies son: %.2f metres\n",pies,metros);
  42. }
  43. void piesAMetros()
  44. {
  45.    float metros    = 0;
  46.    float pies      = 0;
  47.    printf("\nIntroduzca los pies a convertir: ");
  48.    scanf("%f",&pies);
  49.    metros = pies * 0.3048;
  50.    printf("\n%.2f metros son: %.2f pies\n",metros,pies);
  51. }


Hola, muchas gracias por la ayuda, sois mejores que mi profe de programación jejeje

Me quedo con esta segunda versión ya que el profe prefiere este modo que no el primero que se planteó.

Saludos :D
En línea

¡Salu2 a to2!
85

Desconectado Desconectado

Mensajes: 205



Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #13 en: 26 Marzo 2013, 14:41 »

que raro porque los profesores son los que siempre dicen que no usés variables globales.
En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Me echais una mano a configuar mi wifi
Hacking Wireless
adosvelas 2 788 Último mensaje 7 Febrero 2008, 09:28
por --bl455--
¿¿¿¿Me echais una mano para soldar cable a la Pcmcia ????
Materiales y equipos
pang 11 1,926 Último mensaje 16 Mayo 2008, 17:51
por KARR
Me echáis una mano?
Desarrollo Web
villvas 1 1,268 Último mensaje 28 Agosto 2012, 13:37
por villvas
¿Qué comandos utilizáis más y cuales echáis más de menos?
Foro Libre
OmarHack 8 826 Último mensaje 19 Junio 2013, 15:28
por blue_net
¿¿Os echáis un minecraft??
Foro Libre
NeoB 2 347 Último mensaje 26 Diciembre 2013, 18:00
por NeoB
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines