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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Problema con ejercicio
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Problema con ejercicio  (Leído 9,829 veces)
dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: [C] Problema con ejercicio
« Respuesta #20 en: 26 Febrero 2014, 09:09 am »

Gracias a los dos por tomaros la molestia , mirare con lupa ese codigo que me pone leosansan haber las diferencias con el mio y os voy robando tecnica con la vista ¬¬

Nos volveremos a ver con mas problemas  :xD

Un saludo



En línea

Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: [C] Problema con ejercicio
« Respuesta #21 en: 26 Febrero 2014, 11:35 am »

buenísimo dmacias, como otra indicación te dejo link a la wiki sobre la rutina switch-case:

  -> http://es.wikipedia.org/wiki/Switch_case
 
en donde te dará un panorama más amplio de la correcta implementación de la sentencia break, el mismo se utiliza para evitar la ejecucción sucesiva de las siguientes opciones; por lo cual y por convención al dejar la opción "default" al final, puedes evitar la misma.

eso puede llevarte a buscar un listado de las funciones de la biblioteca ansi c para repasar su sintaxis, diferentes modos de empleo y si es posible, parámetros de entrada o si devuelven valores al ejecutarse. saludos!


En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: [C] Problema con ejercicio
« Respuesta #22 en: 26 Febrero 2014, 12:05 pm »

Me pongo a ello, buscare unos cuantos ejercicios mas usando switch para ganar soltura  ;-)  ;-)
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [C] Problema con ejercicio
« Respuesta #23 en: 26 Febrero 2014, 17:25 pm »

Me pongo a ello, buscare unos cuantos ejercicios mas usando switch para ganar soltura  ;-)  ;-)

Y al mismo tiempo ejecuta el código anterior e introduce una letra en lugar de un número y ¡¡¡OHHHhhhh....!!!!, sorpresa, el  programa se mete en un bucle.

Eso se debe a no haber validado o comprobado que lo que se introduce es un número entero o cualquier otra cosa.

Aquí estaremos para lo que necesites  ;).


¡¡¡¡ Saluditos! ..... !!!!


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [C] Problema con ejercicio
« Respuesta #24 en: 27 Febrero 2014, 15:37 pm »

No creo que sea buena idea incitar a la gente que está empezando a programar a usar bucles sin condición de los que se saldrá mediante breaks, no es una buena práctica.

Yo te animo a que intentes hacer un bucle con condición y te olvides del break.
Mas que una mala practica es una cuestión de estilos.

Una opción es utilizar un bucle con una salida al medio con la ventaja del mínimo de expresiones:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int num;
  7.   int rv;
  8.   int ch;
  9.  
  10.   while (1){
  11.      printf("Introduce un numero (1 .. 9): ");
  12.      fflush(stdout);
  13.      if ((rv = scanf("%d", &num)) == EOF)
  14.         return EXIT_FAILURE;
  15.      else
  16.         while ((ch = getchar()) != EOF && ch != '\n')
  17.            ;
  18.  
  19.      if (rv == 1 && num >= 1 && num <= 9)
  20.         break;
  21.  
  22.      puts("Entrada no valida");
  23.   }
  24.  
  25.   printf("Numero: %d\n", num);
  26.  
  27.   return EXIT_SUCCESS;
  28. }

Otra es un bucle "while ..." o "do ... while" con expresiones repetidas:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int num;
  7.   int rv;
  8.   int ch;
  9.   int ok;
  10.  
  11.   do {
  12.      printf("Introduce un numero (1 .. 9): ");
  13.      fflush(stdout);
  14.      if ((rv = scanf("%d", &num)) == EOF)
  15.         return EXIT_FAILURE;
  16.      else
  17.         while ((ch = getchar()) != EOF && ch != '\n')
  18.            ;
  19.  
  20.      ok = rv == 1 && num >= 1 && num <= 9;
  21.      if (!ok)
  22.         puts("Entrada no valida");
  23.   }while (!ok);
  24.  
  25.   printf("Numero: %d\n", num);
  26.  
  27.   return EXIT_SUCCESS;
  28. }

Una tercera es colocar toda la operación (en este caso lectura) en una función, mas o menos así:
Código
  1. while ((rv = fn(...)) == 0){
  2.   /* Entrada no valida o fuera de rango */
  3. }
  4. if (rv == EOF){
  5.   /* Error critico */
  6. }
  7.  
  8. /* ... (OK) */

----

P.D: Juraito, juraito que el código está bien indentado, pero no sé que pasa últimamente que al ponerlo en las Code se "desparrama".
Eso se debe a que en tu editor de texto estas indentando el código fuente con tabuladores en vez de espacios.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: [C] Problema con ejercicio
« Respuesta #25 en: 27 Febrero 2014, 15:42 pm »

Vaya, no entiendo ni la mitad de las cosas de esos codigos  :o supongo que conforme vaya avanzando en mis estudios ire viendo todas esas opciones.

De todos modos gracias por poner esas alternativas
En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ problema ] ejercicio 100
Ejercicios
_mÙëK§™_ 2 4,986 Último mensaje 1 Diciembre 2007, 01:31 am
por Iñaki Viggers
Problema ejercicio
Programación C/C++
overxfl0w13 4 3,342 Último mensaje 30 Junio 2012, 11:43 am
por overxfl0w13
problema con un ejercicio « 1 2 »
Programación C/C++
espdante 12 6,799 Último mensaje 20 Agosto 2012, 13:52 pm
por avesudra
Problema con un ejercicio
Programación C/C++
gabyricardo92 6 3,340 Último mensaje 10 Julio 2013, 15:52 pm
por eferion
Problema con ejercicio de php
Desarrollo Web
T0p1t0 1 2,526 Último mensaje 19 Julio 2013, 15:39 pm
por T0p1t0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines