/* */

24 de agosto de 2007

Problema 1.7

.
Enunciado
Se tienen los siguientes datos que corresponden a cada uno de los partidos de una jugada de PRODE:

  • Número de Partido
  • Cantidad de Goles Local
  • Cantidad de Goles Visitante
Se pide hacer un programa que indique el porcentaje de resultados locales, visitantes y empates que la jugada de PRODE registró.


Análisis
Primero analicemos los datos. Tenemos los siguientes 3 datos por cada uno de los 13 partidos que componen la jugada de PRODE:
  • Número de Partido (nroPartido)
  • Cantidad de Goles Locales (gLocal)
  • Cantidad de Goles Visitante (gVisitante)
Es decir, tenemos que procesar 13 partidos y por cada uno determinar si el resultado fue "local", "empate" o "visitante".

Dentro de un ciclo for leemos los tres datos que representan cada partido: nroPartido, gLocal, gVisitante.

Para calcular los porcentajes necesitaremos 3 contadores. Uno por cada porcentaje que nos piden calcular (conLoc, contVis y contEmp) ya que (por ejemplo) si de los 13 partidos 5 resultaron "empate" entonces el porcentaje de empates lo calcularemos como 5*100/13 es decir: cantidad de empates * 100 / cantidad de partidos.

Por cada partido preguntamos cual fue el resultado para saber que contador incrementar. Si gLocal es mayor que gVisitante entonces el resultado de ese partido fue "local" por lo tanto incrementamos el contador contLoc. Si gLocal es igual a gVisitante entonces el resultado fue "empate". Si no, fue "visitante".

Por último, teniendo los tres contadores podemos calcular el porcentaje de resultados "locales" haciendo contLoc*100/13. Analogamente para los otros resultados.

prode.pas

   1:
2:var
3: // contadores
4: contLoc,contVis,contEmp:integer;
5:
6: // variables para leer los datos
7: nroPartido,glocal,gVisitante:integer;
8:
9: // variable para el for
10: i:integer;
11:
12:begin
13: for i:=1 to 13 do begin
14: write('Ingrese nroPartido,gLocal, gVisitante');
15: readln(nroPartido,gLocal,gVisitante);
16:
17: // si en este partido hubo mas goles locales
18: // que visitantes
19: if( gLocal>gVisitante ) then begin
20: contLoc:=contLoc+1;
21: end else begin // si no...
22: // si en este partido hubo empate
23: if( gLocal=gVisitante ) then begin
24: contEmp:=contEmp+1;
25: end else begin // si no...=> gano visitante
26: contVis:=contVis+1;
27: end;
28: end;
29: end;
30:
31: // calculo y muestro los porcentajes
32: writeln('% locales:',contLoc*100/13);
33: writeln('% visitantes:',contVis*100/13);
34: writeln('% empates:',contEmp*100/13);
35:end.
36:





.

No hay comentarios: