Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Pascal/Turbo Pascal - Movimiento Matriz Pascal

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:noc107 (1 intervención)
Fecha:07/12/2011 20:12:20
Hola, soy nuevo en el foro.
Les escribo para ver si me pueden ayudar con un problema en pascal del tipo de matrices..
Me mandan a recorrer una matriz en forma de zig zag espiral hacia el centro
y tambien en diagonal en ambos sentidos de antemano gracias
Responder Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:ramon (1438 intervenciones)
Fecha:14/12/2011 21:27:35
{Hay varias formas dime si esta te sirve}

program zigzag;
uses
crt;
type
mat = array[0..63] of integer;


var
matriz : mat;
one : array[0..7,0..7] of integer;
p, x, y : integer;

procedure zigzagmatriz(matri : mat);
var
posx, posy, ti : integer;
xc, yc, xx, yy : integer;
sal : boolean;
begin
ti := 0;
xc := 0;
yc := 0;
xx := xc;
yy := yc;
sal := false;
repeat
one[xx][yy] := matri[ti];
ti := ti + 1;
if ti > 63 then
sal := true;
case ti of
1,6,15,28,36,49,58,63 : xx := xx + 1;

2,7,8,9,16,17,18,19,20,29,30,31,32,33,34,35,44,45,46,47,
48,55,56,57,62 : begin
xx := xx - 1;
yy := yy + 1;
end;

3,10,21,43,54,61 : yy := yy + 1;

4,5,11,12,13,14,22,23,24,25,26,27,37,38,39,40,41,42,50,
51,52,53,59,60 : begin
xx := xx + 1;
yy := yy - 1;
end;
end;
until (sal = true) or (ti > 63);
gotoxy(40,1);write(' En zigzag ');
for xc := 0 to 7 do
for yc := 0 to 7 do
begin
gotoxy(40 + (xc * 3),(2 + (yc + 1)));write(' ',one[xc][yc]);
end;
end;

begin
clrscr;
for x := 0 to 63 do
matriz[x] := x + 1;
gotoxy(4,1);write(' Original ');
y := 0;
x := 1;
p := 1;
repeat
gotoxy(3 + x,2 + p);write(matriz[y]);
y := y + 1;
x := x + 3;
if x > 24 then
begin
x := 1;
p := p + 1;
end;
until y > 63;
zigzagmatriz(matriz);
readln;
end.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:leo (4 intervenciones)
Fecha:04/01/2012 03:55:21
Hola Ramon veo que le diste una solucion al de arriba, yo estoy haciendo un proyecto pero me tranque en la parte de hacer una matriz que se rellene con colores aleatoria, sera que me puedes hechar una manito, Gracias
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:ramon (1438 intervenciones)
Fecha:05/01/2012 21:38:10
{Esto te crea una matriz de 15 colores distintos esta como veras en modo texto si es en
gráficos tendrías que darle los colores que quisieras o que tuviera el modo gráfico}

program colores;
uses
crt;

var
p, nume : integer;
num : array[0..15] of integer;

procedure asignanum;
var
i, t : integer;
si : byte;
begin
randomize;
i := 1;
repeat
nume := random(33);
si := 0;
t := 1;
repeat
if (num[t] = nume) or (nume > 15) then
begin
si := 1;
end;
t := t + 1;
until (t > 15) or (si = 1);
if si = 0 then
begin
num[i] := nume;
i := i + 1;
end;
until i > 15;
for i := 1 to 15 do
begin
textcolor(num[i]);
write(num[i],' ');
textcolor(15);
end;
end;


begin
clrscr;
asignanum;
readln;
end.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:leo (4 intervenciones)
Fecha:05/01/2012 21:54:55
Hola Ramon gracias por tu respuesta, disculpa la molestia. Sabes que he intentado pasar la matriz a modo grafico pero solo me sale la pantalla en negro y despues me sale la pantalla en modo texto, yo intento hacer una matriz de cuadros, es decir, que el usuario meta 5x5 columnas y filas y que se coloquen en cuadro y se pongan aleatoria los colores en esos cuadros, pero no lo he podido, tengo la parte de que se crea los cuadros pero no lo toma en el modo grafico, Tienes algun correo o algo? Disculpa la molestia
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:ramon (1438 intervenciones)
Fecha:06/01/2012 11:45:29
[Perdona pero solo respondo aqui te comento en modo grafico seria de otra forma primero
define una matriz de color luego ejecuta esto con los valores de la matriz,}

program colores;
uses
crt, graph;
const
paleta : FillPatternType = ($ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff);
var
h, x, y, p, nume : integer;
num : array[0..15] of integer;
driver, modo : integer;


procedure asignanum;
var
i, t : integer;
si : byte;
begin
randomize;
i := 1;
repeat
nume := random(33);
si := 0;
t := 1;
repeat
if (num[t] = nume) or (nume > 15) then
begin
si := 1;
end;
t := t + 1;
until (t > 15) or (si = 1);
if si = 0 then
begin
num[i] := nume;
i := i + 1;
end;
until i > 15;
end;


begin
clrscr;
asignanum;
driver := detect;
initgraph(driver, modo,'c:\tp\bgi');
if graphresult <> 0 then
halt;
x := 10;
y := 10;
for h := 1 to 15 do
begin
setfillpattern(paleta,num[h]);
bar(x,y,x + 20,y + 20);
x := x + 24;
if x > 500 then
begin
y := y + 24;
x := 10;
end;
end;
readln;
closegraph;
end.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Movimiento Matriz Pascal
Autor:leo (4 intervenciones)
Fecha:21/01/2012 21:57:34
Hola Ramon gracias por la ayuda, estoy haciendo un proyecto de un juego, pero me tranque en la parte de comer hacer que me funciones las flechas en movimientos, es decir, el juego va subiendo con ciertas condicienones entonces como hago para que me lea las teclas de movimientos? Muchas gracias
Comentar Subir