Mayor+de+tres+números

=__**Mayor de tres números**__=

Escribir un programa que muestre cuál es el mayor valor entero leído desde teclado.

**CORRECTO: Utilizando sentencias IF** code format="pascal" PROGRAM Mayor_3_Numeros ; VAR iNumero, iMayor : Integer ; BEGIN Write ('Escribe un número: ') ; { Leer un número } Readln (iNumero) ;

iMayor := iNumero ; { este número es el mayor }

Write (' otro número: ') ; { Leer otro número } Readln (iNumero) ;

IF iNumero > iMayor THEN { ver si éste es el mayor } iMayor := iNumero ;

Write (' otro número:') ; { Leer otro número } Readln (iNumero) ;

IF iNumero > iMayor THEN { ver si éste es el mayor } iMayor := iNumero ;

Writeln ('EL valor mayor es: ', iMayor) END. code

**CORRECTO: Utilizando sentencia FOR**

**MEJORA la posibilidad de incrementar el número de valores a comparar**

code format="pascal" PROGRAM Mayor_3_Numeros ; VAR iNumero, iMayor, i : Integer ; BEGIN Write ('Escribe un número: ') ; { Leer un número } Readln (iNumero) ;

iMayor := iNumero ; { este número es el mayor }

FOR i := 2 TO 3 DO   BEGIN Write (' otro número: ') ;{ Leer otro número } Readln (iNumero) ;

IF iNumero > iMayor THEN { ver si éste es el mayor } iMayor := iNumero END ;

Writeln ('EL valor mayor es: ', iMayor) END. code

**FUNCIONA pero NO ES EFICIENTE: No se necesita tener los tres números en tres variables** code format="pascal" PROGRAM Cond_1 ; VAR iNumero_1, iNumero_2, iNumero_3 : Integer ; BEGIN Write ('Escribe un número: ') ; { Leer un número } Readln (iNumero_1) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_2) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_3) ;

IF (iNumero_1 >= iNumero_2) AND (iNumero_1 >= iNumero_3) THEN WriteLn ('El valor mayor es: ', iNumero_1) ; ELSE  IF (iNumero_2 >= iNumero_1) AND (iNumero_2 >= iNumero_3) THEN WriteLn ('El valor mayor es: ', iNumero_2) ELSE WriteLn ('El valor mayor es: ', iNumero_3) END. code

**FUNCIONA pero NO ES EFICIENTE: No se necesita tener los tres números en tres variables**

**MEJORA LA ANTERIOR VERSION: Menor número de comparaciones** code format="pascal" PROGRAM Cond_1 ; VAR iNumero_1, iNumero_2, iNumero_3, iMayor : Integer ; BEGIN Write ('Escribe un número: ') ; { Leer un número } Readln (iNumero_1) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_2) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_3) ;

IF iNumero_1 > iNumero_2  THEN iMayor := iNumero_1 ELSE iMayor := iNumero_2 ;

IF iNumero_3 > iMayor  THEN iMayor := iNumero_3

WriteLn ('El valor mayor es: ', iMayor) ; END. code **ERRONEO: Utilizando sentencias IF THEN ELSE incorrectamente** code format="pascal" PROGRAM Cond_1 ; VAR iNumero_1, iNumero_2, iNumero_3 : Integer ; BEGIN Write ('Escribe un número: ') ; { Leer un número } Readln (iNumero_1) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_2) ; Write (' Otro número: ') ; { Leer otro número } Readln (iNumero_3) ;

IF (iNumero_1 > iNumero_2) THEN IF (iNumero_1 > iNumero_3) THEN WriteLn ('El valor mayor es: ', iNumero_1) ; ELSE IF (iNumero_2 > iNumero_3) THEN WriteLn ('El valor mayor es: ', iNumero_2) ELSE WriteLn ('El valor mayor es: ', iNumero_3) END. code