Clase 4 - Mfile - IF - Preuniversitario| Ciudad de San Felipe

Anuncio
Informática
– PRE-Universitario Ciudad de San Felipe –
6to Ingeniería
Clase 4 – M-file – Interacción con usuario - Estructuras de decisión IF
Escribir archivos “.m”
Los archivos “.m” son útiles para el caso en que uno quiera repetir un cálculo, si no hacemos
uno de estos archivos deberíamos repetir todo el código cada vez que queremos hacer un
cambio. En cambio si hacemos un archivo “.m” solo cambiamos lo que necesitamos y lo
volvemos a llamar.
Para usar estos archivos simplemente se escribe el nombre del archivo en la línea de
comandos y se ejecuta todo el código que se escribió en el archivo.
Ejemplo: el problema de calcular el volumen de un cilindro, el código de Matlab sería
>>r=2.5;
>>h=10;
>>v=pi*r^2*h;
si ahora queremos repetir el cálculo para un cilindro de radio 3 tendríamos que escribir
>>r=3;
>>h=10;
>>v=2*pi*r^2*h;
Sería mejor hacer un nuevo M-File. Para esto vamos a File-New o hacemos clic en la hojita en
blanco. Luego copiamos el código y lo guardamos con el nombre “cilindro”
r=2.5;
h=10;
v=pi*r^2*h;
h
Para que se ejecute el código deberíamos escribir en la línea de comando
>>cilindro
Si quisiéramos repetir el calculo para r=3 modificamos el archivo poniendo r=3 y para correrlo
de nuevo escribimos
>>cilindro
con lo cual nos ahorramos muchas líneas de código (sobre todo si lo pensamos en un
programa de 150 líneas)
En resumen:
La elaboración de un programa para Matlab es muy sencilla. Basta abrir un documento de texto
(se puede hacer con cualquier editor, Matlab trae uno incorporado), escribir las instrucciones tal
como se pondrían en la ventana de comandos y guardar el documento con la extensión .m (por
ejemplo: miprograma.m). Luego para hacer funcionar, “correr” el programa, simplemente se
pone en la ventana de comandos el nombre del programa. Si en la ventana de comandos se
introduce
>>miprograma
las órdenes almacenadas en el fichero miprograma.m se ejecutarán, una tras otra. A ese
recorrido a través de las instrucciones se le conoce con el nombre de flujo. Los comandos de
un programa se denominan también sentencias.
Informática
– PRE-Universitario Ciudad de San Felipe –
6to Ingeniería
El hecho de guardar una serie de instrucciones (el código) en un fichero tiene de por sí algunas
ventajas: evita el repetir las órdenes en la ventana de comandos. Pero la potencia de un
programa se pone de manifiesto si en él se contienen instrucciones que controlan qué
sentencias se ejecutan en cada circunstancia. Así, un programa puede "decidir", llegado a un
punto, ejecutar unos comandos u otros en función del valor que tome una variable, por poner
un caso.
Interacción con el usuario
El programa interactúa con el usuario cuando loe pide datos o cuando le muestra resultados,
mensajes, etc. Se verá a continuación una forma sencilla de leer variables desde teclado y
escribir mensajes en la pantalla del PC.
La función input permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar
como valor de retorno un valor numérico o el resultado de una expresión tecleada por el
usuario. Después de imprimir el mensaje, el programa espera que el usuario teclee el valor
numérico o la expresión. Cualquier expresión válida de MATLAB es aceptada por este
comando. El usuario puede teclear simplemente un número, vector o una matriz. En cualquier
caso, la expresión introducida es evaluada con los valores actuales de las variables de
MATLAB y el resultado se devuelve como valor de retorno. Véase un ejemplo de uso de esta
función:
n = input ('Teclee el número de ecuaciones')
La función disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero
sin imprimir su nombre. Considérense los siguientes ejemplos de cómo se
utiliza:
disp('El programa ha terminado')
A veces el disp sirve para mostrar valores de las variables y quizás lo hace de una forma mas
prolija. Mira la diferencia:
>> a = 2*4;
Poniendo el nombre de la variable, muestra en nombre de nuevo y queda algo desprolijo
>> a
a=
8
Usando disp sólo muestra el resultado
>> disp(a)
8
Todos los textos que se escriben en pantalla deben ir entre comillas, pero la comilla que
se usa es la que corresponde a la tecla que tiene el signo de interrogación de cierre de
pregunta.
Informática
– PRE-Universitario Ciudad de San Felipe –
6to Ingeniería
Control de flujo
Se le llama Control de flujo al proceso de toma de decisiones. Antes de ponerse a escribir el
programa, sobre todo si es un poco largo o complejo, es útil trazar un esquema, en lenguaje
corriente, de lo que se quiere hacer. A eso se le denomina un diagrama de flujo. Si lo que se
pretende está claro, escribir el programa se reduce a traducir el diagrama de flujo del castellano
al lenguaje de Matlab.
Veamos un caso simple. Construyamos el diagrama de flujo de un programa que escoja un
número al azar del 0 al 9 y nos pida que lo adivinemos. Una vez escogido el número, el
programa debe informar si hemos acertado o no. El diagrama de flujo correspondiente es
Condiciones
Son las preguntas básicas a las que se puede responder sí o no. Para implementar el control
del flujo, son muy útiles unas expresiones que permiten comparar dos variables entre sí o una
variable con un valor fijo. En un programa, a veces es necesario preguntarse: ¿es x mayor que
y? Pues si x es mayor que y, entonces ..., y si no, ... ; o bien: caso de que la variable x sea
menor que cero, hacer tal cosa.
Las condiciones se construyen con operadores relacionales, como son los siguientes:
>
<
==
~=
<=
>=
mayor que
menor que
igual que
diferente que
menor o igual que
mayor o igual que
Una condición, como se ha indicado, sólo admite dos respuestas: verdadero o falso. Así, a la
pregunta ¿es x mayor o igual que y?, que en el lenguaje de Matlab se expresa x>=y, sólo
caben dos respuestas posibles: sí, es cierto, x es mayor o igual que y; o bien, no, es falso, x no
es mayor o igual que y.
Las relaciones pueden conectarse o cuantificarse por los operadores lógicos.
Informática
– PRE-Universitario Ciudad de San Felipe –
&
|
~
6to Ingeniería
y
o
no
Observaciones. La primera: el operador relacional igual que se construye con dos símbolos
==. El motivo es el siguiente: si se escribe x=3, el resultado es que se le asigna a x el valor 3.
No se hace ninguna pregunta. Si lo que se desea es preguntar ¿es x igual a 3?, no se puede
escribir x=3, pues en este caso x tomaría el valor 3, independientemente de lo que valiera
antes. En cambio, x==3 es el análogo en lenguaje informático a la pregunta: ¿es x igual a 3?.
Tras la pregunta x==3 la variable x sigue valiendo lo mismo que antes.
La segunda: El tilde ~ del operador diferente se consigue apretando la tecla Alt y -sin soltarlaescribiendo con el teclado el número 126.
Ramificaciones
Dependiendo de una condición, el programa decide el curso que seguirá
El resultado de una condición permite tomar una decisión, es decir, si la condición es verdadera
se ejecutan determinadas sentencias. El diagrama de flujo se ramifica:
Ramificación if
La ramificación más simple, expresada en este diagrama de flujo, se obtiene con la siguente
sintaxis:
if (condición)
sentencias
end
Existe la posibilidad de ejecutar ciertas sentencias si la condición es verdadera, y otras
diferentes si la condición es falsa:
if (condición)
sentencias A
else
sentencias B
end
Informática
– PRE-Universitario Ciudad de San Felipe –
6to Ingeniería
dicho de otra manera: si la condición se cumple, se ejecutan las sentencias A; si no, se
ejecutan las sentencias B.
Diagrama de flujo de una ramificación if / else
Una vez se hayan ejecutado las sentencias que correspondan (las sentencias A si la condición
es verdadera, las sentencias B en caso contrario) el programa continúa con las instrucciones
que vengan después de end.
Es de señalar que las ramificaciones se pueden anidar (una condición dentro de otra: dentro de
las sentencias A o de las sentencias B en el anterior diagrama de flujo). El código se vuelve
más complejo. También se pueden construir ramificaciones con varias posibilidades: la sintaxis
hace uso de las palabras clave if / elseif / elseif / ... / else / end.
if (condición)
sentencias A
elseif (condición)
sentencias B
else setencias C
end
Este ejemplo se puede usar para saber si un número es mayor, menor, o igual a otro.
Algunos ejemplos:
Ejemplo: decidir si un numero es mayor que 10
n=input(‘ingrese el numero?:’);
if n>10
disp(‘mayor que 10’)
else
disp(‘menor o igual a 10’)
end
Ejemplo: decidir si un numero es par o impar
n=input(‘ingrese el numero?:’);
if rem(n,2)==0
disp(‘par’)
else disp(‘impar’)
Informática
– PRE-Universitario Ciudad de San Felipe –
end
Ejemplo de uso de if/elseif
nro = input('Ingrese un número positivo: ');
if nro==1 disp('Ud. ingreso 1');
elseif nro==2 disp('Ud. ingreso 2');
elseif nro==3 disp('Ud. ingreso 3');
else disp('El número es mayor que 3');
end
6to Ingeniería
Descargar