Intercambio de elementos en una Matriz
Publicado por Francisco (1 intervención) el 18/06/2014 22:08:08
Tengo un procedimiento que en base a la las letras A (Arriba), B(Abajo), D(Derecha) e I(izquierda), me cambia de lugar los valores de una matriz, mi duda es como pregunto para que si pongo otra letra distinta a esas 4 me diga que tengo que ingresar una letra correcta.
El codigo es el siguiente:
El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Procedure MoverFichas(Var Tablero:Matriz);
Var
numf,numc,m,i,j,maxm:integer;
direccion,aux:char;
begin
numf:=0;
numc:=0;
direccion:= ' ';
maxm:=20;
write('l');
read(direccion);
begin
For m:=1 to MaxMovimientos do
begin
Write('Ingrese la fila que desea seleccionar:');
Readln(numf);
Write('Ingrese la columna que desea seleccionar:');
Readln(numc);
Write('En que direccion desea mover el elemento:');
readln(direccion);
If (direccion= 'A') then
begin
If (numf <> 1) then
begin
aux:= Tablero[numf,numc];
Tablero[numf,numc]:= Tablero[(numf - 1),numc];
Tablero[(numf - 1),numc]:= aux;
MaxM:= (MaxM - 1);
writeln('Movimientos Restantes:', maxm);
writeln();
For i:=1 to maxfil do
begin
For j:=1 to maxcol do
begin
write(tablero[i,j]);
write(' ');
end;
writeln();
writeln();
end;
end
else
write('El movimiento no se puede realizar');
end
else
If (direccion= 'B') then
begin
If (numf <> 2) then
begin
aux:= Tablero[numf,numc];
Tablero[numf,numc]:= Tablero[(numf + 1),numc];
Tablero[(numf + 1),numc]:= aux;
MaxM:= (MaxM - 1);
writeln('Movimientos Restantes:', maxm);
writeln();
For i:=1 to maxfil do
begin
For j:=1 to maxcol do
begin
write(tablero[i,j]);
write(' ');
end;
writeln();
writeln();
end;
end
else
write('El movimiento no se puede realizar');
end
else
If (direccion= 'I') then
begin
If (numf <> 3) then
begin
aux:= Tablero[numf,numc];
Tablero[numf,numc]:= Tablero[numf,(numc - 1)];
Tablero[numf,(numc - 1)]:= aux;
MaxM:= (MaxM - 1);
writeln('Movimientos Restantes:', maxm);
writeln();
For i:=1 to maxfil do
begin
For j:=1 to maxcol do
begin
write(tablero[i,j]);
write(' ');
end;
writeln();
writeln();
end;
end
else
write('El movimiento no se puede realizar');
end
else
If (direccion= 'D') then
begin
If (numf <> 4) then
begin
aux:= Tablero[numf,numc];
Tablero[numf,numc]:= Tablero[numf,(numc + 1)];
Tablero[numf,(numc + 1)]:= aux;
MaxM:= (MaxM - 1);
writeln('Movimientos Restantes:', maxm);
writeln();
For i:=1 to maxfil do
begin
For j:=1 to maxcol do
begin
write(tablero[i,j]);
write(' ');
end;
writeln();
writeln();
end;
end
else
write('El movimiento no se puede realizar');
end
end;
end
end;
Valora esta pregunta


0