Programación MATLAB: Programas y Funciones. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com Universidad: ITESM CEM
Tópicos 1 Operaciones relacionales y lógicos 2 Sentencias condicionales 3 Bucles 4 Ficheros de Funciones
Tópicos 1 Operaciones relacionales y lógicos 2 Sentencias condicionales 3 Bucles 4 Ficheros de Funciones
Operadores relacionales Operadores Descripción < Menos que. > Mayor que. <= Menor o igual que. >= Mayor o igual que. == Igual a. = Distinto de.
Operadores relacionales >> a = 3>9 a = 0 >> a = 3<9 a = 1 >> b = [12 5 3 ], c = [13 4 5] b = 12 5 3 c = 13 4 5 >> d = c>=b d = 1 0 1
Operadores relacionales >> A = [2 7 9; 2 5 2;4 6 8] A = 2 7 9 2 5 2 4 6 8 >> B = A<=3 B = 1 0 0 1 0 1 0 0 0
Operadores lógicos Operadores Descripción & AND: A&B. Funciona con dos operadores. El resultado es: Verdadero (1) si ambos son verdaderos, Falso (0) si almenos uno es falso. OR: A B. Funciona con dos operadores. El resultado es: Verdadero (1) si alguno de los dos es verdadero, Falso (0) si los dos son falsos. NO: A. Funciona con un operador. Da la negación del operador, es decir: Verdadero (1) si A es falso, Falso (0) si A es verdadero.
>> a = 4>0&9>0 a = 1 >> a = 4&9 a = 1 >> a = 6>0 0>0 a = 1 >> a = 6 0 a = 1 >> 20>0 ans = 0 >> 20 ans = 0 Operadores lógicos
Orden de preferencia Los operadores aritméticos, relacionales y lógicos se pueden combinar en expresiones matemáticas, Cuando una expresión tiene combinaciones de este tipo, se debe tener en cuenta el siguiente orden de preferencia establecido por MATLAB: Orden Operación 1 Paréntesis 2 Exponenciación 3 Operación lógica (NO) 4 División y multiplicación 5 Suma y resta 6 Operadores relacionales (>, <, >=, <=, ==, =) 7 Operación lógica &(AND) 8 Operación lógica (OR)
Orden de preferencia Los operadores aritméticos, relacionales y lógicos se pueden combinar en expresiones matemáticas, Cuando una expresión tiene combinaciones de este tipo, se debe tener en cuenta el siguiente orden de preferencia establecido por MATLAB: Orden Operación 1 Paréntesis 2 Exponenciación 3 Operación lógica (NO) 4 División y multiplicación 5 Suma y resta 6 Operadores relacionales (>, <, >=, <=, ==, =) 7 Operación lógica &(AND) 8 Operación lógica (OR)
>> x = 2; y = 5; >> 5<x< 1 ans = 0 >> 5<x & x< 1 ans = 1 >> ( y<7) ans = 0 >> y<7 ans = 1 >> ( ( y>=8) ( x< 1)) ans = 0 >> ( y>=8) ( x< 1) ans = 1 Orden de preferencia
Tópicos 1 Operaciones relacionales y lógicos 2 Sentencias condicionales 3 Bucles 4 Ficheros de Funciones
Sentencia condicional if-end
Salario de un trabajador %Calculo del s a l a r i o de un t r a b a j a d o r clear ; clc ; t = input ( Numero de horas trabajadas ) ; h = input ( S a l a r i o por hora en euros ) ; PagaSemanal = t h ; i f t >40 PagaSemanal = PagaSemanal + ( t 40) 0. 5 h ; end Salida =[ La paga es de, num2str ( PagaSemanal ), Euros ] ; disp ( ) disp ( Salida )
Salario de un trabajador Numero de horas trabajadas 30 S a l a r i o por hora en euros 10 La paga es de 300 Euros %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% Numero de horas trabajadas 50 S a l a r i o por hora en euros 10 La paga es de 550 Euros
Sentencia condicional if-else-end
Salario de un trabajador %Calculo del s a l a r i o de un t r a b a j a d o r clear ; clc ; t = input ( Numero de horas trabajadas ) ; h = input ( S a l a r i o por hora en euros ) ; i f t >40 PagaSemanal = t h + ( t 40) 0. 5 h ; else PagaSemanal = t h ; end Salida =[ La paga es de, num2str ( PagaSemanal ), Euros ] ; disp ( ) disp ( Salida )
Sentencia condicional if-elseif-else-end
Salario de un trabajador %Calculo del s a l a r i o de un t r a b a j a d o r clear ; clc ; t = input ( Numero de horas trabajadas ) ; h = input ( S a l a r i o por hora en euros ) ; i f t >40 PagaSemanal = t h + ( t 40) 0. 5 h ; e l s e i f t >30 PagaSemanal = t h+ ( t 30) 0. 2 h ; else PagaSemanal = t h ; end Salida =[ La paga es de, num2str ( PagaSemanal ), Euros ] ; disp ( ) disp ( Salida )
Salario de un trabajador Numero de horas trabajadas 20 S a l a r i o por hora en euros 10 La paga es de 200 Euros %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% Numero de horas trabajadas 35 S a l a r i o por hora en euros 10 La paga es de 360 Euros %%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% Numero de horas trabajadas 50 S a l a r i o por hora en euros 10 La paga es de 550 Euros
Tópicos 1 Operaciones relacionales y lógicos 2 Sentencias condicionales 3 Bucles 4 Ficheros de Funciones
Bucle for-end
Ejemplo Bucle for-end clear ; clc ; for k = 1:2:10 x = k ˆ2 end
Ejemplo Bucle for-end x = 1 x = x = x = 9 25 49 x = 81
Bucle while-end
Ejemplo Bucle while-end clear ; clc ; x = 1; while x<=15 x = 2 x end
Ejemplo Bucle while-end x = 2 x = x = 4 8 x = 16
Bucles anidados
Ejemplo Bucles anidados clear ; clc ; n = input ( Numero de f i l a s : ) ; m = input ( Numero de columnas : ) ; A = [ ] ; for k =1:n for end end disp ( ) ; disp ( A= ) ; disp (A) ; l =1:m A( k, l ) = k l ;
Ejemplo Bucles anidados Numero de f i l a s : 3 Numero de columnas : 5 A= 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15
Tópicos 1 Operaciones relacionales y lógicos 2 Sentencias condicionales 3 Bucles 4 Ficheros de Funciones
Creación de un fichero de función Los ficheros de función se crean y editan como si se trataran de ficheros de comandos (script), es decir utilizando la Ventana de Edición, La primera línea ejecutable de un fichero de función debe ser la definición de la propia función, El fichero de la función tiene que tener el mismo nombre de la función, La forma que tiene la línea de definición de la función es: function [Argumentos de Salida] = NombreFunción (Argumentos de Entrada)
Función function [ y ] = cuadrado ( x ) y=x ˆ 2 ; end
Función >> y = cuadrado ( 4 ) y = 16 >> z = cuadrado ( 5 ) z = 25