Pascal/Turbo Pascal - Ayuda arrays

 
Vista:

Ayuda arrays

Publicado por Juancito (20 intervenciones) el 17/07/2013 22:04:12
Alguien que me facilite un codigo para recorrer una matriz (array de 2 dimensiones) en forma diagonal en los dos sentidos: \ y / y si debe ser una matriz cuadrada (num filas = num columnas) o no ?
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

Ayuda arrays

Publicado por ramon (2158 intervenciones) el 17/07/2013 23:14:35
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
{Mira esto}
 
program diagonales;
 uses
    crt;
  const
      num = 10;
  type
  matriz = array[1..num,1..num] of integer;
 
  var
     matri : matriz;
     t, h, v : integer;
     modoorijen : integer;
 
   procedure rellenamatriz;
   var
     numeros : array[1..(num * num)] of integer;
     si : boolean;
  begin
      randomize;
      for t := 1 to (num * num) do
      begin
         si := true;
         h := 1;
         repeat
           si := true;
           v := random((num * num) + 2) + 1;
           for h := 1 to t do
           begin
           if numeros[h] = v then
           si := false
           end;
         until si = true;
         numeros[t] := v;
        end;
         v := 1;
         for h := 1 to num do
          for t := 1 to num do
         begin
          matri[t,h] := numeros[v];
          v := v + 1;
         end;
      end;
 
   procedure presentamatriz;
   begin
      writeln('          La Matriz Es ');
      writeln;
         for h := 1 to num do
         begin
           write('      ');
           for t := 1 to num do
           begin
              write('   ',matri[t,h]);
           end;
             writeln;
         end;
     end;
 
   procedure recorrediagonalizder;
   begin
     t := 1;
     h := 1;
     repeat
        gotoxy(4 + t,(num + 3) + h);write(matri[t,h]);
        t := t + 1;
        h := h + 1;
     until t > num;
   end;
 
   procedure recorrediagonalderiz;
   begin
      t := num;
      h := 1;
     repeat
       gotoxy(60 - h,(num + 3) + h);write(matri[t, h]);
       t := t - 1;
       h := h + 1;
   until t < 1;
   end;
 
 
   begin
      modoorijen := lastmode;
      textmode(C80 + Font8x8);
      clrscr;
      rellenamatriz;
      presentamatriz;
      recorrediagonalizder;
      recorrediagonalderiz;
      readkey;
      textmode(modoorijen);
   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