Operadores Relacionales y Lógicos Estructura de Control: if-then-else Estructura de Repetición: while Taller de Informática I DC - FCEyN - UBA 26 de agosto de 2015 Taller de Informática I 26 ago 2015 La respuesta true o false ó en Matlab es 1 o 0 Cuando escriba: >> 2 > 3 ans = 0 Taller de Informática I 26 ago 2015 Relaciones de orden y Comparaciones entre variables Se mencionó la asignación como una operación del tipo: >>a =5; >>b =9; Taller de Informática I 26 ago 2015 Operadores Relacionales Operador < > <= >= == ∼= Debe leerse como menor que mayor que menor que o igual a mayor que o igual a igual comparado distinto comparado Taller de Informática I 26 ago 2015 Ejemplos >> A=20:29 A = 20 21 29 22 >> B= f l i p l r (A) B = 29 28 27 20 >> S=(A==B) S = 0 0 0 >> S2=(A˜=B) S2 = 1 1 1 1 23 24 25 26 27 28 26 25 24 23 22 21 0 0 0 0 0 0 1 1 Taller de Informática I 1 26 ago 2015 1 1 0 1 Operadores Lógicos Operador & | ∼ Taller de Informática I y o negación 26 ago 2015 AND & 0 1 0 0 0 1 0 1 OR | 0 1 Taller de Informática I 0 0 1 1 1 1 26 ago 2015 NOT 0 1 ∼ 1 0 Tabla de verdad NOT ((A > B)AND(A < B)) A 1 1 0 0 B 1 0 1 0 A>B 0 1 0 0 A<B 0 0 1 0 AND 0 0 0 0 Taller de Informática I NOT 1 1 1 1 26 ago 2015 Resolución en Matlab >> A=[1 1 0 0 ] A = 1 1 0 0 >> B=[ 1 0 1 0 ] B = 1 0 1 0 >> A<B ans = 0 0 1 0 >> A>B ans = 0 1 0 0 0 0 0 >> ˜ (A>B & A<B) ans = 1 1 1 1 >> A>B & A<B ans = 0 Taller de Informática I 26 ago 2015 Ejemplos Operadores Lógicos y Relacionales >> A = 5 : 5 : 5 0 ; B = f l i p l r (A) ; >> d i s p ( ˜A>3) % a t e n c i o n con l a p r e c e d e n c i a de l o s o p e r a d o r e s . 0 0 0 0 0 0 0 0 0 0 >> d i s p ( ˜ ( A>3) ) 0 0 0 0 0 0 0 0 0 0 >> d i s p ( ˜ ( A>=30) ) 1 1 1 1 1 0 0 0 0 0 Taller de Informática I 26 ago 2015 Estructura de Control: if-then-else Es una estructura de control que de acuerdo al valor de verdad de una EXPRESIÓN LÓGICA realiza o no cierta acción. Hay tres maneras de expresar los condiconales: if if i f expresion logica sentencias end expresion logica sentencias else sentencias end Taller de Informática I 26 ago 2015 expresion logica sentencias e l s e i f expresion logica sentencias . . else sentencias end Ejemplo a=r a n d ; i f a >=0.5 disp ( ’ el valor else disp ( ’ el valor end a l e a t o r i o e s mayor o i g u a l que 0 . 5 ’ ) a l e a t o r i o e s menor que 0 . 5 ’ ) Taller de Informática I 26 ago 2015 Ejemplo: n es divisible por 2? rem(n,m) n =67; i f rem ( n , 2 )==0 d i s p ( ’ n es d i v i b l e por 2 ’ ) else d i s p ( ’ n no e s d i v i s i b l e p o r 2 ’ ) end Taller de Informática I 26 ago 2015 Ejercicio: n es divisible por 2 y 3 o por 2 o por 3 o por ninguno de ellos n=42 i f rem ( n , 2 )==0 & rem ( n , 3 ) ==0 d i s p ( ’ d i v por 2 y por 3 ’ ) e l s e i f rem ( n , 2 ) ==0 d i s p ( ’ d i v por 2 ’ ) e l s e i f rem ( n , 3 ) ==0 d i s p ( ’ d i s p por 3 ’ ) else d i s p ( ’NO e s d i v n i p o r 2 n i p o r 3 ’ ) end Transformar en una función llamada divible23 que tenga como entrada 1 número n y decida si es divisible por 2 o por 3 o por los dos o por ninguno. Taller de Informática I 26 ago 2015 Dar una función que dado un número n decida si n es divisible por 2 y 3 o por 2 o por 3, por ninguno rem función divible23 que tiene un entero n como entrada y decide si es divisible por 2 o por 3 o por los dos o por ninguno. function d i v i s i b l e 2 3 (n) i f rem ( n , 2 )==0 & rem ( n , 3 ) ==0 d i s p ( ’ d i v por 2 y por 3 ’ ) e l s e i f rem ( n , 2 ) ==0 d i s p ( ’ d i v por 2 ’ ) e l s e i f rem ( n , 3 ) ==0 d i s p ( ’ d i s p por 3 ’ ) else d i s p ( ’NO e s d i v n i p o r 2 n i p o r 3 ’ ) end end Taller de Informática I 26 ago 2015 Estructura de Repetición: while Es una estructura de repetición que ejecuta de acuerdo al valor de verdad de una EXPRESIÓN lÓGICA hasta que esta no se cumpla más. Para ellos es necesario establecer una expresión lógica que NO se cumpla en algún paso sino no pararı́a nunca, por lo tanto es importante tener un CONTADOR. while expresion logica sentencias end Taller de Informática I 26 ago 2015 Ejemplo: generar un vector de n números enteros entre 10 y 20 y decir en que indices hay múltiplos de 2 n=10 V=r o u n d ( r a n d ( 1 , n ) ∗(20 −10) +10) ;% g e n e r o e l v e c t o r de e n t e r o s tam=l e n g t h (V) ;%v e o h a s t a que t a m a n i o r e c o r r e r i =1; %u s o un i n d i c e while i <=tam i f rem (V( i ) , 2 )==0 m1= ’ e l indice ’ ; %armo p r i m e r s t r i n g i n d=n u m 2 s t r ( i ) ; %c o n v i e r t o a s t r i n g a l i n d i c e i m2= ’ e s d i v i s i b l e p o r 2 ’ ; % armo s e g u n d a c a d e n a sms=s t r c a t (m1 , i n d , m2) ; %armo e l m e n s a j e d i s p ( sms ) ; %m u e s t r o e l m e n s a j e end i=i +1; % aumento e l i n d i c e end V Convierta a una función que tenga como entrada n. Taller de Informática I 26 ago 2015 Preguntas Taller de Informática I 26 ago 2015