domingo, 20 de noviembre de 2011

Ejercicio 5(arrays)

Plantee e implemente un programa en PASCAL para almacenar las temperaturas (en ºC) registradas en una ciudad durante un día hora a hora (0-23). Introduzca las temperaturas a partir de los datos proporcionados por el usuario, visualice ordenadamente las temperaturas registradas y calcule y muestre por pantalla la temperatura máxima, mínima y media alcanzadas.


PROGRAM temp(input,output);
(*Programa que pida una serie de temperaturas por teclado, y como salida las imprima por pantalla hora a hora, calcule maximo, minimo y la media*)

CONST
     horas=24;
TYPE
    TAtemperaturas = ARRAY[1..horas] OF real;
VAR
    Atemperaturas:TAtemperaturas;
    a,m,b,c:real;
(********************************************************************************************************************************************************)
PROCEDURE  leer;
    VAR
       I:integer;
    BEGIN
         I:=1;
         WHILE I<=horas DO
                BEGIN
                read(a);
                Atemperaturas[I]:=a;
                I:=I+1;
                END;
   END;



(********************************************************************************************************************************************************)
PROCEDURE escribir;
    VAR
       Y:integer;
    BEGIN
         FOR Y:=1 TO horas DO
         IF Y=1 THEN writeln('La temperatura a la ',Y:3,' es de ',Atemperaturas[Y]:3:2,' grados.') ELSE writeln('La temperatura a las ',Y,' es de ',Atemperaturas[Y]:3:2,' grados.');
    END;
(********************************************************************************************************************************************************)
FUNCTION media(Atemperaturas:TAtemperaturas):real;
         VAR
            acumulador:real;
            M:integer;
         BEGIN
           M:=0;
            FOR M:=1 TO horas DO
                acumulador:= acumulador + Atemperaturas[M];
                media:= acumulador /horas;
          END;
(************************************************************************************************************************************************************)
FUNCTION maxima(Atemperaturas:TAtemperaturas):real;
         VAR
            maximo:real;
            I:integer;
         BEGIN
             maximo:=0;
             I:=0;
             FOR I:=1 TO horas DO
                IF Atemperaturas[I] > maximo THEN maximo:=Atemperaturas[I] ELSE maximo:=maximo;
                maxima:=maximo;
             END;
(************************************************************************************************************************************************************)
FUNCTION minima(Atemperaturas:TAtemperaturas):real;
         VAR
            minimo:real;
            I:integer;
         BEGIN
             minimo:=0;
             I:=0;
             FOR I:=1 TO horas DO
                IF Atemperaturas[I] < Atemperaturas[1] THEN minimo:=Atemperaturas[I] ELSE minimo:=minimo;
               minima:=minimo;
             END;
(*****************************************************************************************************************************************************************)
BEGIN
write('Introduzca 24 temperaturas separadas por espacios correspondientes a cada hora del dia:');
leer;
escribir;
m:=media(Atemperaturas);
writeln('La media de las temperaturas a lo largo del dia, es de ',m:2:2,' grados.');
b:=maxima(Atemperaturas);
writeln('La temperatura maxima alcanzada en el dia es de ',b:2:2,' grados');
c:=minima(Atemperaturas);
writeln('La temperatura minima alcanzada en el dia es de ',c:2:2,' grados');
END.

Ejemplo de ejecución




                                                                                                                                              Siguiente

No hay comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review