Mayores+que+la+media

=__**Mayores que la media**__=

> Programa que lee temperaturas, como máximo 50, y cuentas cuántas son superiores a la media.

code format="pascal" PROGRAM MayorMed ; CONST byLONG_FISICA = 5;

TYPE tarVector = ARRAY [1 .. byLONG_FISICA] OF Real ;

PROCEDURE LeerNumeros (VAR arVector : tarVector ;                      VAR byLong   : Byte) ; VAR cResp : Char ; BEGIN Write ('Introducir datos (S/N): ') ; Readln (cResp) ;

WHILE (Upcase(cResp) = 'S') AND (byLong < byLONG_FISICA) DO    BEGIN byLong := byLong + 1 ;

Write ('Introduzca termino (', byLong, '): ') ; Readln ( arVector [ byLong ] ) ;

IF byLong < byLONG_FISICA THEN BEGIN Write ('Introducir mas datos (S/N): ') ; Readln (cResp) END END { while } END ; { LeerNumeros }

FUNCTION fnrMedia (CONST arVector : tarVector ;                            byLong : Byte) : Real ; VAR i : Byte ; rSuma : Real ; BEGIN rSuma := 0 ;

FOR i := 1 TO byLong DO       rSuma := rSuma + arVector [i] ;

fnrMedia := rSuma / byLong ; END ; { fnrMedia  }

FUNCTION fnbyContarValoresSuperiores (CONST arVector : tarVector;                                 byLong : Byte ;                                 rValor : Real) : Byte ; VAR i : Byte ; byContador: Byte ; BEGIN byContador := 0 ;

FOR i := 1 TO byLong DO       IF arVector [i] > rValor THEN byContador := byContador + 1 ;

fnbyContarValoresSuperiores := byContador

END ; { fnbyContarValoresSuperiores }

VAR { Variables del programa principal --} arVector : tarVector ; byLongitud : Byte ; rValorMedia : Real ; byNumerosMayores : Byte ;

BEGIN (*********** PROGRAMA PRINCIPAL ************) byLongitud := 0 ;        { inicialmente vacia }

LeerNumeros (arVector, byLongitud) ;

Writeln ; IF byLongitud > 0 THEN BEGIN rValorMedia := fnrMedia (arVector, byLongitud) ;

Writeln ('Valor de la media: ', rValorMedia:0:3) ;

byNumerosMayores := fnbyContarValoresSuperiores (arVector,                                                       byLongitud,                                                       rValorMedia) ;

Writeln ; Writeln ('Cantidad de valores superiores a la media = ', byNumerosMayores) END ELSE Writeln ('No has introducido ningun numero') ;

Readln ; END. code