Lab 002 Matlab
Lab 002 Matlab
Código: 4E04022
Tema: PROGRAMACIÓN CON MATLAB
Semestre: IV
Grupo: FECHA:
Apellidos y Nombres (1):____________________________________________________
Lab. Nº 02 del 22 al 26/Ago/11
I. OBJETIVOS
1) Realizar algoritmos de programación usando estructuras secuenciales, de decisión y/o repetición para la
correcta solución de problemas matemáticos, físicos y/o de ingeniería.
2) Implementar los algoritmos de solución en forma de líneas de instrucción y código MATLAB, verificando los
mismos realizando pruebas de datos y el depurado de código respectivo.
Introducción:
Metodología de la Programación.
• Proceso de Programación:
4 Depuración y verificación
• Partes de un programa:
Instrucciones Expresiones
Identificadores
a) Secuenciales: Una estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en
secuencia.
if (cumple_condicion)
instrucciones_bloque1
end
.....
• Sentencia if (forma compuesta): como el anterior, pero un nuevo conjunto de líneas, comprendidas entre
else y end son ejecutadas en caso de que la operación lógica efectuada en el if sea falsa:
Laboratorio de Mecánica Computacional II Página: 3/8
.....
if (cumple_condicion)
instrucciones_bloque1
else
instrucciones_bloque2
end
.....
• Sentencia IF con decisiones múltiples: A esta forma se le denomina anidamiento y es una consecuencia
de usar consecutivamente IF compuestas, acá deberemos de tener cuidado por cuanto para MATLAB la
sintaxis es la siguiente:
.....
if (cumple_condicion1)
instrucciones_bloque1
elseif (cumple_condicion2)
instrucciones_bloque2
elseif (cumple_condicion3)
instrucciones_bloque3
else
instrucciones_bloque4
end
.....
El equivalente sería:
.....
if (cumple_condicion1)
instrucciones_bloque1
else
if (cumple_condicion2)
instrucciones_bloque2
else
if (cumple_condicion3)
instrucciones_bloque3
else
instrucciones_bloque4
end
end
end
.....
• La instrucción switch/case: Otra instrucción empleada para seleccionar opciones es switch/case que se
usa con frecuencia cuando existe una serie de opciones de ruta de programación para una variable dada,
dependiendo de su valor. Switch/case es similar a if/else/elseif , el código es un poco más fácil de leer ya
que switch/case es una estructura que le permite elegir entre múltiples salidas, con base en ciertos criterios.
Los criterios pueden ser un escalar o una cadena. En la práctica se usa más con cadenas que con números.
La estructura de switch/case es:
Las estructuras switch/case tienen diagramas
de flujo exactamente iguales a las estructuras
if/else
Laboratorio de Mecánica Computacional II Página: 4/8
switch variable
case opción 1
código a ejecutar si la variable es igual a la opción 1
case opción 2
código a ejecutar si la variable es igual a la opción 2
.
.
case opción n
código a ejecutar si la variable es igual a la opción n
otherwise
código a ejecutar si la variable no es igual a cualquiera de las opciones.
end
c) Repetitivas: Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de
instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo.
Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el
bucle.
for j=valor_inicial:paso:valor_final
bloque_instrucciones
end
.....
III. MATERIAL Y EQUIPO
IV. PROCEDIMIENTO
4.1 Elaborar un algoritmo (diagrama de flujo) y programa en MATLAB que permita el ingreso de dos números
que representan los catetos de un triangulo rectángulo, luego el programa deberá calcular el la hipotenusa
resultante y mostrara el resultado por pantalla.
Laboratorio de Mecánica Computacional II Página: 5/8
inicio
declarar:
a,b,c
Código MATLAB
fin
Condiciones:
El programa deberá de discriminar que la ecuación tenga soluciones reales.
Si no tiene soluciones reales, presentar el mensaje de error “No tiene solución real”.
Algoritmo y Comentarios Diagrama de flujo
Código MATLAB
% Inicio de programa
a=input('ingrese valor de A: ' );
b=input('ingrese valor de B: ');
c=input('ingrese valor de C: ' );
x=(-b+((b^2)-(4*a*c))^0.5)/(2*a);
x1=(-b-((b^2)-(4*a*c))^0.5)/(2*a);
if ((b^2)-(4*a*c))>=0
disp(['el numero de x es equivalente
a: ' num2str(x)]);
disp(['el numero de x es equivalente
Laboratorio de Mecánica Computacional II Página: 6/8
a: ' num2str(x1)]);
else inicio
disp('el numero no existe');
end
a=input('ingrese valor de A: ' );
b=input('ingrese valor de B: ');
% Fin de programa c=input('ingrese valor de C: ' );
x=(-b+((b^2)-(4*a*c))^0.5)/(2*a);
x1=(-b-((b^2)-(4*a*c))^0.5)/(2*a);
((b^2)-(4*a*c))>=0
disp(['el numero de x es
equivalente a: ' num2str(x)]);
disp('el numero
no existe');
disp(['el numero de x es
equivalente a: ' num2str(x1)]);
fin
4.3 Desarrollar un diagrama de flujo y un programa en MATLAB que simule una cuenta progresiva del
lanzamiento de un proyectil , iniciado al apretar ENTER en el que al segundo 10 dé un aviso por pantalla de
“IGNICION” (terminado este ejercicio impleméntelo pero de forma regresiva):
Algoritmo y Comentarios Diagrama de flujo
inicio
10:-1:1 disp('IGNICION')
Código MATLAB
% Inicio de programa
for i=10:-1:1 pause(1)
pause(1) disp(i)
disp(i)
end
disp('IGNICION')
fin
% Fin de programa
Laboratorio de Mecánica Computacional II Página: 7/8
inicio
Código MATLAB
% Fin de programa
4.5 Crear un algoritmo (diagrama de flujo) y programa en MATLAB en el que dados dos números reales LSup
y LInf que representan los límites superior e inferior de un intervalo, respectivamente; y dado un número n real
determine si dicho número pertenece al intervalo. En caso contrario, indique si está a la derecha o a la
izquierda del intervalo.
Algoritmo y Comentarios Diagrama de flujo
inicio
Código MATLAB
else
disp('el numero se encuentra
dentro del intervalo');
end
end
% Fin de programa
V. EVALUACION
- __________________________________________________________________________________________________
- __________________________________________________________________________________________________
- __________________________________________________________________________________________________
- __________________________________________________________________________________________________
- __________________________________________________________________________________________________