Practica Programacion Ii 2003 2004
-
Upload
salvador-fernandez-fernandez -
Category
Documents
-
view
4.322 -
download
3
description
Transcript of Practica Programacion Ii 2003 2004
Práctica de programación II
U.N.E.D
CURSO 2003-2004
RESOLUCIÓN DEL DISEÑO Y ANÁLISIS TEÓRICO
Por
TECNO ACADEMY (tecnoacademy.blogspot.com)
Salvador Fernández Fernández
2. Enunciado de la práctica Calculo aproximado del Coseno de un Número: El coseno de un ángulo, x, expresado en radianes y con –π <= x <= π es una función cuyo valor puede aproximarse por un desarrollo en serie de potencias de Taylor. La fórmula general de dicho desarrollo para el cálculo de f(x) en un punto (a) es:
( )n
i
n
axn
afxf )(!
)()(0
−= ∑∞
=
donde n! representa el factorial del número n y f(n) (a) representa la n-ésima derivada de f en el punto a. El desarrollo de Taylor para el coseno, tomando a = 0, sería:
∑∞
=
−=
0
2)()!2()1(cos
n
nn
xn
x , para cualquier x.
Dado que se trata de una serie infinita, tendremos que aproximarla por la suma de un cierto número de términos, k, es decir
∑=
−≈
k
n
nn
xn
x0
2)()!2()1(cos
Se desea diseñar una función recursiva completamente verificada que calcule la aproximación de orden k al valor del coseno en un punto x dado mediante la fórmula de Taylor. Por ejemplo, la aproximación de orden 3 al coseno de (π/4) sería:
∑=
⎟⎠⎞
⎜⎝⎛−
≈⎟⎠⎞
⎜⎝⎛ 3
0
2
4)!2()1(
4cos
n
nn
nππ
http://tecnoacademy.blogspot.com
o, lo que es lo mismo,
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠⎞
⎜⎝⎛−
+⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠⎞
⎜⎝⎛−
+⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠⎞
⎜⎝⎛−
+⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠⎞
⎜⎝⎛−
≈⎟⎠⎞
⎜⎝⎛
323222121020
4)!32()1(
4)!22()1(
4)!12()1(
4)!02()1(
4cos
xxxx
xxxxπππππ
El diseño de la función que constituye la parte teórica de la práctica debe ser genérico, es decir, debe tratar todos los factores (por ejemplo, el punto en que se calcula el coseno o la bondad de la aproximación, es decir, el número de términos de la serie que lo aproxima, entre otros) como parámetros, sin importar como se instancien para resolver el problema (lo que hará en la implementación de la práctica) Tarea 1: Diseño y Análisis teórico 3. Especificación 3.1. Consideraciones sobre la especificación Para la construcción de la especificación del problema han de tenerse en cuenta los siguientes aspectos:
• El primer paso debe ser declarar la función, esto es, darle un nombre y declarar los parámetros que recibe y el resultado que devuelve, nombrándolos y decidiendo a que tipos de datos pertenecen. En nuestro caso, la signatura o perfil de la función será el siguiente (nótese que el nombre de la función esta en cursiva y los tipos predefinidos en negrita) fun cosk: real x nat real
• La postcondición expresa el resultado que se desea alcanzar, por lo que este será el siguiente caso. Se trata de expresarla de forma precisa. • La precondición define el conjunto de datos de entrada que se consideran validos para la función.
http://tecnoacademy.blogspot.com
• Téngase en cuenta, al expresar la postcondición, todos los casos posibles, con especial atención a los rangos vacíos (si se usan cuantificadores) y a los casos extremos, ya que la sintaxis, usada imprecisamente, puede dar lugar a equívocos y a definiciones incorrectas. Recuérdese que la postcondición debe expresar la relación que debe existir entre las variables de salida y las de entrada.
• Una vez decidida la postcondición, la precondición debe restringir los casos potencialmente erróneos, limitando el dominio de aplicación de los datos
de entrada.
• En muchos casos, debido a la naturaleza del problema (en otros, se trata tan solo de conveniencia o sencillez) la función que debemos diseñar no nos
permite realizar directamente un diseño recursivo, por lo cual deberemos especificar otra función que sí nos lo permita (es importante convencerse de este hecho que puede presentarse en multitud de ocasiones. ¿es éste el caso?).
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com
http://tecnoacademy.blogspot.com