Programación I – 2011 Máximos y Mínimos en Pascal Enunciado de ejemplo Se leen las alturas de 2 jugadores de básquet. Informar el jugador con altura máxima. Solución Propuesta Program basquet; Var altura1, altura2: real; Begin write ('Ingrese la altura del jugador 1’); readln(altura1); write ('Ingrese la altura del jugador 2’); readln(altura2); if (altura1 > altura2) then Para calcular el máximo writeln(“Jugador 1”); compara ambas alturas e Else informa el jugador con altura writeln(“Jugador 2”); máxima. writeln('Presione cualquier tecla para finalizar ...'); readln; End. Ejemplo con mas de 2 jugadores ¿Qué hay que hacer si en lugar de leer la altura de 2 jugadores debemos leer de 3? ¿Tendría 3 variables? ¿Y si tuviéramos que leer las alturas de 100 jugadores? NO sería correcto utilizar 100 variables, ni tampoco realizar las comparaciones necesarias con esas 100 variables para saber qué jugador tiene la altura máxima. Solución: Utilizaremos 2 variables •MAX: que indique la altura máxima hasta el momento. •JUGADORMAX: que indique cuál fue el jugador que tiene la altura máxima al momento. 4 Enunciado de ejemplo Se leen las alturas de 20 jugadores de básquet. Informar el número de jugador con altura máxima, con altura mínima y la altura promedio. Solución propuesta Program basquet; Var altura, prom, sum, max, min: real; i, jugadormax, jugadormin : integer; Begin sum := 0; max := -1; min := 3; for i:=1 to 20 do begin write ('Ingrese la altura del jugador ', i, ': '); Readln(altura); if (altura > max) then begin max := altura; jugadormax:= i; end; if (altura < min) then begin min := altura; jugadormin:=i; end; sum := sum + altura; end; writeln(‘Jugador con altura máxima ',jugadormax); writeln(‘Jugador con altura mínima: ',jugadormin); prom := (sum/20); writeln('La altura promedio es : ', prom:4:2); writeln('Presione cualquier tecla para finalizar ...'); readln; End. Enunciado de ejemplo Cálculo de dos máximos Se leen las alturas de 20 jugadores de básquet. Informar los dos jugadores con altura máxima. Conceptos En lugar de manejar una variable max necesitamos manejar dos: max1 y max2 . Para ello necesitamos tener en cuenta la siguiente condición: Max1 > Max2 Solución propuesta Program basquet; Var altura, max1, max2: real; i, jugadormax1, jugadormax2: integer; Begin writeln(‘Los dos jugadores con altura máxima son:',jugadormax1, jugadormax2); writeln('Presione cualquier tecla para finalizar ...'); readln; max1 := -1; max2 := -1; End. for i:=1 to 20 do begin write ('Ingrese la altura del jugador ', i, ': '); Readln(altura); if (altura > max1) then begin Casos a Analizar: max2:= max1; • altura > max1 jugadormax2:=jugadormax1; • max2 < altura < max1 max1:= altura; jugadormax1:=i; • altura < max2 end; else ¿Que sucede si altura = max1 o if (altura > max2) then begin altura = max2? max2:= altura; jugadormax2:=i; end; end; ¿PREGUNTAS?