Necesito una ayuda con este ejercicio
Publicado por Ileana (2 intervenciones) el 05/04/2021 18:50:38
Escriba un programa que le haga elegir un numero al usuario entre 0 y 31. Su programa debe hacerle sucesivas preguntas y adivinar ese número. Para lograr el objetivo implemente el procedimiento que se indica a continuación:
La idea de solución esta basada en el sistema de numeración binario y consiste en ir "prendiendo" los bits que corresponden al numero. Entonces por cada uno de los 5 bits(1), comenzando desde el mas significativo (mayor valor), usted deberá averiguar si ese bit debe estar prendido o no.
Para saber si el bit mas significativo esta prendido, usted deberá preguntar si el número es <16. De ser mayor, ese bit deberá estar prendido (2). Para averiguar si el segundo bit debe estar prendido, deberá preguntar si el numero que eligió el usuario es < que 16+8 (si antes respondió No) o si es < 8 si antes respondió Si. Y así sucesivamente para los restantes bits. Considere ir llevando una variable en donde ira construyendo el numero. Es decir cada vez que el usuario responda No, deberá incrementar esa variable en la potencia de dos correspondiente.
(1) Para representar 32 valores (0..31) se necesitan al menos 5 bits
(2) Ya que con los restantes bits a lo sumo puedo formar el numero 15.
Si podrian ayudarme con este ejercicio, darme alguna idea. Gracias!
La idea de solución esta basada en el sistema de numeración binario y consiste en ir "prendiendo" los bits que corresponden al numero. Entonces por cada uno de los 5 bits(1), comenzando desde el mas significativo (mayor valor), usted deberá averiguar si ese bit debe estar prendido o no.
Para saber si el bit mas significativo esta prendido, usted deberá preguntar si el número es <16. De ser mayor, ese bit deberá estar prendido (2). Para averiguar si el segundo bit debe estar prendido, deberá preguntar si el numero que eligió el usuario es < que 16+8 (si antes respondió No) o si es < 8 si antes respondió Si. Y así sucesivamente para los restantes bits. Considere ir llevando una variable en donde ira construyendo el numero. Es decir cada vez que el usuario responda No, deberá incrementar esa variable en la potencia de dos correspondiente.
(1) Para representar 32 valores (0..31) se necesitan al menos 5 bits
(2) Ya que con los restantes bits a lo sumo puedo formar el numero 15.
Si podrian ayudarme con este ejercicio, darme alguna idea. Gracias!
Valora esta pregunta


0