martes, 20 de diciembre de 2011

examen 2


PROGRAM examen(input,output);
(*Programa que muestre un menu por pantalla donde se den las opciones de insertar datos de 5 conductores, matricula, nombre e importe a pagar, al acabar de insertar los datos vuelva a mostrar el
menu y de las opciones de volver a introducir los datos, de mostrar la media de los importes de las multas por pantalla o de salir del programa, debe contener un procedimiento para insertar los datos y
una funcion para calcular la media*)

CONST
     multas = 5;
TYPE
     archivo = record
             nombre:string(15);
             matricula:string(7);
             importe:real;
      END;
         
      TAarray = ARRAY[1..multas] OF archivo;
VAR
   datos:TAarray;
   totalmultas:real;
   eleccion:char;
(******************************************************************************)
PROCEDURE insertar;
VAR
   I:integer;
BEGIN
     I:=1;
     totalmultas:=0;
     FOR I:=1 TO multas DO
         BEGIN
         writeln('Por favor introduzca el nombre del conductor ',I,':');
         readln(datos[I].nombre);
         writeln('Por favor introduzca la matricula del coche de ',datos[I].nombre,':');
         readln(datos[I].matricula);
         writeln('Por favor introduzca el importe a pagar por ',datos[I].nombre,' en euros:');
         readln(datos[I].importe);
         totalmultas:=totalmultas+datos[I].importe;
         END;
       
END;        
(******************************************************************************)
FUNCTION media(totalmultas:real):real;
BEGIN
     media:=totalmultas/multas;
END;
(******************************************************************************)
PROCEDURE salir;
BEGIN
     writeln('Saliendo del programa...');
END;
(******************************************************************************)            
BEGIN    
   
     REPEAT
           BEGIN
                writeln('[S] Salir del programa');
                writeln('[I] Introducir los datos');
                writeln('[M] Mostrar la media del importe de las multas');
                    readln(eleccion);
                    CASE eleccion OF
                    'S','s' : salir;
                    'I','i' : insertar;
                    'M','m' : writeln('La media de los importes de las multas es: ',media(totalmultas):2:2,' euros');
OTHERWISE writeln('Error, opcion incorrecta');
                    END;
              END;
      UNTIL (eleccion ='S')OR(eleccion = 's');            
                   
           
END.

Ejemplo de ejecucion




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