Funciones Scilab
Funciones Scilab
Funciones Scilab
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
En programación…
Sintaxis:
function nombre_funcion()
accion1
acción_2
acción_n
endfunction
Función que requiere parámetros (datos de entrada y salida)
accion_1
accion_2
accion_n
endfunction
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(3) =vec1(1)-vec1(2)
endfunction
en consola:
vec1= [2,3,5]
vec2=Vectores(vec1)
vec1 =
2. 3. 5.
--> vec2=Vectores(vec1)
vec2 =
10.
30.
-1.
Z=2x2+y2
Algoritmo:
Si es gráfica 3D, generar un vector para coordenadas “x” y uno para “y”.
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)
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!");
*operaciones disponibles*
1.Suma
2.Multiplicación
3.División
4.Terminar
Valor de la variable a:
--> 2
Valor de la variable b:
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!");
*operaciones disponibles*
1.Multiplicación
2.División
3.Terminar
el programa ha terminado!