Tema destacado: Recuperar cuenta de Google, GMail, Youtube
Autor
|
Tema: Saber si un número es par (Leído 5,315 veces)
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Claro, otro ejemplo con el q se me ocurrio fue con 5. num = 5 num2 = 5 / 2 pero esto no va a dar 2,5 sino q va a dar 2
y si 5 es distinto a 2 * 2 q es 4, entonces es porq 5 es impar
Pero con el numero a ver.. 84.. num = 84 num2 = 84 / 2 q es 42 entonces si q dejara el 42 ya q es entero y entra en el int
y como 42 * 2 es 84 entonces es par
|
|
|
|
|
En línea
|
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Bueno, he aquí el problema... Hacedlo en pseudocodigo. :p
|
|
|
|
|
En línea
|
 ---
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
No se usar el pseudocodigo, no he ido a la universidad todavia pero vs sabes programacion q te esta pasando? xD lee el codigo en voz alta y lo anotas a lo q dices xD
|
|
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 255
|
Usando PSeInt, así queda el código de XXX-ZERO-XXX. Proceso ParOImpar Leer n; Si n = TRUNC(n / 2) * 2 Entonces Escribir "El numero es par" Sino Escribir "El numero es impar" FinSiFinProcesoTuve que usar la función TRUNC(), la cual devuelve la parte entera de la expresión entre paréntesis dado que no hay ningún operador para hacer la división entera  Un saludo
|
|
|
|
|
En línea
|
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
A eso es lo que me refiero, no puedo usar funciones. Pero creo que pseudocodigo la división que toma la parte entera es con el operador \. Así que ahora también me funciona 
|
|
|
|
|
En línea
|
 ---
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
PEro si un int / int da otro int y los int no tienen decimales, por eso lo pense asi yo
edit: con eso q dices shell root convenceras mas al profesor je
|
|
|
|
|
En línea
|
|
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
De todas formas, el pseudocódigo es por así decirlo, un lenguaje intermedio entre el lenguaje habitual (informal) y otro formal (lenguaje de programación).
Trabajar en pseudocódigo no implica que no puedas dar un tipo a las variables, o utilizar funciones, simplemente que lo que tu estás escribiendo, no está en el ámbito de formalidad de un lenguaje concreto.
(O eso tengo entendido yo)
Si tu utilizas un 5 en pseudocódigo, como diferencias si es un entero, o en cambio es un número con decimales (5.) o el caracter '5' o la cadena "5"?
|
|
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 780
4 Esquinas
|
HOLA!!! Ejemplo bien simple en VB6: Private Sub Form_Load() For x = 0 To 100 If (x And 1) Then Debug.Print "no_es_par " & x Else Debug.Print "si_es_par " & x End If Next End Sub Y pseudo codigo con eso que decis de comprobar si es entera la division: Si Entero(Numero / 2) = Numero / 2 Entonces Imprimir "Es Par" (creo que te referias a eso) GRACIAS POR LEER!!!
|
|
|
|
« Última modificación: 11 Marzo 2011, 17:36 por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas" 79137913 *Shadow Scouts Team* Resumenes Cs.Economicas
|
|
|
Valkyr
Desconectado
Mensajes: 632
Divide y vencerás
|
Me resultó curioso este ejercicio y encontré otra forma para hacerlo (No se me ocurría  ). Se sabe que todo número positivo elevado a cualquier número entero da un resultado positivo. En cambio, si el número es negativo, el resultado dará positivo en caso de que el exponente sea par, y negativo si el exponente es impar. Entonces podríamos hacer lo siguiente: n = int(raw_input("Ingrese un numero: ")) if (-1) ** n > 0: print "Es par" else: print "Es impar"Un saludo  La solución que decía criska es valida, ¿porque no la usas?, además no usas ni bucles, ni mod, ni aritmética a nivel de bit...nada de nada, solo haces una potencia. En pseudocódigo quedaría algo así (cada profesor, cada alumno, y cada persona puede usar un pseudocódigo distinto, yo te lo pongo a mi forma): PROGRAMA ENTERO numero; INICIO_PROGRAMA LEER(numero); SI (-1)^numero > 0 ENTONCES ESCRIBIR("El número es par"); SI_NO ESCRIBIR("El número es impar"); FIN_SI FIN_PROGRAMA LEER(numero) es como si pidiese el número al usuario, y ESCRIBIR() es como si escribiese en pantalla. Espero que te haya servido, saludos.
|
|
|
|
|
En línea
|
|
|
|
mauriciodelos
Desconectado
Mensajes: 24
/*Nada*/
|
Las respuestas que te dieron son muy buenas, pero yo me sumo a la idea de lo mas simple y entendible. INICIO_PROGRAMAentero NUMERO ingresar(NUMERO) si (NUMERO dividido 2 multiplicado por 2 es igual a NUMERO) entonces escribir( es par) si_no escribir (es impar) FIN_PROGRAMA------------------------------ //Si al número impar lo dividís por 2, te va a dar un resultado con coma flotante, lo único que tenés que hacer es declarar el NUMERO como entero, para que cuando lo vuelvas a multiplicar, lo hagas solamente por la parte entera.------------------------------ Ni siquiera tenés que usar números con coma flotante, ni mod, ni bucles ni nada, definís todo dentro del if. Igualmente, elegí la que realmente comprendas, la que después sepas explicar y aplicar. 
|
|
|
|
« Última modificación: 13 Marzo 2011, 07:43 por mauriciodelos »
|
En línea
|
El fanatismo es la máxima estupidez humana.
|
|
|
|
|