ADA - Hacer este programa recursivamente

 
Vista:

Hacer este programa recursivamente

Publicado por Anikilator (2 intervenciones) el 26/02/2007 15:59:48
Muy buenas, necesito ayuda con un ejerccio que me piden redacte tanto recursivamente como Iterativamente.
Seria muy de gran ayuda que si alguien fuese capaz de hacerlo me pasase el archivo en adagide por correo o lo escriba aqui si quiere, pero esque ando muy perdido y lo necesito para el martes por la tarde a más tardar., me hariais un grandisimo favor.

Gracias de antemano

AQUI EL ENUNCIADO:

ESCENARIO:

Para automatizar la gestión de las reservas de agua de una cuenca hidrográfica y poder realizar estudios de impacto ambiental, se ha redactado un documento con la descripción de los elementos implicados en la gestión y las tareas asociadas a ella.

Una cuenca hidrográfica tiene un nombre y se compone de un conjunto de embalses. Cada embalse recoge agua de un conjunto de cuencas fluviales. Una cuenca fluvial se caracteriza por su nombre, su área y el tipo de suelo que existe en ella. El área de la cuenca está medida en km2 como un número con dos decimales. El tipo de suelo viene clasificado como permeable, semipermeable o poco permeable.

Existe un coeficiente K utilizado para hacer cálculos que es el coeficiente de absorción del terreno. Este coeficiente depende del tipo de suelo, según la tabla:

Tipo de Suelo K
Permeable 25.4
Semipermeable 15.2
Poco permeable 12.7

El volumen de agua (en litros) recogida en una cuenca a partir de la precipitación recogida se calcula mediante la fórmula:

V = ((P * A * 106) / k) * (1 - e-k)
Donde:

A = Area de la cuenca
K = Coeficiente de absorción
P = Precipitación recogida
Cada cuenca hidrográfica está sometida a un régimen de precipitaciones durante un cierto periodo de tiempo. Estas precipitaciones vienen registradas junto con el nombre de la cuenca fluvial donde se han producido. La precipitación viene medida en litros/m2.

REPRESENTACIÓN ABSTRACTA DEL DOMINIO DE LOS ELEMENTOS:

Letra = ['a','z'] U ['A','Z'] U {'ñ', 'Ñ'}
Nombre = Colección (6, Letra)
Area = {0} U |R+
Suelo = {Permeable, Semipermeable, Poco_Permeable}
Cuenca_Fluvial = Tupla (Nombre, Area, Suelo)
Precipitacion = {0} U |R+
Precipitaciones = Coleccion (Precipitacion)
Volumen = {0} U |R+
Embalse = Coleccion (Cuenca_Fluvial)
Embalses = Coleccion (Embalse)
Cuenca_Hidrografica = Tupla (Nombre, Embalses, Precipitaciones)
Porcentaje = [0, 100]
Invariantes:

INV (Precipitaciones) = "Cualquier nombre de cuenca fluvial de todas las de la cuenca hidrográfica puede aparecer 0 o más veces en 'Precipitaciones'".
REPRESENTACIÓN ABSTRACTA DE LAS TAREAS:

FUNCIÓN Volumen_Cuenca (C : Cuenca_Fluvial; P : Precipitacion) --> Volumen
--PRE : cierto
--POST: 'resultado' es el volumen de agua medida en litros recogida en la cuenca 'C'

FUNCIÓN Volumen_Embalse (E : Embalse; PS : Precipitaciones) --> Volumen
--PRE : cierto
--POST: 'resultado' es el volumen de agua medida en litros recogida en el embalse 'E'

FUNCIÓN Es_Suelo_Valido (CH : Cuenca_Hidrografica; S : Suelo; P : Porcentaje) --> |B
--PRE : cierto
--POST: 'resultado' es cierto si en todos los embalses de la cuenca hidrografica 'CH' se cumple que en todas sus cuencas fluviales de suelo 'S' el volumen de agua recogido supera (>=) el 'P' % del total de agua recogida en el embalse.

Se pide:

1.Escribir un programa (con pruebas) en el que se especifiquen y redacten RECURSIVAMENTE en Ada los tipos y las funciones anteriores.

2.Escribir un programa (con pruebas) en el que se especifiquen y redacten ITERATIVAMENTE en Ada los tipos y las funciones anteriores.
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