Pascal/Turbo Pascal - Elemento mayor en una matriz de orden n x m

 
Vista:
sin imagen de perfil

Elemento mayor en una matriz de orden n x m

Publicado por Erick (6 intervenciones) el 28/07/2014 00:01:04
Podrian ayudarme con este ejercicio por favor?
El ejercicio dice asi:
Dado un arreglo bidimensional de orden n x m, escriba un programa que determine:

a) El elemento mayor de cada columna y cada fila del arreglo, así como la posición de estos elementos.
b) De la primera columna del arreglo, obtenga el elemento mayor en valor absoluto e intercambia la fila donde encontró el elemento por la primera fila
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

Elemento mayor en una matriz de orden n x m

Publicado por ramon (39 intervenciones) el 29/07/2014 13:15:33
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
{Esto servirá}
 
program elematriz;
 uses
    crt;
   const
      n = 5;
      m = 5;
   type
     arreglo = array[1..n,1..m] of integer;
 
 
   var
     matarre : arreglo;
     k, p, posx, posy : integer;
 
 
  function existe(co, nu : integer; muv : array of integer) : boolean;
  var
    dr : integer;
  begin
     existe := false;
   for dr := 0 to co - 1 do
   begin
   if muv[dr] = nu then
   begin
   existe := true;
   break;
   end;
  end;
 end;
 
 
  procedure rellenarreglo;
  var
    va, cont, nd : integer;
    tempo : array[0..(n * m) - 1] of integer;
  begin
     randomize;
     for va := 0 to (n * m) - 1 do
     tempo[va] := 0;
     va := 0;
     nd := 0;
     cont := 1;
    repeat
      va := random((n * m) + 5) + 1;
      if existe(nd,va,tempo) = false then
      begin
         tempo[nd] := va;
         nd := nd + 1;
         va := 0;
      end;
      cont := cont + 1;
    until (cont > (n * m) * 4) or (nd > (n * m));
    va := 1;
    nd := 0;
    cont := 1;
    repeat
       matarre[cont,va] := tempo[nd];
       nd := nd + 1;
       cont := cont + 1;
       if cont > m then
       begin
          va := va + 1;
          cont := 1;
       end;
    until va > n;
  end;
 
  procedure mayorvalor;
  var
    xv, yv, ten, x, y : integer;
  begin
     writeln('   Mayor de cada fila');
     writeln;
     for x := 1 to m do
     begin
       ten := 0;
       for y := 1 to n do
       begin
          if matarre[y,x] > ten then
          begin
          ten := matarre[y,x];
          xv := x;
          yv := y;
          end;
       end;
         writeln('   Mallor ',ten,'   Posicion = ',xv,' y ',yv);
     end;
     writeln;
     writeln('   Mayor de cada culumna');
     writeln;
     for y := 1 to m do
     begin
       ten := 0;
       for x := 1 to n do
       begin
          if matarre[y,x] > ten then
          begin
          ten := matarre[y,x];
          xv := x;
          yv := y;
          end;
       end;
         writeln('   Mallor ',ten,'   Posicion = ',yv,' y ',xv);
     end;
  end;
 
  procedure intercabio;
  var
    yd, xd, ten, xv, yv : integer;
    can : array[1..n] of integer;
  begin
     for yd := 1 to 1 do
     begin
       ten := 0;
       for xd := 1 to n do
       begin
          if matarre[yd,xd] > ten then
          begin
          ten := matarre[yd,xd];
          xv := xd;
          yv := yd;
          end;
       end;
     end;
         if xv > 1 then
         begin
            for yd := 1 to n do
            begin
               can[yd] := matarre[yd,xv];
               matarre[yd,xv] := matarre[yd,1];
               matarre[yd,1] := can[yd];
            end;
            writeln('  Mayor es ',ten,' En ',yv,' Y ',xv);
         end
     else
       Writeln('   Encontrado En Linea 1');
  end;
 
 
 
  begin
      rellenarreglo;
      clrscr;
      writeln;
      for k := 1 to n do
      begin
        write('   ');
        for p := 1 to m do
        begin
           write('  ',matarre[p,k]);
        end;
          writeln;
      end;
      writeln;
      mayorvalor;
      writeln;
      writeln('  Pulse Una Tecla');
      readkey;
      clrscr;
      writeln('  Matriz De Inicio');
      writeln;
      for k := 1 to n do
      begin
        write('   ');
        for p := 1 to m do
        begin
           write('  ',matarre[p,k]);
        end;
          writeln;
      end;
      writeln;
      intercabio;
      writeln;
      writeln('   Matriz Intercambiada');
      writeln;
      for k := 1 to n do
      begin
        write('   ');
        for p := 1 to m do
        begin
           write('  ',matarre[p,k]);
        end;
          writeln;
      end;
      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
1
Comentar
sin imagen de perfil

Elemento mayor en una matriz de orden n x m

Publicado por Erick (6 intervenciones) el 30/07/2014 03:15:37
me sirvió de mucho tu ayuda... 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
sin imagen de perfil

Elemento mayor en una matriz de orden n x m

Publicado por Erick Calero (6 intervenciones) el 30/07/2014 15:58:39
Fijate que intenté hacer correr el codigo que esta arriba y no se pudo, sale un mensaje:

exited with
exitcode = 201

alguna ayuda con esto?
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

Elemento mayor en una matriz de orden n x m

Publicado por ramon (2158 intervenciones) el 30/07/2014 23:48:48
{Mira corrija esto
until (cont > (n * m) * 4) or (nd > (n * m)); por esto}

until (cont > (n * m) * 4) or (nd > (n * m) - 1);
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