ADA - g

 
Vista:

g

Publicado por Hoe (1 intervención) el 04/04/2005 19:30:19
ola, tengo un problema con un m´odulo, haber si alguien me ayuda,
mi codigo esta en http://phpfi.com/56621

el problema q tengo esq tengo q hacerlo generiko, me he pasado todo el dia y nose como definir las funciones que dependiendo como sean (registro o float) hagan una cosa o otra, ayudadme porfavor.
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo crear un módulo genérico en Ada para trabajar con diferentes tipos de datos

Publicado por Alejandro (155 intervenciones) el 29/06/2023 23:20:02
Lamentablemente, el enlace proporcionado no es válido y no puedo acceder al código que deseas compartir. Sin embargo, puedo darte una explicación general sobre cómo hacer un módulo genérico en Ada.

En Ada, puedes crear módulos genéricos utilizando parámetros genéricos para permitir la reutilización del código con diferentes tipos de datos. Esto te permitirá definir funciones que funcionen con diferentes tipos de datos, como registros o números de punto flotante.

Aquí hay un ejemplo básico de cómo podrías definir un módulo genérico en Ada:

1
2
3
4
5
6
7
8
generic
   type Item_Type is private;
package MiModulo is
 
   -- Función genérica que realiza una operación en función del tipo de dato
   function Realizar_Operacion(Item : Item_Type) return Item_Type;
 
end MiModulo;

En este ejemplo, el parámetro genérico `Item_Type` representa el tipo de dato que se utilizará en el módulo. Puedes definir funciones y procedimientos dentro del módulo que utilicen este tipo genérico.

A continuación, puedes proporcionar implementaciones específicas del módulo para diferentes tipos de datos. Aquí hay un ejemplo de cómo podrías hacerlo para un tipo de dato de registro y un tipo de dato de punto flotante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package MiModulo.Registro is
 
   type Registro is record
      -- Definición del registro
   end record;
 
   function Realizar_Operacion(Item : Registro) return Registro;
 
end MiModulo.Registro;
 
 
package MiModulo.PuntoFlotante is
 
   function Realizar_Operacion(Item : Float) return Float;
 
end MiModulo.PuntoFlotante;

En cada implementación específica, puedes definir las funciones y procedimientos que se adapten al tipo de dato correspondiente.

Luego, en tu programa principal, puedes instanciar y utilizar el módulo genérico según tus necesidades:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
with MiModulo;
with MiModulo.Registro;
with MiModulo.PuntoFlotante;
 
procedure Programa_Principal is
   Item_Registro : MiModulo.Registro.Registro;
   Item_PuntoFlotante : Float;
   Resultado_Registro : MiModulo.Registro.Registro;
   Resultado_PuntoFlotante : Float;
begin
   -- Utilizar el módulo genérico con un tipo de dato de registro
   Resultado_Registro := MiModulo.Registro.Realizar_Operacion(Item_Registro);
 
   -- Utilizar el módulo genérico con un tipo de dato de punto flotante
   Resultado_PuntoFlotante := MiModulo.PuntoFlotante.Realizar_Operacion(Item_PuntoFlotante);
end Programa_Principal;

Espero que este ejemplo te ayude a entender cómo puedes crear un módulo genérico en Ada. Recuerda que esto es solo un ejemplo básico y la implementación real dependerá de tus necesidades específicas y del código que deseas hacer genérico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar