alguien que sepa programar en ADA?

A ver si alguien me puede ayudar con esto del ADA:

Se dispone de la especificación del siguiente constructor:
FUNCIÓN Cons ( N : Nombre; A : Area; S : String) --> Cuenca_Fluvial
--PRE : cierto
--POST: 'resultado' es el dato que resulta al agregar los datos 'N', 'A' y 'S' en una tupla de tipo 'Cuenca_Fluvial', de modo que resultado = (N, A, Suelo (S)).
--POST: resultado = (N, A, Suelo (S)).
--DONDE: Suelo (S) = "Construcción de un dato de tipo Suelo a partir de un String 'S'"

gracias
Pensando en que el tipo Tipo_Cuenca_Fluvial sea así (Los nombres de los campos del registro no tienen porque coincidir con los del tipo):

Type Tipo_Cuenca_Fluvial is record
Nombre : Nombre;
Area : Area;
Suelo : suelo;
end record;

Una solución podría ser esta:

function Cons (N : Nombre; A : Area; S : String) return Cuenca_Fluvial is

Cuenca : Cuenca_Fluvial;

begin
Cuenca := ( Nombre => N,
Area => A,
Suelo => Suelo (S));
return Cuenca;
end Cons;

Lo he hecho rápido y corriendo, pero creo que sería así

Y por cierto, si te atrancas aquí ya veras lo que te espera en la fi xD

Salu2 ;)

EDITO: No salen las tabulaciones, pero se ve el concepto...
Muchas gracias por tu ayuda ;)

Lo he hecho asi pero ahora tengo otro problema, resulta que ya habiendo acabado todo el programa, al compilar me dice que en la S que aparece en esa funcion (la de Suelo => Suelo (S)), esperaba un tipo Standard.Integer y que ha encontrado un Standard.String. Con esto ya me han matao del todo, porque no se que tiene que ver ahi un integer... :D
BRoLy_KReT escribió:Type Tipo_Cuenca_Fluvial is record
Nombre : Nombre;
Area : Area;
Suelo : suelo;
end record;

function Cons (N : Nombre; A : Area; S : String) return Cuenca_Fluvial is

Cuenca : Cuenca_Fluvial;

begin
Cuenca := ( Nombre => N,
Area => A,
Suelo => Suelo (S));
return Cuenca;
end Cons;

Joe q cosa mas rara... ¿y eso se usa pa algo?

Edito: A parte de para suspender a gente en la facultad?
eso me pregunto yo... porque el programa que piden yo lo he conseguido hacer sin usar la funcion cons esa y me ha salido, me da los resultados que tiene que dar, pero claro, para la practica te dicen que hay que usar esa funcion...
mercucho1 escribió:Joe q cosa mas rara... ¿y eso se usa pa algo?


Si supieses las maravillas que se pueden hacer en ADA ya verías jeje.

PD: Toopu, suerte por la FI
gracias BRoLy_KReT, tu en que curso estas? Y sabes porque puede ser eso de que me diga expected type "Standard.Integer", found "Standard.String" en la S?
BRoLy_KReT escribió:
Si supieses las maravillas que se pueden hacer en ADA ya verías jeje.

PD: Toopu, suerte por la FI

Am, que es un lenguaje que se puede compilar?, con lo que he leido aqui creía que era pseudocódigo...

Salu2
si, poderse se puede compilar, y hacer de to, menos cuando te obligan a usar 1 funcion puta como esta y no tienes ni idea como yo :D
Toopu escribió:gracias BRoLy_KReT, tu en que curso estas? Y sabes porque puede ser eso de que me diga expected type "Standard.Integer", found "Standard.String" en la S?


Estoy en tercero. Con lo de expected type supongo a que se refiere que espera que S sea un entero pero en cambio se encuentra un string.

Una cosa, cuando pone "Suelo (S)" es una función que transforma un string en el tipo suelo, esa función te la dan o la tienes que hacer tú? y el tipo Suelo cómo es? Es que sin saber esas cosas es imposible ayudarte :-P

Enga salu2

EDITO: Si, se puede compilar. La verdad es que es un lenguaje en mi opinión muy bueno para aprender, porque está muy fuertemente tipado y su compilador es el más preciso que he visto al darte el error exacto cuando algo no anda bien. Se puede decir que los hábitos que se cogen al programar en ADA son a la larga buenos (supongo que por eso lo usan en mi facultad) para luego programar en otros lenguajes.
9 respuestas