Pascal/Turbo Pascal - matrizi en pascal

   
Vista:
Imágen de perfil de geordin

matrizi en pascal

Publicado por geordin (4 intervenciones) el 11/06/2015 00:40:52
hola realmente me gustaría que me ayudaran con un programa de una matriz en turbo pascal n*n osea una matriz cuadrada es una multiplicación pero que el resultado los imprima en forma de matriz (ordenadamente)
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

matrizi en pascal

Publicado por ramon (2072 intervenciones) el 12/06/2015 00:37:10
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
{Espero esto sirva}
 
 program matriz4;
 uses
    crt;
 
  const
     n = 4;
 
  type
     lamatriz = array[1..n,1..n] of integer;
 
  var
    matri : lamatriz;
    resul : lamatriz;
    x, y : integer;
 
   procedure llena_matriz(var ms : lamatriz);
   var
     t, l : integer;
     m : integer;
    begin
       randomize;
     for t := 1 to n do
       for l := 1 to n do
       begin
         m := random((n * n)) + 1;
         ms[l,t] := m;
       end;
    for m := 1 to n do
    begin
      for t := 1 to n do
      begin
         write('  ',ms[t,m]);
      end;
        writeln;
    end;
  end;
 
 
 procedure multiplica_matriz(al, bl : lamatriz; var cl : lamatriz);
  var
    p, i, j, k : integer;
  begin
   for i := 1 to n do
    for j := 1 to n do
     begin
      p := 0;
      for k := 1 to n do
       p := p + al[i,k] * bl[k,j];
      cl[i,j] := p;
     end;
  end;
 
  procedure ordena(var mm : lamatriz);
  var
     pa, p1, p2, res : integer;
     xx : array[1..(n * n)] of integer;
    begin
       res := 1;
       for p1 := 1 to n  do
         for p2 := 1 to n do
         begin
         xx[res] := mm[p2,p1];
         res := res + 1;
         end;
       for p1 := 1 to (n * n) - 1 do
         for p2 := p1 + 1 to (n * n) do
         if xx[p1] > xx[p2] then
         begin
            pa := xx[p1];
            xx[p1] := xx[p2];
            xx[p2] := pa;
         end;
         p1 := 1;
         p2 := 1;
         for pa := 1 to (n * n) do
         begin
            mm[p1,p2] := xx[pa];
            p1 := p1 + 1;
            if p1 > n then
            begin
              p2 := p2 + 1;
              p1 := 1;
            end;
         end;
    end;
 
 
  begin
     clrscr;
     writeln;
     writeln('  **** Matriz ****');
     llena_matriz(matri);
     writeln;
     writeln('   /// Multiplicada ///');
     multiplica_matriz(matri, matri, resul);
     ordena(resul);
     for y := 1 to n do
     begin
        for x := 1 to n do
        begin
          write('   ',resul[x,y]);
        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
Imágen de perfil de geordi

matrizi en pascal

Publicado por geordi (4 intervenciones) el 12/06/2015 18:33:17
gracias ramon realemente te lo agradezco
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