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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿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 6,551 veces)
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 pm »

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: 724


Intentando ser mejor cada día :)


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

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 pm »

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: 206



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

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/
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


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

Por eso me quedo con la segunda versión del ejercicio xD
En línea

¡Salu2 a to2!
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: ¿Me echáis un cable?
« Respuesta #15 en: 27 Marzo 2013, 00:01 am »

¡Hola, buenas noches de nuevo!

Tengo un nuevo ejercicio que hacer, que aparentemente me funciona correctamente pero no sé si está bien escrito su código.

El enunciado del ejercicio, es el síguete:

"Escribe el código en C de la función que imprima por pantalla tantos asteriscos como indique el número que reciba como argumento."

El código que llevo por ahora es el siguiente:
Código
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.  
  4. int asteriscos(int i);
  5.  
  6. int main(){  
  7.  int i=0,num=0;  
  8.  
  9.    printf("Itroduce un numero: \n");  
  10.    scanf("%d",&num);  
  11.  
  12.    for(i=0;i<num;i++)  
  13.        printf("* ");  
  14.    getch();  
  15.  
  16. system("pause");
  17. return 0;  
  18. }
  19.  
  20. int asteriscos(int i){
  21. return "* ";
  22. }

Muchas gracias por vuestra ayuda "profes" :P
« Última modificación: 27 Marzo 2013, 00:10 am por kayron8 » En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #16 en: 27 Marzo 2013, 00:18 am »

Pregunta nueva, tema nuevo. De todas maneras lo que tiene que imprimir por pantalla los asteriscos es la función, y ni llamas a la función ni la función hace lo que dice el enunciado. En todo caso sería llamando a la función y pasándole la cantidad de asteriscos a imprimir por pantalla:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void printAsterisks(unsigned int numOfAsterisks);
  5.  
  6. int main()
  7. {
  8.    unsigned int num = 0;
  9.  
  10.    printf("Introduce un numero: \n");
  11.    scanf("%u",&num);
  12.  
  13.    printAsterisks(num);
  14.  
  15.    system("pause");
  16.    return 0;
  17. }
  18.  
  19. void printAsterisks(unsigned int numOfAsterisks)
  20. {
  21.    while(numOfAsterisks)
  22.    {
  23.     printf("* ");
  24.     --numOfAsterisks;
  25.    }
  26. }
Creo que deberías darle un repaso al uso de las funciones, porque no sabes usarlas o da la impresión de eso. A una función tu le pasas unos parámetros y o hace una cosa y no devuelve nada como en este caso. O evalúa un problema y devuelve una solución. ¡Pero tienes que llamarla , si no no hace nada!
« Última modificación: 27 Marzo 2013, 00:43 am 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 #17 en: 27 Marzo 2013, 00:35 am »

La verdad es que sí, me hace falta un buen repaso. Programo en varios lenguajes y me lio bastante :(

La condición while, la remplace con tú permiso, por mi for antiguo, este cambio lo hice porque con tu código me imprime asteriscos de forma infinita.

Luego una pequeña tontería, en la línea 11, cuando escribes
Código
  1. scanf("%ud",&num);
¿no sería
Código
  1. scanf("%d",&num);
?

Muchas gracias de nuevo
En línea

¡Salu2 a to2!
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: ¿Me echáis un cable?
« Respuesta #18 en: 27 Marzo 2013, 00:45 am »

Luego una pequeña tontería, en la línea 11, cuando escribes
Código
  1. scanf("%ud",&num);
¿no sería
Código
  1. scanf("%d",&num);
?
Es que he cambiado el tipo a unsigned int ya que no tiene sentido imprimir -4 asteriscos  :xD de todas maneras me he equivocado sería:
Código
  1. scanf("%u",&num);
No sé porque te genera un bucle infinito, a mi no me lo genera ni en Windows ni en Linux(Ubuntu) sobre el compilador GCC sobre Linux y MinGW sobre Windows y el IDE Codeblocks.
« Última modificación: 27 Marzo 2013, 00:49 am por avesudra » En línea

Regístrate en
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿¿¿¿Me echais una mano para soldar cable a la Pcmcia ???? « 1 2 »
Materiales y equipos
pang 11 5,242 Último mensaje 16 Mayo 2008, 17:51 pm
por KARR
¿me echais una mano? es un programa en assembler muy fácil.
Bugs y Exploits
black_flowers 8 6,255 Último mensaje 19 Febrero 2011, 12:13 pm
por black_flowers
Me echáis una mano?
Desarrollo Web
villvas 1 3,135 Último mensaje 28 Agosto 2012, 13:37 pm
por villvas
¿Qué comandos utilizáis más y cuales echáis más de menos?
Foro Libre
OmarHack 8 2,952 Último mensaje 19 Junio 2013, 15:28 pm
por blue_net
¿¿Os echáis un minecraft??
Foro Libre
NeoB 2 2,445 Último mensaje 26 Diciembre 2013, 18:00 pm
por NeoB
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines