Вы находитесь на странице: 1из 9

FUNCION Gilberto Martínez Casillas

¿Qué es una función?

Función (en matemáticas): es una operación que puede tomar uno o más valores
(argumentos), y devuelve un resultado (valor de la función para los argumentos).

Por ejemplo:

F(X)= X/(1+X2)

Donde:

F es el nombre de la función

X argumento o parámetro formal

En programación…

Una función es un subprograma (módulo) que puede recibir datos y devolver


resultados, desarrollando para realizar determinada acción o conjunto de acciones
repetitivas.

Este subprograma es llamado o “invocado” desde el programa principal.

¿Para qué se usan las funciones?

Para optimizar el código de un programa, haciendo un subprograma que realice


aquellas tareas que se utilizan constantemente en el proceso.

Sintaxis:

Para una función que no requiere parámetros (datos de entrada)

function nombre_funcion()

accion1

acción_2

acción_n

endfunction
Función que requiere parámetros (datos de entrada y salida)

Function [o1, o2…] =nombre_function (i1, i2,…)

accion_1

accion_2

accion_n

endfunction

Donde: o1, o2,… variables que almacenan el resultado (argumento de salida)

function_namenombre de la función (mediante la cual se le invocará en el


programa principal)

i1, i2,…variables que almacenan los valores de entrada (valores que se


procesarán dentro de la función)

function prueba()
printf('hola')
endfunction
//Promedio de 3 números
function prom=promedio(a, b, c)
prom=(a+b+c)/3
printf('el promedio es: %d', prom)
endfunction
//Para obtener el resultado de la siguiente expresión:x^2-y^2
function y=fnExpresion(a, b)
y=a^{2}-b^{2};
endfunction
// Función que retorna 3 valores y recibe parámetros de
function [y1, y2, y3]=funcion(x, y)
y1=x+y;
y2=x-y;
y3=x*y;
endfunction
Ejemplo 5: Programa que usa dos vectores

function vec2=Vectores(vec1)

vec2(1) =vec1(1) +vec1(2) +vec1(3)

vec2(2) =vec1(1) *vec1(2) *vec1(3)

vec2(3) =vec1(1)-vec1(2)

endfunction

en consola:

vec1= [2,3,5]

vec2=Vectores(vec1)

> vec1= [2,3,5]

vec1 =
2. 3. 5.

--> vec2=Vectores(vec1)

vec2 =

10.

30.

-1.

Ejemplo 6: Realice el programa que resuelva la siguiente ecuación y grafíquela


(3D)

Z=2x2+y2

Donde z es la variable del resultado de la función.

Genere un vector de datos para “x” y un vector de datos para “y”.

Algoritmo:

Detectar cuántos valores se requieren de entrada y cuántos de salida.

Codificar la función con la representación de la fórmula.

Si es gráfica 3D, generar un vector para coordenadas “x” y uno para “y”.

Igualar la coordenada “z” a la función Graficar.

Código:

function z=funciongraf(x,y)

z=2*x^2+y^2;
endfunction

x=linspace (-1,1,100);

y=linspace (-2,2,100);

z=feval(x,y,funciongraf)’;

plot3d(x,y,z);

//surf(a,b,z)

Invocación o llamado de funciones

En un mismo archive o script. sce. Se crean la definición de la función en la parte


superior del programa (header), y se invocan en la parte inferior (body). (SciNotes)

En diferentes archivos. El subprograma de las funciones debe guardarse con


extensión. sci, para que pueda ser llamado en el programa principal. sce

exec (‘misfunciones.sci’, -1),

Ejemplo 7:
function [r]=multiplicar(a, b)
r=a*b
printf("el resultado de la multiplicación es:%d",int32(r))
endfunction
//función división
function [r]=division(a, b)
r=a/b
printf("el resultado de la division es:%f",double(r))
endfunction
//por lo general las funciones se escriben (definen) en la cabeza del programa
(parte superior),ya que deben estar en cargadas la memoria de la computadora
antes de ser utilizadas
//PROGRAMA PRINCIPAL
disp("Menu del programa principal")
disp("*operaciones disponibles*")
disp("1.Suma")
disp("2.Multiplicación")
disp("3.División")
disp("4.Terminar")
ope=input("Qué operación deseas hacer?")
while(int32(ope)<4)&(int32(ope)>0)
a=input("Valor de la variable a:");
b=input("Valor de la variable b:");
if int32(ope)==1 then
[r]=suma(a,b); //aquí se ejecuta la función
elseif int32(ope)==2 then
[r]=multiplica(a,b);
elseif int32(ope)==3 then
[r]=division(a,b);
end
disp("");
ope=input("Qué operación deseas hacer?");
end
disp("el programa ha terminado!");

Menú del programa principal

*operaciones disponibles*

1.Suma

2.Multiplicación

3.División
4.Terminar

Qué operación deseas hacer?

Valor de la variable a:

--> 2

Valor de la variable b:

el resultado de la suma es:5

RECOMENDACIÓN: cuando requieran comparar dos valores enteros, usar la


función int32(variable)
TAREA

EJERCICIO1: Realice un programa con funciones que realice la conversión de


pesos a dólares.

//Se tienen 50 pesos y se reparte entre dos personas. Se desea conocer la


cantidad que le corresponde a cada persona en dólares. Considere el valor de un
dólar como 20 pesos mexicanos.

function [r]=multiplicar(a, b)
r=a*b
printf("el resultado de la multiplicación es:%d",int32(r))
endfunction
//función división
function [r]=division(a, b)
r=a/b
printf("el resultado de la division es:%f",double(r))
endfunction
disp("Menu del programa principal")
disp("*operaciones disponibles*")
disp("1.Multiplicación")
disp("2.División")
disp("3.Terminar")
ope=input("Qué operación deseas hacer?")
while(int32(ope)<3)&(int32(ope)>0)
a=input("Valor de la variable a:");
b=input("Valor de la variable b:");
if int32(ope)==1 then
[r]=multiplica(a,b);
elseif int32(ope)==2 then
[r]=division(a,b);
end
disp("");
ope=input("Qué operación deseas hacer?");
end
disp("el programa ha terminado!");

Menú del programa principal

*operaciones disponibles*

1.Multiplicación
2.División

3.Terminar

Qué operación deseas hacer?2

Valor de la variable a:50

Valor de la variable b:2

el resultado de la división es:25.000000

Qué operación deseas hacer?2

Valor de la variable a:25

Valor de la variable b:20

el resultado de la división es:1.250000

Qué operación deseas hacer?3

el programa ha terminado!

//A cada persona le corresponde 1.25 dólares.

Вам также может понравиться