Informática del CBI – 2015 Dictado : Ing. Juan Manuel Conti
TRABAJO PRACTICO Nro 8 Funciones en Pascal
Problema 1 : En la siguiente figura:
R2=20
R1=10
Xc1=R1
Xc2=R2
A la izquierda se tienen dos funciones circulares y a su derecha el producto de ambas. Ud. deberá implementar una función en Pascal denominada Maximo ( ) que tendrá como parámetros: R1, R2, Xc1, Xc2 y deberá determinar cuál es el valor máximo de la función producto, valor que retornará a su punto de invocación el cual lo mostrará por pantalla.
NOTA: P/verificar si el resultado obtenido es correcto tiene dos caminos: a) Chequear en el gráfico. b) Utilizar Solver desde EXCEL.
Trabajo Práctico Nro 08
Pág.1/5
Informática del CBI – 2015 Dictado : Ing. Juan Manuel Conti Problema 2 : En la siguiente figura:
r
Ro=10
L=40
Un cuadrado de lado L=40, posee centrada en su interior una circunferencia de radio Ro=10. Se generan 15 circunferencias de coordenadas del centro aleatorias, dentro de dicho cuadrado, y se desea desarrollar una función denominada Esta( ), que reciba como parámetros: Xc, Yc y r (coordenadas del centro y radio de las circunferencias pequeñas). El radio “r” es constante e igual a 2.5.
Trabajo Práctico Nro 08
Pág.2/5
Informática del CBI – 2015 Dictado : Ing. Juan Manuel Conti
La función deberá determinar si la circunferencia pequeña se halla: -
Dentro (retornará 1). Fuera (retornará 2). Parte dentro y parte fuera (retornará 3).
En pantalla, y desde el punto de invocación, se irá mostrando: Xc=…… Xc=…… Etc.
Yc=….. Yc=…..
DENTRO/FUERA/EN PARTE DENTRO/FUERA/EN PARTE
NOTA: Para hacer la selección de los casos dentro de la función, utilice la estructura “case of”.
Problema 3 : En la siguiente figura: Desarrollar una función denominada Entran( ), que reciba como parámetro el radio “r” de una circunferencia pequeña (que estará en el rango de 1 a 20), y determinará cuántas de ellas entrarán en la circunferencia grande (de radio Ro=50): ese es el valor que retornará. Esta función será invocada desde el main a través de un lazo for donde la variable de control (de 1 a 20) será el radio r que ingrese como parámetro de la función.
r
Ro=50
Trabajo Práctico Nro 08
Pág.3/5
Informática del CBI – 2015 Dictado : Ing. Juan Manuel Conti
Problema 4 :
Desarrollar una función denominada SupTrap( ), que determine el área de un trapecio que posee el lado derecho vertical y el izquierdo una recta inclinada:
Bmen=8
a H
Bmay=20
Esta función trabajará con el método de la división en rectángulos de ancho "a" y recibirá como único parámetro el número de divisiones Ndivs con que particionará la base Bmay. El valor que retornará será de tipo double. NOTA: Como esta función será invocada desde el main, puede invocarla varias veces con distintos valores de Ndivs. Verifique la exactitud del método comparando con el cálculo geométrico simple de (Bmay + Bmen).H / 2.
Problema 5 Observe la siguiente figura:
r
H=20 (cte)
Trabajo Práctico Nro 08
Pág.4/5
Informática del CBI – 2015 Dictado : Ing. Juan Manuel Conti Sobre una circunferencia de radio “r” (variable) se circunscribe un triángulo de altura constante H=20 y base que se irá amoldando al tamaño de la circunferencia. Una función denominada SupTriang( ) recibirá como único parámetro el radio “r” y retornará el valor de la superficie del triángulo (de tipo double). Esta función será invocada 15 veces desde el main para valores aleatorios de “r” entre 1 y 5. En pantalla se irá informando: r = …. r = …. etc.
SupTriang=….. (con tres decimales) SupTriang=….. (con tres decimales)
Problema 6 Una función denominada Termino_N( ) recibirá 2 parámetros: - El Nro de orden de una Serie (la Serie 1, o la 2, etc.) - El Nro del término de esa Serie que deberá determinar. Las Series son: 1 : Fibonacci TermAct = Suma de los dos anteriores. 2 : TermAct = 2*Anterior + 1. 3 : TermAct = (Suma de los dos anteriores)*2. 4 : TermAct = (Cuadrado del térm pre-anterior) + Anterior. Calcular el 7mo término para c/u de las Series e ir mostrándolo por pantalla. Agregar un código que contemple si le está solicitando alguna serie inexistente y que retorne un valor especial (por ej -1). En pantalla deberá ir apareciendo: Serie 1 Serie 2 Serie 3 Serie 4 Serie 5 Serie 6
Term_Nro 7 Term_Nro 7 Term_Nro 7 Term_Nro 7 Term_Nro 7 Term_Nro 7
……. ……. ……. ……. -1 -1
Esta fn será invocada desde el main( ) desde una lazo for de 1 a 6. NOTA. Utilizar la estructura case of dentro de la función.
Trabajo Práctico Nro 08
Pág.5/5