Jorge Caro - ESI 2009/2010 Informática Aplicada
Informática Aplicada
TEMA 8:
FUNCIONES
Jorge Caro - ESI 2009/2010 Informática Aplicada
1.- CONCEPTOS
Permiten desarrollar algoritmos y códigos modulares, mejorando la legibilidad. Son reutilizablespor lo que pueden incorporarse a diagramas distintos, descargando de trabajo al programador que puede echar mano de funciones ya hechas y probadas. Concepto
Funciones
conjunto de órdenes que lleva a cabo una tarea precisa.
Se utiliza dentro de un programa como si se tratara de una orden.
Calcula resultados a partir de los datos que se le suministran explícitamente.
Ejemplo: función sin()de MATLAB. oCumple los tres elementos anteriores
1.- CONCEPTOS
Concepto Datos y Resultado
En matemáticas una función f:
Calcula un valor (variable dependiente y) a partir de otro dado (variable independiente x).
x e y pueden ser escalares, vectores o matrices. Las funciones en el ámbito informático:
Se le suministran unos datos: argumentos. Devuelven un resultado.
Ejemplo: la ejecución de y = sin(x) en MATLAB provoca: El cálculo mediante la función sin del seno del dato, que
Jorge Caro - ESI 2009/2010 Informática Aplicada
Globales Locales
Persistentes (las globales son así) Efímeras (con persistent las variables locales se transforman en persistentes)
Variables que existen sólo dentro de una función. Son efímeras:
Son creadas al llamar a la función y desaparecen al terminar la ejecución de la función.
No conservan su valor de una llamada a la siguiente.
Pueden hacerse persistentes pero no lo haremos Fuera de la función esas variables no tienen existencia. Por ello puede haber otras variables con el mismo nombre. 2.- VARIABLES
Clasificación
Variables locales
Jorge Caro - ESI 2009/2010 Informática Aplicada
Se indica el uso de funciones mediante el bloque subprograma. Dentro del mismo:
Se usará notación matemática para indicar el envío de argumentos.
Se utilizará una asignación para indicar la recogida de los valores de las variables resultado.
Operan con valores formales o ficticios: los argumentos.
3.- DIAGRAMA DE FLUJO Y FUNCIONES
Las funciones tienen una tabla de objetos propia. Los módulos no.
El diagrama de flujo de una función lleva asociado su propia tabla con:
Variables y constantes propias de la función. Argumentos y resultados.
Las funciones se pueden utilizar en cualquier algoritmo, mientras que los módulos van asociados a un algoritmo concreto.
Jorge Caro - ESI 2009/2010 Informática Aplicada
5.- FUNCIONES EN MATLAB
Función que calcule la multiplicación de dos números. y = a * b
function [prod] = producto (a, b) prod = a*b;
Jorge Caro - ESI 2009/2010 Informática Aplicada
6.- EJEMPLOS Ejemplo 1
Calcule la media de los valores absolutos de a y b. Para ello cree la función Vabs().
Ejemplo 2
Se desea calcular r = P(z) para un número real z leído desde el teclado, siendo P
( )
x=1−x+4x3+x6−x9Ejemplo 3
Se desea calcular r = Q(z) para un número real z y un número natural leído desde el teclado, siendo
( )
n x x x x x Q n + + + + = ... 3 2 3 2 6.- EJEMPLOS Ejemplo 1Jorge Caro - ESI 2009/2010 Informática Aplicada
6.- EJEMPLOS Ejemplo 1
Jorge Caro - ESI 2009/2010 Informática Aplicada
6.- EJEMPLOS Ejemplo 2
6.- EJEMPLOS Ejemplo 2
Jorge Caro - ESI 2009/2010 Informática Aplicada
6.- EJEMPLOS Ejemplo 3
Jorge Caro - ESI 2009/2010 Informática Aplicada
6.- EJEMPLOS Ejemplo 3
7.- EJERCICIOS PROPUESTOS Ejercicio 1
Realice el diagrama de flujo de una función que calcule el valor xysiendo x un número real y siendo y un número entero que puede ser positivo, negativo o cero. Ejercicio 2
Realice el diagrama de flujo de una función que evalúe el polinomio genérico de grado n dado por
P(x) = a1xn+a2xn-1+…+ anx1+ an+1x0
siendo n un entero (n>0) y siendo los coeficientes del polinomio los elementos de un vector
Jorge Caro - ESI 2009/2010 Informática Aplicada
7.- EJERCICIOS PROPUESTOS Ejercicio 1
Objeto Nombre Valor Tipo
Argumento x variable real Argumento y variable entera
Resultado r variable real
Variable Auxiliar base variable real Variable Auxiliar exp variable entera
Contador k variable entera 1 constante entera 0 constante entera
Jorge Caro - ESI 2009/2010 Informática Aplicada
7.- EJERCICIOS PROPUESTOS Ejercicio 2
Inicio del cálculo de r como P( a, x, n)
Fin del cálculo de r como P( a, x, n) ¿ k ≤n+1 ?
k ←1
k ←k+1 no sí
suma ←suma + ak·Pot(x, exp) suma ←0
r ←suma exp ←n-k+1
Objeto Nombre Valor Tipo
Argumento. Punto x variable real
Argumento. Vector de coeficientes a variable
vector de reales
Argumento. Grado del polinomio n variable entera
Resultado r variable real
Variable auxiliar exp variable entera
Índice k variable entera
1 constante entera
0 constante entera
Función para calcular x^y Pot(x,y)
devuelve un valor real 7.- EJERCICIOS PROPUESTOS
Jorge Caro - ESI 2009/2010 Informática Aplicada
7.- EJERCICIOS PROPUESTOS Ejercicio 2
Jorge Caro - ESI 2009/2010 Informática Aplicada
7.- EJERCICIOS PROPUESTOS Ejercicio 3
Se ha de realizar un programa que lea dos vectores de R3 y calcule y escriba el coseno del ángulo que forman.
Leer A Leer B
a ←Mod(A,3) b ←Mod(B,3) c ←ProdEsc(A,B,3)
Inicio Inicio calculo de r como ProdEsc (A,B,n) suma ←0 ¿ k ≤n ? k ←1 suma ←suma + (A(k)*B(k)) NO SI 7.- EJERCICIOS PROPUESTOS
Jorge Caro - ESI 2009/2010 Informática Aplicada Leer A Leer B a ←Mod(A,3) b ←Mod(B,3) c ←Mod(B-A,3) Cos←(a^2+b^2-c^2)/(2*a*b) Fin
Inicio Inicio calculo de r como Mod (A,n) suma ←0 ¿ k ≤n ? k ←1 suma ←suma + Pot(A(k),2) k ←k+1 r ←sqrt(suma) NO SI 7.- EJERCICIOS PROPUESTOS
Ejercicio 3 (teorema del Coseno)
Fin calculo de r como Mod (A,n)