Buenas tardes antes que nada.
El problema que se me plantea es el siguiente:
Se pretende implementar un tad para representar información sobre estudiantes. Los estudiantes tendrán los atributos y operaciones básicas del tipo Persona más una lista de asignaturas y las operaciones para gestionarla. La lista de asignaturas de un estudiante se implementará usando un contenedor lineal secuencial limitado en tamaño que también se desarrollará en esta práctica.
La cuestion es que tengo otro tipo, el tipo estudiantes que es un Tipo de datos derivado de Persona
El tema es que me da el error "The name does not resolve to a subtype mark, Continuing" cuando en el codigo intento enlazar parametros con los tipos "estudiantes" y con "fechas" y "asignaturas" que estan en otro dos ficheros, los cuales conecto mediante "librerias".
Pongo el código para ver si alguno sabe a que puede deberse. Gracias de antemano Smile
Paquete extension Personas
with personas,asignaturas,fechas;
use Personas,asignaturas,fechas;
generic
tamanio :positive;
package personas.estudiante is private
procedure añadir_asignatura (asig: in out asignaturas; alum: in estudiante);
procedure poner_nota (Alum: in out estudiante; codigo: in positive; nota: in natural; fech: in fechas);
function ver_asignatura (Alum: estudiante; codigo: positive) return asignaturas;
function superadas (Alum: estudiante) return natural;
function No_superadas (Alum: estudiante) return natural;
no_matriculado,ya_existe_asig,muchas_asignaturas: exception;
private
type estudiante is new Personas;
end personas.estudiante;
Paquete personas
with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;
package Personas is
type Persona is tagged private;
-- Tipo base para representar personas.
procedure Inicializar(
P: out Persona;
DNI: in Positive;
N, A1, A2: Unbounded_String
);
-- Da un valor a una variable de tipo persona.
function DNI(P: in Persona) return Positive;
-- Devuelve el DNI de una persona.
function Nombre(P: in Persona) return Unbounded_String;
-- Devuelve el nombre de pila de una persona.
function Primer_Apellido(P: in Persona) return Unbounded_String;
-- Devuelve el primer apellido de una persona.
function Segundo_Apellido(P: in Persona) return Unbounded_String;
-- Devuelve el segundo apellido de una persona.
function Nombre_Completo(P: in Persona) return Unbounded_String;
-- Devuelve el nombre de una persona, en el fomato:
-- <Primer_Apellido Segundo_Apellido, Nombre>
private
-- Estructura de representación del tipo Persona
type Persona is tagged record
DNI: Positive;
Nombre: Unbounded_String;
Primer_Apellido: Unbounded_String;
Segundo_Apellido: Unbounded_String;
end record;
end Personas;
Gracias nuevamente