Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Edwin Chávez
Edwin
palabra function
Chávez Ramírez
Ficheros de programa no constituyen funciones y se construye mediante
una secuencia de comandos se ejecuta tecleando el nombre sin extensión y
se le conoce como script.
Ramírez
Ejemplo1: Ejemplo1.1
function temp_c=convert(temp_f); % ESTE ES UN SCRIPT
%CREAR UNA FUNCION % PASA DE GRADOS ºF A ºC
% PASA DE GRADOS ºF A ºC temp_f=68;
temp_c=5/9*temp_f-5/9*32; temp_c=5/9*temp_f-5/9*32;
end temp_c
SCRIPTS
Un script se define mediante un archivo- m, el cual esta formado por un
conjunto de sentencias pero no tiene la cualidad de ser una función como
y = sin(x) que posee argumentos de salida.
FUNCIONES
Una función se define mediante un archivo- m, cuyo nombre coincide con
Edwin Chávez
Edwin
disp(‘El algoritmo no ha convergido’)
Chávez Ramírez
menu: genera un menú que permite al usuario elegir entre distintas opciones
opcion=menu( ‘titulo del mensaje’,’opcion1’,...’opcionp’ )
Ramírez
error: informa de la existencia de un error y detiene la ejecución del
programa devolviendo el control al teclado
PROGRAMACIÓN________________________________
Programación de funciones
La primera línea es ejecutable y empieza por la palabra function de la forma
function arg_salida=nombre_funcion(arg_entrada)
Edwin Chávez
Edwin
tratase de un fichero programa
El fichero se debe guardar con nombre_funcion.m
Chávez Ramírez
Para devolver el control al programa desde cualquier punto de una función
basta con escribir la sentencia return
Ramírez
Ejemplo2:Construir una función que defina para un gas ideal la temperatura
dependiendo de la presión y el volumen
PROGRAMACIÓN________________________________
function t=gases(p,v,n)
%t=gases(p,v,n)
%funcion que considera la ley de los gases ideales
%Argumentos de entrada:
%presion p (atmosferas)
Edwin Chávez
Edwin
%volumen v (litros)
%número de moles n
Chávez Ramírez
%Argumentos de salida:
%temperatura t (grados kelvin)
%R=0.0821 atm.litro/mol.grado
Ramírez
R=0.0821
t=p*v/(n*R);
end
Edwin Chávez
Edwin
con datos existentes en el espacio de trabajo.
• Las variables de una función son locales de la función y las de un
script son globales.
Chávez Ramírez
• Si queremos que una variable “a” sea compartida por varias
funciones, a debe definirse en todas ellas como global.
Ramírez
global variable
echo escribe cada comando del fichero sobre la pantalla
pause detiene la ejecución hasta pulsar una tecla
keyboard idem y además permite al usuario intercalar comandos, la
ejecución retornará con return
PROGRAMACIÓN________________________________
Edwin Chávez
Edwin
nargout devuelve el número de argumentos de salida
con los que el usuario ha llamado a la función
Chávez Ramírez
nargchk chequea si el número de argumentos de entrada
calculados con nargin esta entre el valor máximo y
Ramírez
mínimo previsto, si no da error.
nargchk(mínimo,máximo,número_entrada)
PROGRAMACIÓN________________________________
Operadores relacionales y lógicos
Menor: <
Menor o igual:<=
Mayor: >
Mayor o igual: >=
Edwin Chávez
Edwin
Igual: ==
Distinto: ~=
Chávez Ramírez
O: |
Y: &
no: ~
Ramírez
El resultado de realizar operaciones relacionales o lógicas será un 1 si
es verdadera o un 0 si es falsa
PROGRAMACIÓN________________________________
Estructuras de control condicionadas
if
Edwin Chávez
Edwin
if if
elseif
if
else elseif
else
Chávez Ramírez
end
end end
end
Ramírez
Ejemplos
Diseñe un script que permita calcular una de las operaciones entre
suma, resta multiplicación y división de dos números
Edwin Chávez
Edwin
a=input('ingresa a: ');
a=input('ingresa b: ');
op=menu('Elegir','suma','resta','producto','divi
Chávez Ramírez
sion');
if op==1
fprintf('%f + %f =%f\n',a,b,a+b);
Ramírez
end
if op==2
fprintf('%f - %f =%f\n',a,b,a-b);
end
if op==3
fprintf('%f * %f =%f\n',a,b,a*b);
end
if op==4
fprintf('%f / %f =%f\n',a,b,a/b);
end
Ejemplo
Determinar si una persona es adulta o menor de edad
inicio
escribir “Ingrese edad”
leer edad
si edad>=18 entonces
Edwin Chávez
Edwin
escribir “La persona es adulta”
si_no
escribir “La persona es menor de edad”
Chávez Ramírez
fin_si
fin
Ramírez
% Identifica si es mayor de edad o menor de edad
a=input('ingresa la edad: ');
if a>=18
disp(‘La persona es mayor de edad’);
else
disp(‘La persona es menor de edad’);
end
Ejemplos
Diseñe una función que permita verificar si los valores ingresados
forman o no un triángulo rectángulo, además verificar el número y
coherencia de los argumentos
function r=triangulo(a,b,c);
Edwin Chávez
Edwin
if nargin ~= 3
error('Número de argumentos incorrecto, debe ser 3 datos');
end
Chávez Ramírez
if ~isempty(find([a b c]<0))
error('Valores inconsistentes de algún lado');
Ramírez
end
if (a^2==b^2+c^2)
disp('Es un triangulo rectangulo');
elseif (b^2==a^2+c^2)
disp('Es un triangulo rectangulo');
elseif (c^2==a^2+b^2)
disp('Es un triangulo rectangulo');
else
disp('No es un triangulo rectangulo');
end
end
PROGRAMACIÓN________________________________
Edwin Chávez
Edwin
comandos_0 que deben ejecutarse
case expresion_1
comandos_1 que deben ejecutarse
Chávez Ramírez
case expresion_2
comandos_2 que deben ejecutarse
Ramírez
otherwise
comandos escoba que deben ejecutarse
end
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Al ejecutarlo tenemos:
>> [cond,tipo]=reporte(14)
cond =
Aprobado NOTA
tipo = Una variante donde es posible entrar
Bueno notas decimales y que el programa lo
redondee y por ejemplo si Ud.
Edwin Chávez
Edwin
Introduce 10.5 daría de resultado
>> [cond,tipo]=reporte(7)
Aprobado – Regular, diseñe la
cond =
Chávez Ramírez
variante, como un ejercicio.
Desaprobado
tipo =
Malo
Ramírez
>> [cond,tipo]=reporte(10.7)
??? Error using ==> reporte
Incorrecto, debe ser un numero entero
>> [cond,tipo]=reporte(24)
??? Error using ==> reporte
Nota incorrecta, debe ser de 0 .. 20
Ejercicio
Desarrollar un script que solicite un valor del día entre 1 y 7 y se muestre el
nombre del día, tenemos el siguiente algoritmo:
inicio
Edwin Chávez
Edwin
escribir “Ingrese un valor entre 1 y 7”
leer día
Chávez Ramírez
según_sea día hacer
caso 1: escribir “Lunes”
caso 2: escribir “Martes”
Ramírez
caso 3: escribir “Miércoles”
caso 4: escribir “Jueves”
caso 5: escribir “Viernes”
caso 6: escribir “Sábado”
caso 7: escribir “Domingo”
en_otro_caso: escribir “Error”
fin_según
fin