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

Como Crear Decodificador de mensajes

Estas en el tema de Como Crear Decodificador de mensajes en el foro de C/C++ en Foros del Web. Hola a todos Les pido ayuda en mi tarea, bueno, les cuento: Debo hacer un decodificador y también un codificador que me permita probar el ...
  #1 (permalink)  
Antiguo 27/07/2008, 13:57
Avatar de eliseo007  
Fecha de Ingreso: junio-2006
Mensajes: 13
Antigüedad: 17 años, 11 meses
Puntos: 0
Como Crear Decodificador de mensajes

Hola a todos

Les pido ayuda en mi tarea, bueno, les cuento:
Debo hacer un decodificador y también un codificador que me permita probar el decodificor.
pero mi duda es que el mensaje debe quedar en una matriz, la cual debe ser llenada con las caracteres de forma espiral.
A continuación les dejo la tarea..
http://i101.photobucket.com/albums/m65/eliseo007/lastscan.jpg
http://i101.photobucket.com/albums/m65/eliseo007/lastscan2.jpg
mi duda es como llegar esta matriz de forma espiral?

Desde ya muchas gracias

Tambien recibo idea de como hacer el programa
  #2 (permalink)  
Antiguo 27/07/2008, 18:02
 
Fecha de Ingreso: julio-2008
Mensajes: 38
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Como Crear Decodificador de mensajes

¿Algo así?

Código:
[1][1][1][1][1]...
[1]
[1] char mat[1]
[1][1][1][1][1]
  #3 (permalink)  
Antiguo 27/07/2008, 18:27
Avatar de eliseo007  
Fecha de Ingreso: junio-2006
Mensajes: 13
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Como Crear Decodificador de mensajes

algo asi
1__ 2__ 3 4 5
16 17 18 20 6
15 _____ 21 7
14 ___ 23 22 8
13 12 11 10 9

comenzando con los bordes hacia dentro

Espero su respuesta!
  #4 (permalink)  
Antiguo 27/07/2008, 23:54
 
Fecha de Ingreso: junio-2008
Mensajes: 63
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Como Crear Decodificador de mensajes

Podrías recorrer la cuadricula como si se tratase de una persona caminando sobre un plano, usando una variable indicadora de dirección para dirigirla, digamos que la variable de dirección se llama dir, y que sus valores serán 0, 1, 2 y 3 donde 0=derecha, 1=abajo, 2=izquierda, 3=arriba, y la cadena que deseas introducir en la matriz es "ABCDEFGHIJKLMNOP" y la matriz tiene un tamaño de 4 x 4:

Primero inicias la matriz a ceros y comienzas desde el punto x=0 y=0 recorriendo la matriz hacia la derecha ( dir=0 )

las normas serían:
si se llega a algún margen de la matriz se cambia de dirección.
si se llega a un punto donde el siguiente elemento de la matriz es distinto de cero se cambia de dirección.
los cambios de dirección se harán de la siguiente forma:
si dir==0 y se llega a un tope dir=1
si dir==1 y se llega a un tope dir=2
si dir==2 y se llega a un tope dir=3
si dir==3 y se llega a un tope dir=0

Primer paso recorriendo hacia la derecha sumando a x (dir==0):
vas colocando los caracteres A B C D uno por uno:
ABCD Se ha llegado al margen derecho de la matriz se cambia dir a 1
0000
0000
0000
Segundo paso ahora recorriendo hacia abajo sumando a y (dir==1):
se coloca E F G:
ABCD
000E
000F
000G Se ha llegado al margen inferior de la matriz se cambia dir a 2
Tercer paso recorriendo hacia la izquierda restando a x (dir==2):
se coloca H I J:
ABCD
000E
000F
JIHG Se ha llegado al margen izquierdo de la matriz se cambia dir a 3
Cuarto paso recorriendo hacia arriba restando a y (dir==3)
se coloca K L:
ABCD
L00E En este punto el siguiente es A distinto de 0 se cambia dir a 0
K00F
JIHG
Finalmente quedaría:
ABCD
LMNE
KPOF
JIHG

Me parece que esta forma es muy simple de aplicar, solo tendrás que usar un for, while, o lo que mejor te parezca, para recorrer la cadena de texto, un par de variables ( x y ) para moverte en la matriz, la variable de dirección, y algunos if para ir cambiando de dirección e ir recorriendo la matriz.
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 05:40.