Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] método de codificación de números naturales

Estas en el tema de método de codificación de números naturales en el foro de C/C++ en Foros del Web. Hola, en la universidad me asignaro 10 ejercicios en C y los he hecho todos a exepcion de uno. Un método de codificación de números ...
  #1 (permalink)  
Antiguo 25/01/2015, 16:15
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Pregunta método de codificación de números naturales

Hola, en la universidad me asignaro 10 ejercicios en C y los he hecho todos a exepcion de uno.
  • Un método de codificación de números naturales es el que sigue: a. Dado un número natural se construye su codificación tomando cada uno de los dígitos del número y se sustituye cada dígito por 2 dígitos que corresponden al cociente y al resto de la división entera del (dig)2/10. Ejemplo: El número natural 243, el número codificado 041609 Escriba un algoritmo que dado un número natural devuelva su codificación. Nota: Trabajar solo con números de 3 cifras.

Realmente no entiendo nada. Como trabajare los numeros por separado?, que hare con el primer digito, no entiendo nada.

Espero puedan ayudarme, gracias de antemano.
  #2 (permalink)  
Antiguo 25/01/2015, 16:36
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: método de codificación de números naturales

Hay un error en la definición que podría corregirse con algo así:
"... y se sustituye cada dígito por los dos que resulten como cociente y resto de la división entera entre el cuadrado del dígito y 10."

Ahora el ejemplo tiene sentido:
Para el primer dígito (2):
2^2 = 4
4/10 (cociente entero) = 0
4%10 (resto) = 4
queda el par: 04

Y sigues con los otros.

Última edición por lareto; 25/01/2015 a las 16:41
  #3 (permalink)  
Antiguo 25/01/2015, 17:16
inazense
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: método de codificación de números naturales

Para trabajar con los números por separado puedes ir separandolos a traves de calcular divisiones y restos.

Es decir:
243/100 = 2 (primer digito con el que trabajar)
243%100 = 43 (resto)

Y vuelves a repetir pasos, en este caso:
43/10= 4 (segundo digito para trabajar
43%10 = 3 (tercer dígito para trabajar)

Y ya podrías operar con los números por separado.
Con el primer dígito sería:
2*2=4
4/10=0 (primer dígito a guardar)
4%10=4 (segundo dígito a guardar)

Esa es la idea del ejercicio. Ahora tendrás que montarte la estructura para que realice los pasos
  #4 (permalink)  
Antiguo 25/01/2015, 19:40
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: método de codificación de números naturales

Cita:
Iniciado por inazense Ver Mensaje
Para trabajar con los números por separado puedes ir separandolos a traves de calcular divisiones y restos.

Es decir:
243/100 = 2 (primer digito con el que trabajar)
243%100 = 43 (resto)

Y vuelves a repetir pasos, en este caso:
43/10= 4 (segundo digito para trabajar
43%10 = 3 (tercer dígito para trabajar)

Y ya podrías operar con los números por separado.
Con el primer dígito sería:
2*2=4
4/10=0 (primer dígito a guardar)
4%10=4 (segundo dígito a guardar)

Esa es la idea del ejercicio. Ahora tendrás que montarte la estructura para que realice los pasos
Hola, hasta hay entiendo.
Pero, en el ejercico muestra que el numero codificado de 243 es 041609 .
De donde salen 1609?, no entiendo esta parte.

Podrian ayudarme si no es mucha molestia?, gracias.
  #5 (permalink)  
Antiguo 25/01/2015, 20:43
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: método de codificación de números naturales

Hola,
He logrado resolver el ejercicio, tuve que pensar mucho.
Muchisimas gracias a los dos por su ayuda.

Aquí el resultado:
  #6 (permalink)  
Antiguo 25/01/2015, 20:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: método de codificación de números naturales

Ya veo, parece que tu problema es sencillo, simplemente no sabes matemáticas. Pero no te preocupes esto se arregla leyendo y haciendo ejercicio.

Vamos a tomar un curso rápido:

¿Que pasa si divido un numero n entre 10?

Hagamos algunos ejemplos
n = 20 -> n / 10 = 2
n = 33 -> n / 10 = 3.3
n = 987 -> n / 10 = 98.7

Ahora que pasa si usamos división entera (o si lo quieres ver de otra forma nos quedamos con solo la parte entera).

n = 20 -> n / 10 = 2
n = 33 -> n / 10 = 3
n = 987 -> n / 10 = 98

Wow es como desplazar el numero a derecha.
Si lo hago otra vez con el 98 que quedo en el ultimo ejemplo.
Código:
987 -> 
    987 / 10 = 98 -> 
        98 / 10 = 9 -> 
            9 / 10 = 0
Excelente todos los números en algún punto llegan a 0.

Ahora vamos a analiza otra propiedad interesante
Cualquier numero n % 10 nos da su ultimo dígito (si lo lees de izquierda a derecha). Algunos ejemplos
n = 20 -> n % 10 = 0
n = 33 -> n % 10 = 3
n = 987 -> n % 10 = 7

Con esta información ahora puedes iterar sobre los dígitos de cualquier numero.
Ejemplo:
Código:
n = 987 ->
    n % 10 -> *7*
    n / 10 -> 98
    n = 98
        n % 10 -> *8*
        n / 10 -> 9
        n = 9
            n % 10 -> *9*
            n / 10 -> 0
            n = 0
Buena suerte con tu problema.

Etiquetas: codificacion, numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.