gerson

Páginas: 6 (1451 palabras) Publicado: 26 de noviembre de 2014
Desarrollo:
Consideremos el siguiente problema. Dados dos números reales a y b, evaluar el valor de la siguiente expresión:
f(f(f(a))+f(f(b))), 
donde  f es el polinomio f(x)=x5+1.
Es fácil hacer un programa que evalúe el polinomio f usando un ¨for¨:

Es fácil hacer un programa que evalúe el polinomio f usando un ¨for¨:
y := 1;
for i := 1 to 5 do
y := y * x;
y := y + 1;
Otra formamás sencilla es:

y := x * x * x * x * x + 1;
Sin embargo, evaluar una expresión como la de arriba es mucho más engorroso, pues hay que repetir la evaluación del polinomio e ir guardando los resultados intermedios.
Por otra parte, si reemplazamos la función f por la función raíz cuadrada, podemos evaluar la expresión fácilmente en Pascal, pues existe la función ¨Sqrt¨:

expr :=Sqrt(Sqrt(Sqrt(a)) + Sqrt(Sqrt(b)));

Nos gustaría poder hacer lo mismo pero ocupando el polinomio f, y en general, con cualquier función que deseemos.
Definición de funciones
En programación, una función es una sección de un programa que calcula un valor de manera independiente al resto del programa.
En esencia, una función es un mini programa: tiene una entrada, un proceso y una salida.


Unafunción tiene tres componentes importantes:
los parámetros, que son los valores que recibe la función como entrada;
el código de la función, que son las operaciones que realiza la función; y
el resultado o valor de retorno, que es el valor final que entrega la función.
En un programa Pascal, las funciones deben ser definidas antes del ¨begin¨ que indica el comienzo del programa.
La sintaxis paradefinir una función es la siguiente:
function {nombre}({parámetro}: {tipo}; ...): {tipo del resultado};
var
{variables locales}
begin
{código de la función}
end;
(La sección ¨var¨ es opcional). Por ejemplo, el polinomio f  que declaramos más arriba podemos escribirlo como una función de la siguiente manera:
function F(x: Real): Real;
begin
F := x * x * x * x * x + 1;
end;
Estafunción tiene el nombre F, un parámetro x de tipo real, y un resultado de tipo real.
El resultado es indicado dentro de la función asignando su valor al nombre de la función.
Una vez que se ha definido la función, puede ser utilizada todas las veces que se desee en un programa. Se le denomina llamar la función a ocupar la función para obtener un valor. Por ejemplo, las siguientes son todasllamadas válidas de la función F, junto con sus resultados:

F(0); {→ 1.0}
F(-1.1 * 0.5); {→ 0.9496715625}
F(F(1.0)); {→ 33.0}
a := -1.0;
F(a * F(a)) {→ 1.0}
El programa completo que calcula la expresión que definimos al principio para dos valores a y b ingresados por el usuario es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program FuncionF;
vara, b: Real;

function F(x: Real): Real;
begin
F := x * x * x * x * x + 1;
end;

begin
Write('Ingrese a y b: ');
Read(a, b);
WriteLn(F(F(F(a)) + F(F(b))):3:3);
end.
Funciones que usan funciones
Ahora supongamos que queremos reemplazar la función ¨g¨  por el polinomio h(x)=x99−5x79+10x59−5x29+1.
Si definimos una función ¨H¨, esto requerirá calcular cuatro productoscomo los que calculamos en la función ¨G¨. Para evitar tener que escribir código repetido, podemos escribir una nueva función ¨Potencia (x, n) ¨ qué calcule .

function Potencia(x: Real; n: Integer): Real;
var
i: Integer;
resultado: Real;
begin
resultado := 1;
for i := 1 to n do
resultado := resultado * x;
Potencia := resultado;
end;



El programa completosería el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program FuncionH;
var
a, b: Real;

function Potencia(x: Real; n: Integer): Real;
var
i: Integer;
resultado: Real;
begin
resultado := 1;
for i := 1 to n do
resultado := resultado * x;
Potencia := resultado;
end;

function H(x:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Gerson
  • Gerson
  • Gerson
  • gerson
  • gerson
  • gerson
  • Gerson
  • gerson

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS