Anda di halaman 1dari 6

UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN

FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

LABORATORIO # 7

ESTRUCTURAS DE PROGRAMACIÓN EN MATLAB

1. OBJETIVOS ESPECÍFICOS
Luego de completar este laboratorio, el estudiante será capaz de:
 Conocer las estructuras de programación que utiliza el entorno de MatLab
 Utilizar los comandos de MatLab para desarrollar las estructuras de control
 Realizar el análisis del funcionamiento de las estructuras de control.
 Utilizar las estructuras de control dentro de funciones en MatLab
 Realizar ejercicios de aplicación

2. FUNDAMENTO TEÓRICO
Como se pudo conocer y manipular los ficheros de nombre *.m. A los cuales se los denomina como m-
ficheros o ficheros-m. Existen dos tipos de ficheros *.m :
 Los ficheros de comandos o scripts son ficheros que contienen un conjunto de comandos que
se ejecutan sucesivamente cuando se teclea el nombre del fichero en la línea de comandos.
 Las funciones: Son ficheros con una estructura especial, que definen funciones análogas a las
de MatLab. No se debe olvidar que una función puede recibir unos DATOS DE ENTRADA,
ejecuta unas instrucciones y produce unos DATOS DE SALIDA.
MatLab, posee un lenguaje de programación que (como cualquier otro lenguaje) dispone de
sentencias para realizar bifurcaciones o estructuras de control condicionadas y bucles.

ESTRUCTURAS EN PROGRAMACIÓN

Las bifurcaciones o estructuras de control condicionadas permiten realizar una u otra operación según
se cumpla o no una determinada condición. Es decir, permiten controlar mediante una condición si
una parte de un programa se ejecuta o no.

Una condición es una expresión que puede incluir operaciones aritméticas, relacionales y lógicas, y
cuyo resultado es un verdadero o falso lógico.

SENTENCIA: IF
En su forma más simple, la sentencia if se escribe en la forma siguiente:
if condicion
sentencias
end
Si la condición es:
 verdadera se ejecutan los comandos entre if y end.
 falsa se pasa el control de la ejecución a la sentencia siguiente a la end.

1
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

Existe también la bifurcación múltiple, en la que pueden concatenarse tantas condiciones como se
desee, y que tiene la forma:
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opción por defecto para cuando no se cumplan las condiciones 1,2,3
bloque4
end

La condición del if puede ser una condición matricial, del tipo A==B, donde A y B son matrices del
mismo tamaño. Para que se considere que la condición se cumpla, es necesario que sean iguales todos
los elementos de las matrices A y B (aij=bij, 1≤i≤m, 1≤j≤n). Basta que haya dos elementos aij y bij
diferentes para que las matrices ya no sean iguales, y por tanto las sentencias del if no se ejecuten.

Análogamente, una condición en la forma A∼=B exige que todos los elementos sean diferentes
(aij≠bij, 1≤i≤m, 1≤j≤n). Bastaría que hubiera dos elementos aij y bij iguales para que la condición no
se cumpliese.

Ejemplo 1: Mostrar la evaluación de la siguiente ecuación: 2*a+1>0


Para su evaluación, se calcula el valor de 2*a+1; si es estrictamente positivo la condición es verdadera,
en caso contrario la condición es falsa.

Haciendo el archivo P1.m

Ejemplo 2: Mostrar el mayor de dos números introducidos por teclado

2
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

SENTENCIA: SWITCH
La sentencia switch realiza una función análoga a un conjunto de if...elseif concatenados. Permite
realizar bifurcaciones en un programa atendiendo al resultado de una expresión. Su forma general es la
siguiente:
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise, % opción por defecto
bloque3
end
Al principio se evalúa la switch_expresion, cuyo resultado debe ser un número escalar o una cadena de
caracteres. Este resultado se compara con las case_expr, y se ejecuta el bloque de sentencias que
corresponda con ese resultado. Si ninguno es igual a switch_expresion se ejecutan las sentencias
correspondientes a otherwise.

SENTENCIA: WHILE

MatLab, posee la sentencia “haz mientras” que ejecuta un bucle mientras una condición sea cierta. Su
sintaxis es:
while condición
bloque 1 %bloque 1 se ejecutan mientras la condición sea cierta
end
.

Ejemplo 3: Determinar el valor fx de las de la siguiente función: fx = x^3-2*x-5


3
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

SENTENCIA: FOR
La sentencia for repite un conjunto de sentencias un número predeterminado de veces. La estructura
más simple de los bucles tiene la siguiente forma:
for i=1:n
sentencias
end
También:
for i=vectorValores
sentencias
end
Donde vectorValores es un vector con los distintos valores que tomará la variable i.

Ejemplo 4: Determinar el factorial de un número

Ejemplo 5: Ordenar un vector introducido, de manera ascendente

4
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

Ejemplo 6: Determinar si un número es primo o no

SENTENCIA: BREAK
La sentencia break hace que se termine la ejecución del bucle for y/o while más interno de los que
comprenden a dicha sentencia.

SENTENCIA: CONTINUE
La sentencia continue hace que se pase inmediatamente a la siguiente iteración del bucle for o while,
saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteración actual.
SENTENCIAS: TRY...CATCH...END
La construcción try...catch...end permite gestionar los errores que se pueden producir en tiempo de
ejecución. Su forma es la siguiente:
try
sentencias1
catch
sentencias2
end

En el caso de que durante la ejecución del bloque sentencias1 se produzca un error, el control de la
ejecución se transfiere al bloque sentencias2. Si la ejecución transcurriera normalmente, sentencias2 no
se ejecutaría nunca.
MatLab, dispone de una función lasterr que devuelve una cadena de caracteres con el mensaje
correspondiente al último error que se ha producido. En la forma lasterr('') pone a cero este contador
de errores, y hace que la función lasterr devuelva la matriz vacía [] hasta que se produzca un nuevo
error.
5
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

3.- PROCEDIMIENTO EN LABORATORIO


Programa 1: Realizar una función para determinar el módulo y Angulo en grados sexagesimales de un vector
introduciendo sus valores rectangulares.

Programa 2: Primero realizar una función que calcule el signo de un número:

Para la siguiente función graficar la respuesta:


Podemos hacernos la siguiente función:

Programa 3: Si un depósito contiene una cantidad conocida “C” de un aceite vegetal, cuya densidad es de 0.91
g/ml. Además el deposito tiene un pequeño orificio de tal forma que gotea a un ritmo medio constante de 210
gotas por minuto, se conoce que 2ml de aceite son 31 gotas. El depósito es de forma cilíndrica y el aceite ocupa
el 80% de su volumen. Realizar un programa que calcule:
a) El tiempo en días requrido para que la masa del aceite dentro el deposito disminuya a la mitad, si
C=2350 lb.
b) El rádio del depósito en pulgadas si la altura del mismo es de 8 pies.

Programa 4: Realizar un programa mediante la inserción de un número introducido por teclado, pueda mostrar
el triángulo de Pascal.

4.- PREINFORME

1.- Realizar los ejemplos que se presentan en la presente guía.


2.- Realizar los ficheros *.m de cada uno de los problemas propuestos en el procedimiento y de los ejemplos y
explicar su funcionamiento.

NOTA: presentar el preinforme antes de ingresar al laboratorio de forma


individual.
6

Anda mungkin juga menyukai