Universidad Simón Bolívar

Departamento de Computación y Tecnología de la Información
CI2615 - Algoritmos y Estructuras I
Septiembre - Diciembre 2002

Tarea 6

(Bloque A, Martes)

1.- Se desea construir un programa que dibuje varios círculos concéntricos, todos con centro en el origen del sistema de coordenadas. Los datos de entrada serán el radio del círculo más pequeño (rmínimo), la diferencia entre los radios de los círculos consecutivos (distancia), y la cantidad de círculos deseados (cantidad). La especificación normal (que utiliza el predicado hayCirculo definido en la tarea anterior para la especificación de la Máquina de Trazados ) es la siguiente:

constrminimo, distancia, cantidad: entero;

varmtConCirculos:MaquinaTrazados;

{ ...... precondición ........}

CírculosConcéntricos

{ (Vi: 0 <= i<cantidad : hayCírculo (mtConCírculos, 0, 0, rminimo+ i *distancia))}

]

·Indique cual debe ser la precondición (la más débil posible, es decir, el mínimo requerimiento necesario para poder dibujar los círculos deseados ).

·Construya una iteración (sin demostrar su correctitud) que resuelva el problema CírculosCooncéntricos utilizando el siguiente invariante, el cual requiere una nueva variable entera k:

0 < = k<= cantidad

^

(Vi: 0 < =i < k : hayCírculo (mtConCírculos, 0, 0, rminimo+ i *distancia))

·Construya otra iteración (de nuevo sin demostrar su correctitud) que resuelva el problema con el siguiente invariante, que también requiere una nueva variable entera k:

0 <= k <= cantidad

^

(Vi: k <= i < cantidad : hayCírculo (mtConCírculos, 0, 0, rminimo+ i *distancia))

2.- Dar las especificaciones del siguiente problema, el programa que lo resuelve y probar la correctitud.

Un hacendado requiere calcular cuantas hectáreas de pasto debe sembrar en un intervalo de 10 años, para un ganado de 100 cabezas de res . Para ello el conoce que la tasa de natalidad anual (TN) es del 20 %,y que cada 10 cabezas de ganado requiere 1 hectárea de pasto/año para su alimentación.