Muestra las veces que aparece un valor en una matriz

¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.

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
{-Victor De la Rocha}
{-Algoritmia@groups.msn.com}
{-www.myalgorithm.com}
{PROGRAMA 6: Muesta las veces que se repite un valor}
uses crt;
const
 max=100;
type
 matriz=array[1..max,1..max] of integer; vector=array[1..max] of integer;
var
 valor,veces:integer;
 filas,cols,cont1,cont2,cont3:integer;
 limite,t1,t2:integer; arreglo:matriz;
 temp:vector;
begin
 randomize;
 CLrScr; Write('Filas: ');Readln(filas);
 Write('Columnas: ');Readln(cols);
 for cont1:=1 to filas do
  begin
   for cont2:=1 to cols do    begin
     arreglo[cont1,cont2]:=random(100);
     writeln('Matriz[',cont1,'][',cont2,'] = ',arreglo[cont1,cont2]);
    end;
  end;  {introdusco los valores en un vector, para ordenarlos}
 writeln;
 limite:=filas*cols;
 cont3:=0;
 for cont1:=1 to filas do  begin
   for cont2:=1 to cols do
    begin
     cont3:=cont3+1;
     temp[cont3]:=arreglo[cont1,cont2];    end;
  end;
 {ordeno el vector}
 for cont1:=(filas*cols) downto 1 do
  begin   for cont2:=1 to cont1 do
    begin
     if temp[cont2]>temp[cont1] then
      begin
       t1:=temp[cont1];       t2:=temp[cont2];
       temp[cont1]:=t2;
       temp[cont2]:=t1;
      end;
    end;  end;
  {Regreso los valores a la matriz}
  cont3:=0;
  for cont1:=1 to filas do
   begin    for cont2:=1 to cols do
     begin
      cont3:=cont3+1;
      arreglo[cont1,cont2]:=temp[cont3];
     end;   end;
  {Pido los valor a buscar en la matriz}
  veces:=0;
  write('Valor a verificar: ');Readln(valor);
  for cont1:=1 to filas do   begin
    for cont2:=1 to cols do
     begin
      if arreglo[cont1,cont2]=valor then
       begin        veces:=veces+1;
       end;{if}
     end;{cols}
   end;{filas}
  write('Veces: ',veces); Readkey;
end.{programa}

Filas: 6
Columnas: 5

Matriz[1][1] = 65
Matriz[1][2] = 90
Matriz[1][3] = 18
Matriz[1][4] = 45
Matriz[1][5] = 18
Matriz[2][1] = 57
Matriz[2][2] = 34
Matriz[2][3] = 6
Matriz[2][4] = 78
Matriz[2][5] = 84
Matriz[3][1] = 86
Matriz[3][2] = 63
Matriz[3][3] = 91
Matriz[3][4] = 80
Matriz[3][5] = 96
Matriz[4][1] = 0
Matriz[4][2] = 52
Matriz[4][3] = 4
Matriz[4][4] = 34
Matriz[4][5] = 53
Matriz[5][1] = 11
Matriz[5][2] = 68
Matriz[5][3] = 24
Matriz[5][4] = 3
Matriz[5][5] = 64
Matriz[6][1] = 28
Matriz[6][2] = 38
Matriz[6][3] = 89
Matriz[6][4] = 56
Matriz[6][5] = 95

valor: 95
El se repite: 1

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.