////

Iniciado por WOENX, 2 Abril 2011, 10:54 AM

0 Miembros y 1 Visitante están viendo este tema.

WOENX

////

Akai

Si ya has expresado tu el como hacerlo, ánimo, que simplemente te queda pasar de tu idea al algoritmo. Es decir, ya tienes expresado como irían cambiados los elementos y te falta pasarlo a código.

Piénsalo más. Intenta primero una solución más fácil para ti, usando por ejemplo dos matrices en vez de operar sobre la misma, y luego ya te lo organizarás para operar sobre la misma una vez lo tengas claro.

Veamos, si desplazas hacia la derecha, es decir, sentido de las agujas del reloj (miralo de esta forma, no hacia la derecha, que puede liar más), sabes que:

el elemento de la esquina inferior derecha, acabará en la esquina inferior izquierda.

el elemento de la esquina inferior izquierda, acabará en la esquina superior izquierda.

el elemento de la esquina superior izquierda, acabará en la esquina superior derecha.

y el elemento de la esquina superior derecha, acabará en la esquina inferior derecha.

O dicho de otra forma:
3,3 se va a 3,0
3,0 a 0,0
0,0 a 0,3
y 0,3 a 3,3

O también: Si un elemento se encuentra en la zona superior: en caso de encontrarse a la derecha, se va a la inferior. Si está a la izquierda, se a la derecha.

Si un elemento está en la zona inferior: en caso de encontrarse en la derecha, se va a la izquierda, y en caso de encontrarse en la izquierda, se va a la superior.

WOENX

#2
////

Akai

Aquí no se da código, y menos para algo que parece ser una tarea de clase. Aquí se resuelven dudas.

Si ya tienes la idea, qué te falta? Fíjate en que los que están en un cuadrante de la matriz se van a otro según lo que te he descrito en mi post anterior.

Cuadrante superior izquierdo: de (0,0),(0, tamaño/2) a (tamaño/2,0),(tamaño/2,tamaño/2).

Cuadrante superior derecho: de (0,tamaño/2),(0, tamaño) a (tamaño/2,tamaño/2),(tamaño/2,tamaño).

Cuadrante inferior izquierdo: de (0,tamaño/2 +1),(0, tamaño) a (tamaño/2 +1,tamaño/2 +1),(tamaño,tamaño/2).

Cuadrante inferior derecho: de (tamaño/2 +1,tamaño/2 +1),(tamaño, tamaño/2 +1) a (tamaño/2 +1,tamaño),(tamaño,tamaño).

Lo único que me queda decir, es que te lo dibujes y mires primero en papel, y que luego te hagas primero un programa que en vez de permutar (cambiar) elementos, los copie movidos en otra matriz.

WOENX

#4
////

Akai

Marchando link:

http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html

concretamente:

Reglas del subforo:
Este no es un subforo donde se soliciten tareas, sino un lugar donde resolver dudas.

WOENX

#6
////

Akai

Mi forma de resolver dudas cuando la duda no es sobre un fragmento de código que falla o sobre el que hay problemas / cuestiones, es ayudar a plantear el problema.

Vamos a ver, qué más necesitas después de explicarte paso a paso lo que hay que hacer en cada uno de los posts con los que te he respondido? Si ya lo sabes, cual es el problema?

Olvidate de lo que tengas hecho, empieza de 0 y replanteate de nuevo el problema, lee con atención lo que he puesto, que básicamente te he dicho donde poner cada número de la matriz.

¿Qué más necesitas después de eso?

WOENX

#8
////