Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 11:58:37
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: AYUDA: While 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: AYUDA: While  (Leído 980 veces)
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« en: ſeptiembre 21, 2006, 10:41:42 »

En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #1 en: ſeptiembre 21, 2006, 10:46:19 »

POr cierto. Le he puesto este nombre a este post porque supongo que el error estara en el while.


GRACIAS
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Micki Qwerty
Visitante
« Respuesta #2 en: ſeptiembre 21, 2006, 01:48:10 »

a ver.

if x mod 2 printf eso eso
else printf eso otro
En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #3 en: ſeptiembre 21, 2006, 01:57:58 »

En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Sasuk3
Visitante
« Respuesta #4 en: ſeptiembre 21, 2006, 02:09:33 »

En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #5 en: ſeptiembre 21, 2006, 02:31:43 »

Haber, no me estais entendiendo. la parte de averiguar si es par o impar no la he puesto todabia( tenia pensado algo con %). este trozo lo que hace es descartar los numeros negativos y los decimales, me entendeis?Huh


GRACIAS
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Micki Qwerty
Visitante
« Respuesta #6 en: ſeptiembre 21, 2006, 02:54:53 »

La funcion mod te da el numero x de entrada en modulo y
Si no sabes lo que es eso te dire que x mod 2 te dara el resto de la division entera x/2 el cual es 1 si x es impar y 0 en otro caso.
Mirate la funcion mod y pones la comprobacion en relaccion al error que te devuelva.
« Última modificación: ſeptiembre 21, 2006, 02:57:53 por /Migue » En línea
sowher
Habitual
*****
Desconectado Desconectado

Mensajes: 183


[ NuKE ]


Ver Perfil
« Respuesta #7 en: ſeptiembre 21, 2006, 03:44:58 »

Prueba asi:

 int main()
             {
                   int numero;
                   printf("Escriba un numero para saber si es par o impar: ");
                   scanf("%d", &numero);
                   fflush(stdin);
                   while (numero <= 0 || numero % 1 != 0 )
                   {
                                             clrscr();
                                             printf ("Ha escrito un numero no valido, escriba un numero natural: ");
                                             scanf("%d", &numero);
                                             fflush(stdin);
                  }           
                               
                               
                               
           return 0;
           }     

saludos!!
En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #8 en: ſeptiembre 22, 2006, 09:47:57 »

En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Sa2
MAMAN tu sera toujour presente dans mon esprit , ma tete et mon coeur
Habitual
*****
Desconectado Desconectado

Mensajes: 207


e Gatiho etha numiendo :) y yo sufriendo :'(

sados@el-hacker.org
Ver Perfil WWW
« Respuesta #9 en: ſeptiembre 22, 2006, 10:29:51 »

En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #10 en: ſeptiembre 22, 2006, 10:36:27 »

Gracias por resolverme esta duda.
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #11 en: ſeptiembre 22, 2006, 10:43:57 »

Hola. Tengo otro error!!!He cambia el int numero; por float numero; y bo me deja compilarlo, me da error donde el while y me dice:  invalid operands to binary %

Que hago mal???


GRACIAS
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Sa2
MAMAN tu sera toujour presente dans mon esprit , ma tete et mon coeur
Habitual
*****
Desconectado Desconectado

Mensajes: 207


e Gatiho etha numiendo :) y yo sufriendo :'(

sados@el-hacker.org
Ver Perfil WWW
« Respuesta #12 en: ſeptiembre 22, 2006, 11:34:49 »

es k el % no funciona de ese modo
man si kieres  k tu programa no funcione kon los tipo fraccionario

tienes k kontrolar el ingreso y eso no se hace kon  %

lo k necesitas es por ejemplo si alguien ingresa un
numero y tu kieres saber si es tipo float o int

como puse el ingreso komo float

entonces tomo el float y lo konvierto a int

es decir
 float 23.5 si lo konvierto a int seria 23

si resto ambos y el resultado me sale 0 kiere decir k es entero

dandole una vista rapida a las funciones k viene kon el c no he visto esa posiblilidad

nose si aya, pero si no la hay tienes k hacerla man

En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Kira & Eva :D
Habitual
*****
Desconectado Desconectado

Mensajes: 289


Senior Programmer


Ver Perfil Email
« Respuesta #13 en: ſeptiembre 22, 2006, 01:20:18 »

En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #14 en: ſeptiembre 22, 2006, 02:04:56 »

Hola. la verdad es que me estoy liando un poco. Llevo poco con este lenguaje y no se mucho. os agraderia mucho que me explicarais lo que tengo que hacer mas detalladamente( si poneis algun ejemplo mejor que mejor).

Muchas gracias
« Última modificación: ſeptiembre 23, 2006, 01:23:58 por guille221191 » En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
sowher
Habitual
*****
Desconectado Desconectado

Mensajes: 183


[ NuKE ]


Ver Perfil
« Respuesta #15 en: ſeptiembre 25, 2006, 04:44:44 »

para enterios es  %d  y para flotantes es %f...

Salduos!

PD: Lee un poco mas !!
En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #16 en: ſeptiembre 26, 2006, 08:03:13 »

Gracias, en cuanto pueda lo pruevo
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #17 en: ſeptiembre 30, 2006, 09:52:05 »

Hola. He tardado un poco porque he estado algo liado.He sustituido %d por %f y me error en el while, que falla?HuhHuh?


GRACIAS
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
Kira & Eva :D
Habitual
*****
Desconectado Desconectado

Mensajes: 289


Senior Programmer


Ver Perfil Email
« Respuesta #18 en: ſeptiembre 30, 2006, 05:15:45 »

En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #19 en: Octubre 01, 2006, 05:08:17 »

OK, muchas gracias:
#include <stdio.h>
#include <conio.h>



 int main()
             {
                   float numero;
                   printf("Escriba un numero para saber si es par o impar: ");
                   scanf("%d", &numero);
                   fflush(stdin);
                   while (numero <= 0 || numero % 1 != 0 )
                   {
                                             clrscr();
                                             printf ("Ha escrito un numero no valido, escriba un numero natural: ");
                                             scanf("%f", &numero);
                                             fflush(stdin);
                  }           

                     
                               
           return 0;
           }


Tened en cuenta( para las explicaciones) q llevo poco tiempo.


GRCIAS
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
arvin
Visitante
« Respuesta #20 en: Octubre 01, 2006, 06:35:47 »

En la pregunta generalmente esta la respuesta...


Tu codigo:


#include <stdio.h>
#include <conio.h>



 int main()
             {
                   float numero;
                   printf("Escriba un numero para saber si es par o impar: ");
                   scanf("%d", &numero);
                   fflush(stdin);
                   while (numero <= 0 || numero % 1 != 0 )
                   {
                                             clrscr();
                                             printf ("Ha escrito un numero no valido, escriba un numero natural: ");
                                             scanf("%f", &numero);
                                             fflush(stdin);
                  }           

                     
                               
           return 0;
           }



Para empezar en tu codigo estas tratando condiciones que en el compilador que usas no son validas, floating point illegal operation, esto es porque un flotante [0000000][0000000]  de 16 bits no es remarcable al hacer las operaciones en el emulador para 16 bits en OR, XOR, AND, NAND que derivan de una operacion invalida en el preprocesador del compilador en este caso al interprete en DOS.


Primera observacion:

Si hablas de numeros "NARTURALES" estos comprenden en este rango: [0..infinito) sin "decimales", a los numeros que comprenden en el mismo rango pero con "decimales" todos los que nos topamos con malos maestros en la primaria les conocenmos como numeros REALES.


Segunda observacion:

Acostumbra leer la ayuda del entorno de desarrollo primero, generalmente es una basura pero al menos te puede dar una idea general de por que pasan las cosas en el entorno, incluidos los horrores y errores que te arroja el compilador o el linker.

Este es el error:




Si presionas F1 en borland turbo c++ que es el que estas usando te muestra una descripcion rapida y mediocre de la causa del error o el warning:





No es necesario que uses un tipo float para una operacion con numeros "NATURALES", pero si deseas hacerlo asi, el error se corrige con un casting (cambio de tipo en caliente) sobre la operacion logica.

Tambien te he corregido el primer scanf que tenias %d  para un tipo flotante en el stream & de direccion asi como los parentesis para que la "expresion" quede en forma correcta.



#include <stdio.h>
#include <conio.h>



 int main()
             {
                   float numero;
                   printf("Escriba un numero para saber si es par o impar: ");
         scanf("%f", &numero);
         fflush(stdin);
         while (((int)numero <= 0) || ((int)numero % 1 != 0) )
         {
                    clrscr();
                    printf ("Ha escrito un numero no valido, escriba un numero natural: ");
                    scanf("%f", &numero);
                    fflush(stdin);
        }



      return 0;
      }




All th tha that's folks!!



un slaudo gente.
« Última modificación: Octubre 01, 2006, 06:37:59 por AzRaEL » En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #21 en: Octubre 01, 2006, 07:01:17 »

En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
arvin
Visitante
« Respuesta #22 en: Octubre 01, 2006, 07:03:00 »

Bueno, por las librerias que usas se me hacia "escolar" la cosa por eso pense que usabas el viejo tubo c de borland, si usas dev vas bien y es lo mismo en la explicacion...  solo que en dev.


saludos viejo, te recomiendo leer mas sobre tipos de datos..


Az
En línea
guille221191
Colaborador
*****
Desconectado Desconectado

Mensajes: 586


DIOS NO JUEGA A LOS DADOS- A. Einstein


Ver Perfil Email
« Respuesta #23 en: Octubre 01, 2006, 08:27:14 »

Hola, estoy leyendo y releyendo tu explicacion, pero no se como tengo que hecer el codigo
En línea

[flash width=400 height=200]http://usuarios.lycos.es/guille221191/firma.swf[/flash]
arvin
Visitante
« Respuesta #24 en: Octubre 01, 2006, 03:15:59 »

copy, paste and run!!


Ya me acorde por que te decia que usabas el clasico borland, tu codigo asi como esta usa el prototipo I/O estandard de borland: clrscr();   Le quitas esa linea (donde esta el clrscr)  y en dev te corre tal cual.


El codigo ya esta arreglado (quitandole el clrscr en el code) y no veo mayor ciencia en copiar el texto y pegarlo en tu entorno de desarrollo en dev. Realmente hasta aqui llego yo, no te voy a explicar como copiar el codigo que te he puesto en tu dev c....

En serio ponte a leer por favor los tutoriales y esfuerzate un poco mas, veras que es sencillo.



saludos
 




« Última modificación: Octubre 01, 2006, 03:22:30 por AzRaEL » En línea
Páginas: [1] 2 Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: AYUDA: While « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC