![]() |
Bienvenido a mis Tutorías
©
en la UNED
Exámenes |
![]() |
Programación I
1ª Semana, Febrero 2002:
|
Programación I, 1ª Semana, Febrero 2002:
Ejercicio Práctico Escribir SÓLO el módulo de definición para el tipo abstracto de dato (nombre, apellido, DNI y 15 notas) con las operaciones de introducir datos personales, introducir las notas y obtener la media. También hay que realizar un programa que utilice una tabla con los datos de hasta 50 alumnos para obtener el alumno de la nota media más alta. DEFINITION MODULE Alumnos; (* Modulo de definicion para un tipo abstracto ALUMNO que contiene nombre, apellido, DNI y 15 notas *) CONST MaxCad=30; (* Longitud maxima para nombre y apellido *) MaxDni=10; (* Longitud maxima para el DNI *) MaxNota=15; (* Maximo de notas que se guardan *) TYPE TipoAlumno= RECORD Nombre,Apellido: ARRAY[0..MaxCad] OF CHAR; DNI: ARRAY[0..MaxDni] OF CHAR; Notas: ARRAY[1..MaxNota] OF REAL; END; PROCEDURE Datos(VAR Alu:TipoAlumno); (* Procedimiento para introducir los datos personales de un alumno *) PROCEDURE Notas(VAR Alu:TipoAlumno); (* Procedimiento para introducir las notas de un alumno *) PROCEDURE Media(Alu:TipoAlumno):REAL; (* Funcion que devuelve la nota media de un alumno *) END Alumnos. MODULE Examen; (* Modulo para manejar los datos de alumnos y obtener la media mas alta *) FROM InOut IMPORT WriteString,WriteLn,WriteCard; FROM RealInOut IMPORT WriteReal; IMPORT Alumnos; CONST MaxAlum=50; (* Maximo de alumnos para la tabla *) VAR ListaAlumnos: ARRAY[1..MaxAlum] OF Alumnos.TipoAlumno; i:CARDINAL; MejorAlumno:CARDINAL; BEGIN MejorAlumno:=1; FOR i:=1 TO MaxAlum DO Alumnos.Datos(ListaAlumnos[i]); Alumnos.Notas(ListaAlumnos[i]); IF Alumnos.Media(ListaAlumnos[i])>Alumnos.Media(ListaAlumnos[MejorAlumno]) THEN MejorAlumno:=i; END; END; WITH ListaAlumnos[MejorAlumno] DO WriteLn;WriteLn; WriteString("ALUMNO CON MEJOR MEDIA...");WriteCard(MejorAlumno,4);WriteLn; WriteString("Nombre: "); WriteString(Nombre);WriteLn; WriteString("Apellido: "); WriteString(Apellido);WriteLn; WriteString("DNI: "); WriteString(DNI);WriteLn; WriteString("Nota Media: "); END; WriteReal(Alumnos.Media(ListaAlumnos[MejorAlumno]),7);WriteLn; END Examen. |
|
No dudes en escribir si tienes alguna duda sobre estos ejercicios
![]() abello ![]() |