Advertisement
Guest User

n0 te Perd0n0

a guest
Dec 17th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.88 KB | None | 0 0
  1. program untitled;
  2.  
  3. uses crt;
  4. CONST
  5.     MIN_FIL = 1;
  6.     MAX_FIL = 3;
  7.     MIN_COL = 1;
  8.     MAX_COL = 5;
  9.  
  10. TYPE
  11.     tMatriz = array[MIN_FIL..MAX_FIL,MIN_COL..MAX_COL] of integer;
  12.  
  13. procedure CargarMatriz(var Matriz: tMatriz);
  14. var
  15.     i, j, Num: integer;
  16. begin
  17.     for i:= MIN_FIL to MAX_FIL do
  18.         for j:= MIN_COL to MAX_COL do Begin
  19.             Write('Ingrese un numero en ',i,j,': ');
  20.             Readln(Num);
  21.             Matriz[i,j]:= Num;
  22.             ClrScr;
  23.         end;
  24. end;
  25.  
  26. procedure ImprimirMatriz(Matriz: tMatriz);
  27. var
  28.     i,j: integer;
  29. begin
  30.     for i:= MIN_FIL to MAX_FIL do Begin
  31.         for j:= MIN_COL to MAX_COL do
  32.             Write('|',Matriz[i,j],'|');
  33.         Writeln;
  34.     end;   
  35. end;
  36.  
  37. Function Posicion(Matriz: tMatriz; Num,Fila: integer): integer;
  38. Var
  39.     j:integer;
  40. Begin  
  41.     j:=1;
  42.     While (j <= MAX_COL) And (Matriz[Fila,j] <> Num) do
  43.         j:= j+1;
  44.    
  45.     If (j > MAX_COL) then
  46.         Posicion:= -1
  47.     else
  48.         Posicion:= j;
  49. End;
  50.  
  51. Function Cantidad(Matriz: tMatriz; Num,Fila: integer) :integer;
  52. Var
  53.     j,Cant:integer;
  54. Begin
  55.     j:= Posicion(Matriz,Num,Fila);
  56.    
  57.     If (j <> -1) then Begin
  58.         Cant:=1;
  59.         While (j<=MAX_COL-1) And (Matriz[Fila,j] = Matriz[Fila,j+1]) do begin
  60.             j:=j+1;
  61.             Cant:=Cant+1;
  62.         end;
  63.         //Writeln(Cant);
  64.         Cantidad:=Cant;
  65.     end
  66.     else
  67.         Cantidad:= -1;
  68. End;
  69.  
  70. function FilaCambiar(Matriz: tMatriz; Num: integer): integer;
  71. var
  72.     i, FilaMayor,CantidadActual,CantidadMayor: integer;
  73. begin
  74.     CantidadMayor:= 0;
  75.     FilaMayor:= 0;
  76.    
  77.     for i:= MIN_FIL to MAX_FIL do Begin
  78.         CantidadActual:= Cantidad(Matriz,Num,i);
  79.             If CantidadActual > CantidadMayor then Begin
  80.                 CantidadMayor:= CantidadActual;
  81.                 FilaMayor:= i;
  82.             end;
  83.     end;
  84.    
  85.     FilaCambiar:= FilaMayor;
  86. end;
  87.  
  88. var
  89.     MatNum: tMatriz;
  90.     NumLoko: integer;
  91. BEGIN
  92.     CargarMatriz(MatNum);
  93.     Writeln('* Imprimo matriz *');
  94.     ImprimirMatriz(MatNum);
  95.    
  96.     Write('Ingrese num a buscar: ');
  97.     Readln(NumLoko);
  98.     Write('Fila a cambiar: ');
  99.     Writeln(FilaCambiar(MatNum,NumLoko));
  100.     readln;
  101. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement