Guest User

Untitled

a guest
Nov 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.60 KB | None | 0 0
  1. program parcial
  2. type
  3.  persona = record               cadena: string [50] sub: 1..15 sub2: 1..5
  4.   nom : cadena
  5.   dni : integer
  6.   VE : vECcd
  7.   DIML : INTEGER;
  8.   end;
  9.  
  10.   VecC: array [sub] of integer
  11.   VecV: array [1..250] of persona
  12.   VecCD: array [Sub2] of sub
  13.  
  14.  var
  15.  VP: VecV;
  16.  VC: VecC;
  17.  dimlP: integer;
  18. begin
  19.  
  20. dimlp:= 0
  21. CargarVector (VP,dimlp);
  22. Inicializar (VC);
  23. ProcesarPersonas (VP, dimlp, VC);
  24. CalcMax (vC);
  25. end;
  26.  
  27. procedure CargarVector (var VP: vecV; var dimlp: integer);
  28. var
  29.  p: persona;
  30.  begin
  31.   Leer (P);
  32.   while (p.dni <> 0) do begin
  33.    dimlp:= dimlp+1;
  34.    VP[dimlp]:= p;
  35.    Leer (P);
  36.    end;
  37. end;
  38.  
  39. procedure Inicializar (var VC: VecC);
  40. var
  41. i: integer;
  42. begin
  43.  for i:= 1 to 15 do
  44.   VC[i]:= 0;
  45. end;
  46.  
  47. procedure Leer (var P:persona);
  48. var
  49.  cod: integer;
  50. begin
  51. read (p.dni);
  52.  if (p.dni <> 0) then begin
  53.   read (p.nom);
  54.   p.diml:= 0;
  55.   read (cod);
  56.   while (cod <> 0) do begin
  57.    p.diml := p.diml+1
  58.    p.VE[p.diml]:= cod;
  59.    read (cod);
  60.    end;
  61.   end;
  62. end;
  63.  
  64. procedure ProcesarPersonas (VP: VecV; dimlp: integer; var VC: VecC);
  65. var
  66. i,cantp: integer;
  67. begin
  68.  cantp:= 0;
  69.  for i:= 1 to dimlp do
  70.   ContarPersona (VP[i], VC, cantp);
  71.  writeln (Cantp);
  72. end;
  73.  
  74. procedure ContarPersona (p: persona; var VC: VecC; var cantp: integer);
  75. var
  76. i: integer;
  77. begin
  78.  for i:= 1 to p.diml do
  79.   VC[p.VE[i]]:= VC [p.VE[i]]+1;
  80.  if (p.diml >= 3) then
  81.   cantp:= cantp+1;
  82. end;
  83.  
  84. procedure CalcMax (VC: VecC);
  85. var
  86. i, max, EspMax: integer;
  87. begin
  88. max:= -1;
  89.  for i:= 1 to 15 do begin
  90.   if (VC[i] > max) then begin
  91.    max:= VC[i];
  92.    EspMax:= i;
  93.   end;
  94.  end;
  95. writeln (EspMax);
  96. end;
Add Comment
Please, Sign In to add comment