Autor Tema: Desplazamiento de una Matriz  (Leído 7794 veces)

Hyde

  • Sin experiencia
  • *
  • Mensajes: 16
    • Ver Perfil
Desplazamiento de una Matriz
« en: 12 de Junio 2014, 04:10 »
Hola
bueno, ahora estoy practicando bastante con vectores y matrices, he logrado hacer una gran variedad de cosas y he logrado mejorar mi lógica, pero conseguí un enunciado que me pareció algo curioso y difícil, me gustaría que me ayudaran a ver como realizar este programa, y como no, que me dieran una breve explicación (lo básico de matrices lo sé) si no es mucha molestia, ya que me encantaría entenderlo.

Bueno dejo el "pequeño" enunciado:

Dada una matriz G de tamaño MxM con M par; desarrollar una función que permita seleccionar(mediante desplazamientos del cursor y al presionar una tecla) un numero cualquiera de la matriz, que contenga ocho valores adyacentes, sustituir el numero seleccionado por* (numero central), y luego utilizando las flechas direccionales, poder mover esa sub-matriz a través de la matriz original, de forma tal que todos los números se desplacen y sustituyan de forma temporal los números por los que va pasando. Al presionar otra tecla se debe eliminar la selección y la matriz debe volver a su estado original, y permitir realizar una nueva selección.


espero su ayuda.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Desplazamiento de una Matriz
« Respuesta #1 en: 12 de Junio 2014, 10:52 »
Si te digo la verdad he leído el enunciado y no lo entiendo bien. Necesitaría un ejemplo para poder entender cosas a las que se refiere, por ejemplo habla de un número central, pero que yo sepa una matriz no tiene un número central, no sé bien a qué se refiere.


Hyde

  • Sin experiencia
  • *
  • Mensajes: 16
    • Ver Perfil
Re:Desplazamiento de una Matriz
« Respuesta #2 en: 13 de Junio 2014, 02:02 »
Si te digo la verdad he leído el enunciado y no lo entiendo bien. Necesitaría un ejemplo para poder entender cosas a las que se refiere, por ejemplo habla de un número central, pero que yo sepa una matriz no tiene un número central, no sé bien a qué se refiere.

bueno te daré una pequeña interpretación de lo que yo pienso:

por ejemplo una matriz 6 x 6 con numeros a la zar, donde tendrá dentro de ella una pequeña matriz 3x3 (8 valores adyacentes) y el centro sera la posición numero 1 1 de la matriz 3x3 donde se pondrá el asterisco ( que será el cursor), bueno al mover tal asterisco, que se vaya con todo y matriz(Izq, derec, arib, abaj), y que los valores que "tapó" queden algo así como en un vector temporal, para cuando quitemos la matriz los números aparezcan de nuevo, dejo algunas imágenes que hice para explicarme mejor:

por ejemplo supongamos que la posición inicial es esta:

cuando la corremos a la derecha:

cuando la corremos para abajo:

y así sucesivamente.

bueno y me gustaría llevar eso a código!.

Dejo claro que esta es mi interpretación personal, no se si mi lógica estará bien.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Desplazamiento de una Matriz
« Respuesta #3 en: 13 de Junio 2014, 18:49 »
Te recomiendo que vayas resolviendo partes del programa poco a poco.

Una parte será el reconocimiento de las teclas del teclado. Tienes que comprobar que puedes reconocer las flechas y teclas que te hagan falta. Esto lo puedes hacer con esto.

Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>
/* Press Esc to quit */
#define ESC 27
int main() {
    int ch;
    while ((ch=getch()) != ESC) {
        printf("%d",ch);
       /*
        while (kbhit()) {
            printf(" %d",getch());
        }
        */
        if (ch==72) {printf("Detectada pulsacion flecha arriba");}
        printf("\n");
    }
    printf("ESC %d\n",ch);
    return 0;
}

Otra parte será definir la matriz y representarla en pantalla. Puedes probar a crear la matriz como matriz de números enteros aleatorios comprendidos entre 1 y 100 y redibujar la matriz cada vez que se pulse enter.

Posteriormente pasarías al desarrollo de la lógica del programa...


 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".