Pascal/Turbo Pascal - ¿Como hago este programa Bidimencional con arreglos de orden n?

   
Vista:

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por Jonathan Antonio garay_wkf@hotmail.com (4 intervenciones) el 27/07/2012 17:06:38
Bueno de antemano quiero dar las gracias por atender mi pregunta y que usted este invirtiendo su tiempo en la misma…

MUCHAS GRACIAS.

Más que una pregunta es una ayuda la que yo necesito de usted

Soy estudiante de Ingeniería y en un curso de programación 1 (pascal) , me dejaron un problema que será evaluado y sinceramente no entiendo nada , sobre lo siguiente : (Arreglo bidimensional)

El ejercicio es el siguiente.

Dado un arreglo bidimensional de orden n, escriba un programa por cada inciso
a) Que lea el arreglo y que lo imprima en el orden dado.
b) Que imprima los elementos de la diagonal principal.
c) Que imprima los elementos que están por encima de la diagonal principal.
d) Que imprima los elementos que están por debajo de la diagonal principal
e) Que imprima los elementos que están por debajo y por encima de la diagonal principal


Nota: Aclaro que eso es todo lo que el problema dice y sinceramente no sé por dónde comenzar.
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por ramon (2072 intervenciones) el 28/07/2012 17:49:36
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
{A ver si esto te ayuda esta echo para un arreglo de 64 elementos o menos no para mas espero
 sirva }
 
program arreglos;
  uses
     crt;
   const
       n = 8;
       m = 8;
  type
     arreglo = array[1..n,1..m] of integer;
  var
    x, y, cuen : integer;
    tecla : char;
    matriz : arreglo;
    arrayzipzac : array[1..(n * m)] of integer;
 
   procedure rellenaarreglo;
   var
      z : integer;
   begin
       z := 1;
       for y := 1 to m do
        for x := 1 to n do
        begin
            matriz[x,y] := z;
            z := z + 1;
        end;
   end;
 
 procedure zipzac(dato : arreglo);
  var
     ti : integer;
     xx, yy : integer;
     sal : boolean;
  begin
     ti := 1;
     for yy := 1 to m do
       for xx := 1 to n  do
       begin
           arrayzipzac[ti] := dato[xx,yy];
           ti := ti + 1;
       end;
      gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(dato[xx,yy]);
       end;
     ti := 1;
     xx := 1;
     yy := 1;
     sal := false;
     x := 1;
     y := 1;
   repeat
   matriz[xx,yy] := arrayzipzac[ti];
  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;
   ti := ti + 1;
   until (sal = true) or (ti > (n * m) - 1);
   gotoxy(50,(m * 2) + 2);write('Arreglo En Zipzac');
   for y := 1 to m do
     for x := 1 to n do
     begin
         gotoxy(40 + (x * 4),(y * 2));write(matriz[x,y]);
     end;
  end;
 
 
  procedure presentaenelordendado;
  var
    x1, y1 : integer;
  begin
      gotoxy(4,2);write('En que orden [I] = izq/arriv/avaj  [D] ',
                   '= der/avaj/arriv  [Z] = zipzac');
      repeat
          tecla := upcase(readkey);
      until tecla in ['I','D','Z'];
      clrscr;
     case tecla of
   'I' : begin
            gotoxy(5,(m * 2) + 2);write('Arreglo izq/arriv/avaj');
            for y := 1 to n do
              for x := 1 to m do
              begin
                 gotoxy(x * 4, y * 2);write(matriz[x,y]);
              end;
         end;
   'D' : begin
            gotoxy(5,(m * 2) + 2);write('Arreglo der/avaj/arriv');
            y1 := 1;
            for y := m downto 1 do
            begin
              x1 := 1;
              for x := n downto 1 do
              begin
                 gotoxy(x1 * 4, y1 * 2);write(matriz[x,y]);
                 x1 := x1 + 1;
              end;
              y1 := y1 + 1;
         end;
       end;
    'Z' : begin
             zipzac(matriz);
          end;
    end;
  end;
 
  procedure presentadiagonalprincipal;
  var
    xx, yy : integer;
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := 1;
      for x := 1 to n do
      begin
      gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      y := y + 1;
      end;
      gotoxy(44,(m * 2) + 2);write('Arreglo Diagonal principal');
  end;
 
  procedure presentalosdearrivadeladiagonal;
  var
     xx, yy : integer;
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := 1;
     repeat
      for x := y + 1 to m do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y + 1;
      until y > n;
      gotoxy(40,(m * 2) + 2);write(' Los De Arriva De La Diagonal');
  end;
 
  procedure presentalosdeabajodeladiagonal;
  var
     xx, yy : integer;
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := n;
     repeat
      for x := y - 1 downto 1 do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y - 1;
      until y < 1;
      gotoxy(42,(m * 2) + 2);write('Los De Abajo De La Diagonal');
  end;
 
  procedure presentalosdearribayabajodeladiagonal;
  var
    xx, yy : integer;
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
       y := 1;
     repeat
      for x := y + 1 to m do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y + 1;
      until y > n;
      y := 1;
      for x := 1 to n do
      begin
      gotoxy(40 + (x * 4),y * 2);write(chr(92));
      y := y + 1;
      end;
      y := n;
     repeat
      for x := y - 1 downto 1 do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y - 1;
      until y < 1;
      gotoxy(40,(m * 2) + 2);write('Los De Arriba y Abajo De La Diagonal');
  end;
 
  procedure menugeneral;
  var
     tec : char;
     sal : boolean;
  begin
     sal := false;
    repeat
    clrscr;
    gotoxy(10,1);write('<<<<<< Menu General >>>>>>');
    gotoxy(10,2);write('--------------------------');
    gotoxy(10,4);write('  1 : Presenta En El Orden Dado');
    gotoxy(10,5);write('  2 : Cantenido Diagonal Principal');
    gotoxy(10,6);write('  3 : Contenido De Encima De Diagonal');
    gotoxy(10,7);write('  4 : Contenido De Abajo De Diagonal');
    gotoxy(10,8);write('  5 : Contenido De Abajo y Encima De Diagonal');
    gotoxy(10,9);write('  6 : Salir');
    gotoxy(10,11);write('**** Elija Opcion 1 a 6 ****');
    tec := readkey;
    if tec in[#49..#54] then
    begin
  case tec of
  #49 : begin clrscr; presentaenelordendado; readln; end;
  #50 : begin clrscr; presentadiagonalprincipal; readln; end;
  #51 : begin clrscr; presentalosdearrivadeladiagonal; readln; end;
  #52 : begin clrscr; presentalosdeabajodeladiagonal; readln; end;
  #53 : begin clrscr; presentalosdearribayabajodeladiagonal; readln; end;
  #54 : sal := true;
  end;
 end;
 until sal = true;
  end;
 
  begin
      clrscr;
      rellenaarreglo;
      menugeneral;
  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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por Jonathan Antonio garay_wkf@hotmail.com (4 intervenciones) el 28/07/2012 22:19:16
MUCHÍSIMAS GRACIAS MAN,
SE NOTA QUE COMPRENDES MUCHO DE ESTO , PERO YO NO
LO ESCRIBÍ CÓDIGO POR CÓDIGO EN TURBO PASCAL , PERO ME SALEN ERRORES TRAS ERRORES , POR MAS QUE LE DOY , PU CHICA LOS ERRORES NO DEJAN DE SALIR Y SINCERAMENTE ME ESTA MATANTAO , Y UNO QUE NO LO PUEDO CORREGIR ES EL SIGUIENTE ...
TE MANDARE UNA IMAGEN MAN PARA QUE TU MIRES Y SI PUEDES ME AYUDES http://img196.imageshack.us/img196/3237/errorcyw.png

ESE ENTRE OTROS ERRORES ME SALEN , COMO PODRÁS VER ES EN PASCAL , MUCHAS GRACIAS POR TU TIEMPO ,Y ME DICES SI ME PUEDES AYUDAR CON MAS ERRORES MAN...

ESTARÉ PENDIENTE DE TUS RESPUESTAS ...

GRACIAS MUCHAS GRACIAS
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por ramon (2072 intervenciones) el 29/07/2012 16:01:08
1
2
3
4
5
6
7
8
9
10
11
12
13
{Disculpa de la imagen que me pasas  observo lo siguiente.
    procedure rellenaarreglo;
   var
      z : integer;
   begin
       z := 1;
       for y := 1 to m do
        for x := 1 to n do
        begin
            matriz[x,y] := z;
            z := z + 1;
        end;
   end;    Falta este [end] por ello te muestra el error 113.

Creo que copiaste mal el programa puesto que en el si esta.
Esta probado en pascal 7 y en freepascal 2.6 y funciona sin problemas.
Revisa la copia.
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por ramon (2072 intervenciones) el 29/07/2012 16:07:35
Para copiarlo marca todo el programa y dale copiar luego pega lo en el bloc de notas,
lo guardas en tu directorio de pascal,
lo llamas con pascal pero ten en cuenta que la extensión es *.txt en vez de *.pas,
tendrás que cambiarlo es la llamada desde pascal o sea en la barra tendrás que
poner txt en vez de pas suerte.
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por Jonathan Antonio garay_wkf@hotmail.com (4 intervenciones) el 29/07/2012 17:48:40
Man muchas gracias , tal y como tu me escribiste , el error era mio , con tantas lineas de programación me confundí ,

YA LO ULTIMO MAN.
¿ Como hago para que ese programa sea de orden N?
te explico: que en un principio el programa le pregunte al usuario de cuantos números quiere su matriz y claro leer el valor ingresado y de este modo , correr el programa con el volumen que el usuario ingreso .Esto es tal y como dice el problema bueno eso es lo que yo interpreto cuando me pide un arreglo Bidimencional de orden N.

Ya que yo soy duro en esto y tu un MÁSTER , cuando me digas como , por favor escribemelo paso por paso para no arruinar tu programa que te quedo genial man .

por ultimo : que función hacen los #50,#51...#54 en especial el # , yo se que es el menú , pero esos números y numerales son nuevos para mi man ...

GRACIAS , MUCHAS GRACIAS POR EL TIEMPO QUE IMBERTIS EN LEER MIS PREGUNTAS Y RESPONDERME ...DIOS TE BENDIGA A TI Y A TODA TU FAMILIA. HERMANO , MUCHAS GRACIAS
ESTA WEB ES LO MÁXIMO...
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por Jonathan Antonio (4 intervenciones) el 29/07/2012 18:28:36
A se me olvidadaba man , ya para no seguir en lo mismo de la preguntadera ,

ME GUSTARÍA QUE ME DIJERES BREVE MENTE CADA UNA DE LAS FUNCIONES QUE JUEGAN LOS CÓDIGOS QUE PROGRAMASTE , NO SE SI ME EXPLICO ...

ESTO CON EL PROPÓSITO DE BUSCAR MAS INFORMACIÓN SOBRE EL MISMO Y ESTUDIARLO PARA POSTERIORMENTE DEFENDER EL PROGRAMA .

Y NO DAR PENA ALA HORA QUE ME PREGUNTEN PARA QUE SIRVE DETERMINADA FUNCIÓN ...

GRACIAS HERMANO
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

¿Como hago este programa Bidimencional con arreglos de orden n?

Publicado por ramon (2072 intervenciones) el 29/07/2012 20:17:22
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
[Como podrás ver te modifico un poco el anterior para que puedas entrar diferentes valores
 pero solo podrás entrar de 1x1 a 8x8 puesto que el procedimiento de zipzac no admite mayor
 valor de 8x8 pero si quieres puedes aumentarlo a lo que quieras modificando ese procedimiento
 a mas valores.
 Te daré un pequeño consejo dependiendo de loquee el profesor tiene enseñado si presentas
 esto tal como esta se puede mosquear un poquito.
 Lo mejor es que con esta guía lo pongas a tus conocimientos eso te asegurara una mejor    presentación y un mejor aprendizaje para ti.
El explicarte todo el programa llevaría muchas lineas de texto pero en esta misma sección
en [  Compilador de pascal 7.7  ] y tienen un pequeño curso  que te ayudara .}
 
    program arreglos;
  uses
     crt;
   const
       n : integer = 8;   {Valores maximos del Arreglo}
       m : integer = 8;
  type
     arreglo = array[1..8,1..8] of integer;
  var
    x, y, cuen : integer;
    tecla : char;
    matriz : arreglo;
    arrayzipzac : array[1..(8 * 8)] of integer; {array Para la presentacion
                                                 en zipzac}
   procedure rellenaarreglo;  {Ponemos Valores al arreglo segun n y m}
   var
      z : integer;
   begin
       z := 1;
       for y := 1 to m do
        for x := 1 to n do
        begin
            matriz[x,y] := z;
            z := z + 1;
        end;
   end;
 
 procedure zipzac(dato : arreglo); {Preparamos y presentamos el zipzac}
  var
     ti : integer;
     xx, yy : integer;
     sal : boolean;
  begin
     ti := 1;
     for yy := 1 to m do
       for xx := 1 to n  do
       begin
           arrayzipzac[ti] := dato[xx,yy];   {pasamos los datos al array}
           ti := ti + 1;
       end;
      gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(dato[xx,yy]);
       end;
     ti := 1;
     xx := 1;
     yy := 1;
     sal := false;
     x := 1;
     y := 1;
   repeat      {Realizamos el zipzac pasando los datos al arreglo}
   matriz[xx,yy] := arrayzipzac[ti];
  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;
   ti := ti + 1;
   until (sal = true) or (ti > (n * m) - 1);
   gotoxy(50,(m * 2) + 2);write('Arreglo En Zipzac');
   for y := 1 to m do
     for x := 1 to n do
     begin
         gotoxy(40 + (x * 4),(y * 2));write(matriz[x,y]);
     end;
  end;
 
 
  procedure presentaenelordendado; {Pedimos forma de las tres y presentamos}
  var
    x1, y1 : integer;
  begin
      gotoxy(4,2);write('En que orden [I] = izq/arriv/avaj  [D] ',
                   '= der/avaj/arriv  [Z] = zipzac');
      repeat
          tecla := upcase(readkey);
      until tecla in ['I','D','Z'];
      clrscr;
     case tecla of
   'I' : begin
            gotoxy(5,(m * 2) + 2);write('Arreglo izq/arriv/avaj');
            for y := 1 to n do
              for x := 1 to m do
              begin
                 gotoxy(x * 4, y * 2);write(matriz[x,y]);
              end;
         end;
   'D' : begin
            gotoxy(5,(m * 2) + 2);write('Arreglo der/avaj/arriv');
            y1 := 1;
            for y := m downto 1 do
            begin
              x1 := 1;
              for x := n downto 1 do
              begin
                 gotoxy(x1 * 4, y1 * 2);write(matriz[x,y]);
                 x1 := x1 + 1;
              end;
              y1 := y1 + 1;
         end;
       end;
    'Z' : begin
             zipzac(matriz);
          end;
    end;
  end;
 
  procedure presentadiagonalprincipal;  {Presentamos la diagonal principal}
  var
    xx, yy : integer;
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := 1;
      for x := 1 to n do
      begin
      gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      y := y + 1;
      end;
      gotoxy(44,(m * 2) + 2);write('Arreglo Diagonal principal');
  end;
 
  procedure presentalosdearrivadeladiagonal;
  var
     xx, yy : integer;           {presintamos los valores de arriva de
                                  la diagonal}
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := 1;
     repeat
      for x := y + 1 to m do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y + 1;
      until y > n;
      gotoxy(40,(m * 2) + 2);write(' Los De Arriva De La Diagonal');
  end;
 
  procedure presentalosdeabajodeladiagonal;
  var
     xx, yy : integer;         {presintamos los valores de abajo de
                                la diagonal}
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
      y := n;
     repeat
      for x := y - 1 downto 1 do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y - 1;
      until y < 1;
      gotoxy(42,(m * 2) + 2);write('Los De Abajo De La Diagonal');
  end;
 
  procedure presentalosdearribayabajodeladiagonal;
  var
    xx, yy : integer;     {presintamos los valores de arriva  y abajo de
                           la diagonal}
  begin
      for xx := 1 to n do
       for yy := 1 to m  do
       begin
          gotoxy(xx * 4,yy * 2);write(matriz[xx,yy]);
       end;
       gotoxy(12,(m * 2) + 2);write('Arreglo Orijinal');
       y := 1;
     repeat
      for x := y + 1 to m do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y + 1;
      until y > n;
      y := 1;
      for x := 1 to n do
      begin
      gotoxy(40 + (x * 4),y * 2);write(chr(92));
      y := y + 1;
      end;
      y := n;
     repeat
      for x := y - 1 downto 1 do
      begin
         gotoxy(40 + (x * 4),y * 2);write(matriz[x,y]);
      end;
         y := y - 1;
      until y < 1;
      gotoxy(40,(m * 2) + 2);write('Los De Arriba y Abajo De La Diagonal');
  end;
 
  procedure entradatamanomatriz;  {Entramos los valores de la matriz}
  var
    erro, nn, mm : integer;
    num : string[2];
    ted : char;
  begin
      clrscr;
      gotoxy(10,2);write('*** Entre Tama¤o De La Matriz Max [8x8] ***');
      gotoxy(10,3);write('<<< [ESC] Genera matriz 8x8 >>>');
      gotoxy(10,5);write('Valor De N = ');
      gotoxy(23,5);
    repeat
        ted := readkey;
    until ted in[#49..#56,#27];
    if ted <> #27 then
    begin
    num[1] := ted;
    num[0] := chr(1);
    val(num,nn,erro);
    gotoxy(10,6);write('Valor De M = ');
    gotoxy(23,6);
    repeat
        ted := readkey;
    until ted in[#49..#56,#27];
    if ted <> #27 then
    begin
    num[1] := ted;
    num[0] := chr(1);
    val(num,mm,erro);
    n := nn;
    m := mm;
   end;
  end;
 end;
 
  procedure menugeneral;  {El menu prindipal}
  var
     tec : char;
     sal : boolean;
  begin
     sal := false;
    repeat
    clrscr;
    gotoxy(10,1);write('<<<<<< Menu General >>>>>>');
    gotoxy(10,2);write('--------------------------');
    gotoxy(10,4);write('  1 : Presenta En El Orden Dado');
    gotoxy(10,5);write('  2 : Cantenido Diagonal Principal');
    gotoxy(10,6);write('  3 : Contenido De Encima De Diagonal');
    gotoxy(10,7);write('  4 : Contenido De Abajo De Diagonal');
    gotoxy(10,8);write('  5 : Contenido De Abajo y Encima De Diagonal');
    gotoxy(10,9);write('  6 : Salir');
    gotoxy(10,11);write('**** Elija Opcion 1 a 6 ****');
    tec := readkey;
    if tec in[#49..#54] then
    begin
  case tec of
  #49 : begin clrscr; presentaenelordendado; readln; end;
  #50 : begin clrscr; presentadiagonalprincipal; readln; end;
  #51 : begin clrscr; presentalosdearrivadeladiagonal; readln; end;
  #52 : begin clrscr; presentalosdeabajodeladiagonal; readln; end;
  #53 : begin clrscr; presentalosdearribayabajodeladiagonal; readln; end;
  #54 : sal := true;
  end;
 end;
 until sal = true;
  end;
 
  begin
      clrscr;
      entradatamanomatriz;  {Programa principal}
      rellenaarreglo;
      menugeneral;
  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