Pascal/Turbo Pascal - Comparación mayor de columnas

 
Vista:

Comparación mayor de columnas

Publicado por Valy (1 intervención) el 27/11/2014 13:21:59
Buenas, tengo el siguiente programa en pascal y tengo la siguiente duda:
He conseguido calcular la suma de las columnas del array, pero necesito hacer una comparación con cada columna para verificar cual es la mayor ( la columna que más números contenga), lo he intentado pero no me sale bien en la iteración.(En el código de abajo sólo está la suma, necesitaría si alguien podría ayudarme con las condiciones en el FOR)
Gracias, un saludo.

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
CONST
 
NFilas = 8;
NColumnas = 10;
 
 
TYPE
 
RangoFilas = 1..NFilas;
RangoColumnas = 1..NColumnas;
Tabla = array [RangoFilas, RangoColumnas] of integer;
 
 
VAR
mayor : Integer;
sm : Integer;
Titulaciones : Tabla = (
 
	(3,5,2,0,0,0,1,1,1,1),
	(5,7,1,0,0,0,1,1,1,1),
	(9,8,0,0,0,0,1,1,1,1),
	(1,2,1,0,0,0,0,0,0,0),
	(2,3,4,2,0,0,0,0,0,0),
	(6,4,9,1,0,0,0,0,0,0),
	(4,1,12,7,0,0,0,0,0,0),
	(0,0,3,5,0,0,0,0,0,0)
 
	);
i : RangoFilas;
j : RangoColumnas;
 
 
 
 
BEGIN
 
(* la columna más "grande"
* las filas con más números
* media filas-columnas *)
 
 
 
for j:= 1 to NColumnas do
	begin
	sm:=0;
		for i:= 1 to NFilas do
		sm:= sm + Titulaciones[i,j];
                       writeln ('La suma de la columna ',j, ' es: ', sm);
	end
 
 
END.
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

Comparación mayor de columnas

Publicado por ramon (2158 intervenciones) el 29/11/2014 00:34:54
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
{A ver si esto vale de hayuda}
 
program columnas;
uses
   crt;
  CONST
      NFilas = 8;
      NColumnas = 10;
 
 TYPE
     RangoFilas = 1..NFilas;
     RangoColumnas = 1..NColumnas;
     Tabla = array [RangoFilas, RangoColumnas] of integer;
 
  const
     Titulaciones : Tabla = (
   (3,5,2,0,0,0,1,1,1,1),
   (5,7,1,0,0,0,1,1,1,1),
   (9,8,0,0,0,0,1,1,1,1),
   (1,2,1,0,0,0,0,0,0,0),
   (2,3,4,2,0,0,0,0,0,0),
   (6,4,9,1,0,0,0,0,0,0),
   (4,1,12,7,0,0,0,0,0,0),
   (0,0,3,5,0,0,0,0,0,0));
 
 VAR
   t, f, mayor : Integer;
   coln, filn, sm : Integer;
   i : RangoFilas;
   j : RangoColumnas;
 
 
 BEGIN
 clrscr;
 for t := 1 to nfilas do
 begin
   write('    ');
   for f := 1 to ncolumnas do
   begin
   write('  ',titulaciones[t,f]);
   end;
   writeln;
 end;
 writeln;
(* la columna mas "grande" * las filas con mas numeros * media filas-columnas *)
for j := 1 to NColumnas do
begin
sm:=0;
 for i:= 1 to NFilas do
sm:= sm + Titulaciones[i,j];
writeln ('La suma de la columna ', j , ' es : ',sm);
end;
   mayor := 0;
   sm := 0;
    for t := 1 to NColumnas do
  begin
      for f := 1 to nfilas do
      begin
        if Titulaciones[f,t] <> 0 then
        sm := sm + Titulaciones[f,t];
      end;
     if mayor < sm then
     begin
     mayor := sm;
     coln := t;
     filn := f;
     end;
     sm := 0;
 end;
    writeln;
    writeln('  La Columna De Mayor Numero Es = ',coln,' = ',mayor);
  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