Advertisement
EstebanT

Untitled

Nov 6th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.15 KB | None | 0 0
  1. //Un teatro venderá entradas para la obra “Romeo y Julieta”, que tendrá lugar en su única sala con 30
  2. //filas y 50 butacas por fila.
  3. //El teatro dispone una estructura donde para cada fila (1..30) almacena el costo de la entrada. Además
  4. //debe manejar otra estructura que represente la sala, de forma de saber que butaca está ocupada o
  5. //disponible y el DNI de la persona que la reservó (en caso que esté ocupada).
  6. //Se pide:
  7. //a) Leer desde teclado la información de las personas desean comprar una entrada. A cada una se
  8. //solicita: su DNI, el numero de fila (1.30) y el numero de butaca que quiere (1..50). La lectura
  9. //finaliza cuando llega la persona con DNI 0. A cada persona se le debe informar si la localidad
  10. //solicitada está libre o no, y en caso de estar libre debe ocuparla y almacenar el DNI de la
  11. //persona.
  12. //Luego de realizar el punto a) calcular e informar
  13. //b) El número de la fila con menos espectadores.
  14. //c) El monto total recaudado por el teatro.
  15. //d) El DNI del espectador más adulto (se considera la persona más adulta aquella que tenga
  16. //menor número de DNI).
  17.  
  18. program PEPS.Ej4
  19.  
  20. type
  21.  
  22. filas = 1..30;
  23. columnas = 1..50;
  24.  
  25. matriz = array [filas,columnas] of integer;
  26. vector = array [filas] of integer;
  27.  
  28. personas = record
  29.           dni:integer;
  30.           f:filas;
  31.           c:columnas;
  32.           end;
  33.  
  34.  
  35. var m:matriz; p:personas; v:vector;
  36.  
  37. procedure leer (var p:personas )
  38. begin
  39.     with personas do begon
  40.     read(dni);
  41.     read(f);
  42.     read(c);
  43.     end;
  44. end;
  45.  
  46. procedure inicializarM (var m:matriz ) /////////////////// INICIALIZAR LA MATRIZ CON -1 ///////////////////
  47. var i,j:integer;
  48. begin
  49.     for i:= 1 to 30 do
  50.         for i:= 1 to 50 do
  51.             v[i,j]:= 0;
  52. end;
  53.  
  54. function chequearB (m:matriz, p:persona): boolean;
  55. begin
  56.     if (m[f,c] = 0 ) then
  57.         chequearB:= true;
  58.     else chequearB:= false;
  59. end;
  60.  
  61. procedure cargarM ( var m:matriz; p:persona )
  62. begin
  63.     m[p.f,p.c]:= p.dni;
  64. end;
  65.  
  66. procedure minimo (v:vector)
  67. var i,min, minF:integer;
  68. begin
  69.     min:= 9999999
  70.     for i:= 1 to 50 do begin
  71.         if ( v[i] < min ) then
  72.             min:= v[i];
  73.             minF:= i;
  74.     end;
  75. write ('La fila con menos espectadores, es la fila: ',minF);
  76. end;
  77.  
  78. procedure incisoB (m:matriz; var v:vector)
  79. var i,j,k:integer
  80. begin
  81.     for i:=1 to 30 do
  82.         cont:=0;
  83.         for j:= 1 to 50 do begin
  84.             if ( v[j] <> 0 ) then
  85.                 cont:=cont +1;
  86.             v[j]:= cont;
  87.             end;
  88. minimo(v);
  89.  
  90. procedure incisoC ( m:matriz )
  91. var i,j:integer;
  92. begin
  93.     for i:=1 to 30 do begin
  94.         for j:= 1 to 50 do
  95.             if ( m[i,j] <> 0 ) then
  96.                 cont:= cont + 1;
  97.     end;
  98. write ('El total recaudado es de: ', cont*precioDeLaEntrada);  // en ningun momento se especifica el precio de la entrada.
  99. end;
  100.  
  101. procedure incisoD (m:matriz)
  102. var i,j,min:integer;
  103. begin
  104. min:=99999999;
  105.     for i:=1 to 30 do begin
  106.         for j:= 1 to 50 do begin
  107.             if (p.dni <> 0) then
  108.                 if (p.dni < min) then
  109.                     min:= p.dni;
  110.     end;
  111. write ('El espectador mas adulto es el dni: ', min);
  112. end;
  113.  
  114. procedure procesar ( p:persona; m:matriz )
  115. begin
  116.     leer(p);
  117.     while ( p.dni <> 0 ) do begin
  118.         if (chequear(m,p)) then begin
  119.             cargarM(m,p);
  120.             end;
  121.         leer(p);
  122.     end;
  123. end;
  124.  
  125. begin
  126. inicializarM(m);
  127. procesar(p,m);
  128. incisoB();
  129. incisoC();
  130. incisoD();
  131. end;
  132. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement