Deporte+recomendado+según+temperatura

=__**Deportes y Temperatura**__= > Pide una temperatura e indica los deportes m s adecuados para realizar, seg£n los criterios indicados en la siguiente tabla:

Más de 30 grados Natación Entre 25 y 35 grados Tenis Entre 10 y 25 grados Golf Entre -4 y 7 grados Esquí Menos de 10 grados Ajedrez

**Utilizando sentencias IF** code format="pascal" PROGRAM CONDIC_22A ; VAR iTemperatura : Integer ; BEGIN Write ('Indica la temperatura del dia: ') ; ReadLn (iTemperatura) ; Writeln ;

WriteLN ('Deportes mas adecuados: ') ;

IF 30 < iTemperatura THEN WriteLN ('  la NATACION')   ;

IF (25 <= iTemperatura) AND (iTemperatura <= 35) THEN WriteLN ('  el TENIS')   ;

IF (10 <= iTemperatura) AND (iTemperatura <= 25) THEN WriteLN ('  el GOLF')   ;

IF (-4 <= iTemperatura) AND (iTemperatura <= 7) THEN WriteLN ('  el ESQUI')   ;

IF (iTemperatura <= 10) THEN WriteLN ('  el AJEDREZ')   ; END. (* Fin de CONDIC22A.PAS *) code **Utilizando sentencias IF-ELSE-IF (con demasiadas comparaciones: comparaciones redundantes)** code format="pascal" PROGRAM CONDIC_22B_1 ; VAR iTemperatura : Integer ; BEGIN Write ('Indica la temperatura del día: ') ; ReadLn (iTemperatura) ;

IF iTemperatura <= -3 THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF (-3 < iTemperatura) AND (iTemperatura <= 7) THEN WriteLN ('Los deportes más adecuados son: el AJEDREZ y ESQUÍ') ELSE IF (7 < iTemperatura) AND (iTemperatura <= 9) THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF (9 < iTemperatura) AND (iTemperatura <= 24) THEN WriteLN ('El deporte más adecuado es: el GOLF') ELSE IF (24 < iTemperatura) AND (iTemperatura <= 25) THEN WriteLN ('Los deportes más adecuados son: el GOLF y el TENIS') ELSE IF (25 < iTemperatura) AND (iTemperatura <= 30) THEN WriteLN ('El deporte más adecuado es: el TENIS') ELSE IF (30 < iTemperatura) AND (iTemperatura <= 35) THEN WriteLN ('Los deportes más adecuados son: el TENIS y NATACIÓN') ELSE IF (35 < iTemperatura) WriteLN ('El deporte más adecuado es: la NATACIÓN') ; END. code **Utilizando sentencias IF-ELSE-IF (disminuyendo el número de comparaciones)** code format="pascal" PROGRAM CONDIC_22B_2 ; VAR iTemperatura : Integer ; BEGIN Write ('Indica la temperatura del día: ') ; ReadLn (iTemperatura) ;

IF iTemperatura <= -3 THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF iTemperatura <= 7 THEN WriteLN ('Los deportes más adecuados son: el AJEDREZ y ESQUÍ') ELSE IF iTemperatura <= 9 THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF iTemperatura <= 24 THEN WriteLN ('El deporte más adecuado es: el GOLF') ELSE IF iTemperatura <= 25 THEN WriteLN ('Los deportes más adecuados son: el GOLF y el TENIS') ELSE IF iTemperatura <= 30 THEN WriteLN ('El deporte más adecuado es: el TENIS') ELSE IF iTemperatura <= 35 THEN WriteLN ('Los deportes más adecuados son: el TENIS y NATACIÓN') ELSE WriteLN ('El deporte más adecuado es: la NATACIÓN') ; END. code **Si Temperatura es de tipo Integer: Utilizando sentencia CASE-OF** code format="pascal" PROGRAM CONDIC_22C ; VAR iTemperatura : Integer ; BEGIN Write ('Indica la temperatura del día: ') ; ReadLn (iTemperatura) ;

CASE iTemperatura OF          -20..-3 : WriteLN ('El deporte más adecuado es: el AJEDREZ')   ; -4..7 : WriteLN ('Los deportes más adecuados son: ',                            'el AJEDREZ y el ESQUÍ') ; 8..9 : WriteLN ('El deporte más adecuado es: el AJEDREZ')  ; 10..24 : WriteLN ('El deporte más adecuado es: el GOLF')     ; 25 : WriteLN ('Los deportes más adecuados son: ',                            'el GOLF y el TENIS') ; 26..30 : WriteLN ('El deporte más adecuado es: el TENIS')    ; 31..35 : WriteLN ('Los deportes más adecuados son: ',                            'el TENIS y NATACIÓN') ELSE WriteLN ('El deporte más adecuado es: la NATACIÓN') ; END ; END. { Fin de CONDIC22C.PAS } code **Si Temperatura es de tipo Integer: Utilizando sentencia CASE-OF** **Si se quiere poner todo el rango de los valores más pequeños (en lugar de -20..-3):** **se pondría -MAXINT - 1 .. -3** code format="pascal" PROGRAM CONDIC_22C ; VAR iTemperatura : Integer ; BEGIN Write ('Indica la temperatura del día: ') ; ReadLn (iTemperatura) ;

CASE iTemperatura OF          -MAXINT-1..-3 : WriteLN ('El deporte más adecuado es: el AJEDREZ')   ; -4..7 : WriteLN ('Los deportes más adecuados son: ',                            'el AJEDREZ y el ESQUÍ') ; 8..9 : WriteLN ('El deporte más adecuado es: el AJEDREZ')  ; 10..24 : WriteLN ('El deporte más adecuado es: el GOLF')     ; 25 : WriteLN ('Los deportes más adecuados son: ',                            'el GOLF y el TENIS') ; 26..30 : WriteLN ('El deporte más adecuado es: el TENIS')    ; 31..35 : WriteLN ('Los deportes más adecuados son: ',                            'el TENIS y NATACIÓN') ; 36..55 : WriteLN ('El deporte más adecuado es: la NATACIÓN') ; ELSE WriteLN ('Con esa temperatura tan extrema no se recomienda practicar deporte') ; END ; END. { Fin de CONDIC22D.PAS } code **Si Temperatura es de tipo Real no se puede utilizar la sentencia CASE** **Se debería utilizar la sentencia IF-ELSE-IF** code format="pascal" PROGRAM CONDIC_22D ; VAR rTemperatura : Real ; BEGIN Write ('Indica la temperatura del día: ') ; ReadLn (iTemperatura) ;

IF rTemperatura <= -3 THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF rTemperatura <= 7 THEN WriteLN ('Los deportes más adecuados son: el AJEDREZ y ESQUÍ') ELSE IF rTemperatura <= 9 THEN WriteLN ('El deporte más adecuado es: el AJEDREZ') ELSE IF rTemperatura <= 24 THEN WriteLN ('El deporte más adecuado es: el GOLF') ELSE IF rTemperatura <= 25 THEN WriteLN ('Los deportes más adecuados son: el GOLF y el TENIS') ELSE IF rTemperatura <= 30 THEN WriteLN ('El deporte más adecuado es: el TENIS') ELSE IF rTemperatura <= 35 THEN WriteLN ('Los deportes más adecuados son: el TENIS y NATACIÓN') ELSE WriteLN ('El deporte más adecuado es: la NATACIÓN') ; END. code