Pascal/Turbo Pascal - Mover matriz izquierda

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Mover matriz izquierda

Publicado por Mateo (6 intervenciones) el 04/11/2016 16:14:58
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
PROCEDURE CargarMatriz (VAR m : TipoTablero);
VAR
i,j : INTEGER;
BEGIN
i:=1;
WHILE i<=N DO
BEGIN
 
WRITELN('<< Carga de datos >>');
WRITELN();
j:=1;
WHILE j<=N DO
BEGIN
WRITE('Ingrese valor: ');
READLN(m[i][j].exponente);
j:=j+1
END;
i:=i+1;
END;
WRITELN();
WRITE('<< Oprima cualquier tecla para continuar >>');
readln;
END;
 
PROCEDURE MostrarMatriz (VAR m : TipoTablero);
VAR
i,j : INTEGER;
BEGIN
 
WRITELN('<< Muestreo de datos >>');
WRITELN();
i:=1;
WHILE i<=N DO
BEGIN
j:=1;
WHILE j<=N DO
BEGIN
WRITE(m[i][j].exponente);
j:=j+1
END;
WRITELN();
i:=i+1;
END;
WRITELN();
WRITE('<< Oprima cualquier tecla para continuar >>');
readln;
END;


un procedimiento que me mueva la matriz, 1 casilla a la izquierda

ejemplo:
antes
1 . 3 3
1 6 3 2
1 3 6 6
1 2 3 3
despues
1 3 3 .
1 6 3 2
1 3 12 .
3 3 3 .
(puntos espacios vacios)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Mover matriz izquierda

Publicado por ramon (2158 intervenciones) el 06/11/2016 13:13:24
Entiendo que se trata de una matriz de 1..4,1..4 o sea 16 elementos por lo tanto tendremos
un desplazamiento a la izquierda según tu expones un poco raro no t matriz se desplazaria
así.

ejemplo:
antes
1 . 3 3
1 6 3 2
1 3 6 6
1 2 3 3
despues
.331
6321
3661
233

o seria así.

1331
6321
3661
233.

o se perdería el primer numero de cada uno

explica mejor el tema para poder ayudarte .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Mover matriz izquierda

Publicado por Mateo (6 intervenciones) el 06/11/2016 20:48:50
La primer columna de la izquierda queda en su lugar, se mueven las columnas 2 3 y 4 respectivamente hacia la izquierda.

12.4
5678
12.4
5678

1.4.
5678.
1.4.
5678

Cuando ya hay 4 numeros en la fila, no hay desplazamiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mover matriz izquierda

Publicado por ramon (2158 intervenciones) el 07/11/2016 00:02:40
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
program matrizmover;
uses
   crt;
 const
    n = 4;
 type
   regist = record
        exponente : char;
       end;
 
   tipotablero = array[1..n,1..n] of regist;
 
 var
   table : tipotablero;
 
 
 
PROCEDURE CargarMatriz (VAR m : TipoTablero);
VAR
i,j : INTEGER;
BEGIN
i:=1;
WHILE i<=N DO
BEGIN
 
WRITELN('<< Carga de datos >>');
WRITELN;
j:=1;
WHILE j<=N DO
BEGIN
WRITE('Ingrese valor: ');
READLN(m[i][j].exponente);
j:=j+1
END;
i:=i+1;
END;
WRITELN;
WRITE('<< Oprima cualquier tecla para continuar >>');
END;
 
PROCEDURE MostrarMatriz (VAR m : TipoTablero);
VAR
i,j : INTEGER;
BEGIN
 
WRITELN('<< Muestreo de datos >>');
WRITELN;
i:=1;
WHILE i<=N DO
BEGIN
j:=1;
WHILE j<=N DO
BEGIN
WRITE(m[i][j].exponente);
j:=j+1
END;
WRITELN;
i:=i+1;
END;
WRITELN;
WRITE('<< Oprima cualquier tecla para continuar >>');
END;
 
 
 procedure pasaizquierda(var m : tipotablero);
 var
   h, t, p, k : integer;
 begin
    t := 0;
    for p := 1 to n do
    begin
       for k := 1 to n do
       begin
       if m[p,k].exponente = '.' then
       begin
       m[p,k - 1].exponente := m[p,k].exponente;
       for h := k to n - 1 do
       m[p,h].exponente := m[p,h + 1].exponente;
       end;
      end;
       if m[p,h + 1].exponente = m[p,h].exponente then
       m[p,h + 1].exponente := '.';
    end;
 end;
 
   begin
      clrscr;
      CargarMatriz(table);
      MostrarMatriz(table);
      writeln;
      pasaizquierda(table);
      MostrarMatriz(table);
      readkey;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mover matriz izquierda

Publicado por mateo (1 intervención) el 07/11/2016 17:30:04
Runtime error 201 at $004019E8
$004019E8 PASAIZQUIERDA, line 161 of save.pas
$00401ABF main, line 181 of save.pas
$00408591
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar