Vous êtes sur la page 1sur 11

UNIVERSIDAD CATOLICA DE SANTA MARIA FACULTAD DE CIENCIAS E INGENIERAS FISICAS Y FORMALES PROGRAMA PROFESIONAL INGENIERIA MECNICA, MECNICA-ELECTRCA Y MECATRNICA

Pgina:1/11 Jefes de Prcticas: Ing. Juan Carlos Cuadros Ing. Henry Zegarra Gago Ing. Sergio Mestas Ramos Cdigo: Semestre: Grupo: Lab. N 4E04022 IV
FECHA:

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB
Apellidos y Nombres (1):____________________________________________________ Apellidos y Nombres (2):____________________________________________________

02

I.

OBJETIVOS 1) Realizar algoritmos de programacin usando estructuras secuenciales, de decisin y/o repeticin para la correcta solucin de problemas matemticos, fsicos y/o de ingeniera. 2) Implementar los algoritmos de solucin en forma de lneas de instruccin y cdigo MATLAB, verificando los mismos realizando pruebas de datos y el depurado de cdigo respectivo. 3) Emplear el entorno de programacin de MATLAB para crear programas.

II.

MARCO TEORICO Introduccin: Este laboratorio hace un repaso de conceptos de metodologa de la programacin y conceptos de programacin general, es decir, aspectos que son comunes a todos los lenguajes de programacin. MATLAB es una aplicacin en la que se puede programar muy fcilmente, haciendo uso de scripts o funciones como veremos en posteriores laboratorios. De todas maneras como lenguaje de programacin se ver que MATLAB no posee tantas posibilidades que si las tienen otros lenguajes de programacin como el C/C++. Revisaremos tambin las estructuras bsicas de control en la confeccin de algoritmos de programacin, cmo los diagramas de flujo son instrumentos para plasmar nuestro algoritmo en cualquier lenguaje de programacin tanto en MATLAB u otro lenguaje de programacin de alto nivel (e inclusive en los de bajo nivel), as como las instrucciones que hacen posible su codificacin. Comenzaremos viendo la asignacin de entrada, lectura y escritura interactiva de datos, tambin las bifurcaciones en toma de decisiones, los bucles, que son elementos bsicos de cualquier programa de una cierta complejidad, de la misma manera, Metodologa de la Programacin. Repasaremos algunos conceptos generales de Fundamentos de Programacin: Proceso de Programacin:
1 2 3 4

Definicin del problema Diseo del algoritmo Codificacin del programa Depuracin y verificacin

Concepto de programa: Un programa de computadora, consiste en un conjunto de instrucciones (ordenes dadas a la mquina) que producirn la ejecucin de una determinada tarea.

UNIVERSIDAD CATOLICA DE SANTA MARIA FACULTAD DE CIENCIAS E INGENIERAS FISICAS Y FORMALES PROGRAMA PROFESIONAL INGENIERIA MECNICA, MECNICA-ELECTRCA Y MECATRNICA

Pgina:2/11 Jefes de Prcticas: Ing. Juan Carlos Cuadros Ing. Henry Zegarra Gago Ing. Sergio Mestas Ramos Cdigo: Semestre: Grupo: Lab. N 4E04022 IV
FECHA:

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB
Apellidos y Nombres (1):____________________________________________________ Apellidos y Nombres (2):____________________________________________________

02

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 3/11

LAB N 2

JP: Ings. JCC-HZG - SMR

Partes de un programa:

Entrada Programa Salida


Elementos Bsicos de un Programa:

Instrucciones

Expresiones

Variables Constantes

Caracteres especiales Palabras reservadas

Identificadores

Estructuras de control bsicas:

a) Secuenciales: Una estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Accin 1

Accin 2

Accin n b) Seleccin: Se utilizan para tomar decisiones lgicas. Tambin denominadas estructuras de decisin o alternativas. Pueden ser: Simples, Dobles, Mltiples Sentencia if (forma simple): Sirve para representar una condicin lgica cuya expresin utiliza operadores relacionales u operadores lgicos, evaluado su veracidad o falsedad, cuya formas ms simple tiene la siguiente sintaxis:

No Condicion 1 Condicion Si Bloque 1 No Bloque 2 Condicion No Si No Condicion 2 Si Bloque 2

if(cumple_condicion) instrucciones_bloque1 Si end ..... Bloque 1 Bloque 2

Condicion
Bloque 3

Si

Bloque 1

No

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 4/11

LAB N 2

JP: Ings. JCC-HZG - SMR

Sentencia if (forma compuesta): como el anterior, pero un nuevo conjunto de lneas, comprendidas entre else y end son ejecutadas en caso de que la operacin lgica efectuada en el if sea falsa: ..... if(cumple_condicion) instrucciones_bloque1 else instrucciones_bloque2 end .....

Condicion Si Bloque 1

No

Condicion No Bloque 2

Si

Bloque 1

Bloque 2

Sentencia IF con decisiones mltiples: 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 .....
Si

Condicion 1 No

Bloque 1

Condicion 2 No

Si

Bloque 2

Condicion 3 No

Si

Bloque 3

El equivalente sera: ..... if(cumple_condicion1) instrucciones_bloque1 else if (cumple_condicion2) instrucciones_bloque2 else if (cumple_condicion3) instrucciones_bloque3 else instrucciones_bloque4 end end end ..... La instruccin switch/case: Otra instruccin empleada para seleccionar opciones es switch/case que se usa con frecuencia cuando existe una serie de opciones de ruta de programacin para una variable dada, dependiendo de su valor. Switch/case es similar a if/else/elseif , el cdigo es un poco ms fcil de leer ya que switch/case es una estructura que le permite elegir entre mltiples salidas, con base en ciertos criterios.
Bloque 4

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 5/11

LAB N 2

JP: Ings. JCC-HZG - SMR

Los criterios pueden ser un escalar o una cadena. En la prctica se usa ms con cadenas que con nmeros. La estructura de switch/case es: Las estructuras switch/case tienen diagramas de flujo exactamente iguales a las estructuras switchvariable if/else caseopcin 1 cdigo a ejecutar si la variable es igual a la opcin 1 case opcin 2 cdigo a ejecutar si la variable es igual a la opcin 2 . . caseopcin n cdigo a ejecutar si la variable es igual a la opcin n otherwise cdigo a ejecutar si la variable no es igual a cualquiera de las opciones. end

c) Repetitivas: Son operaciones que se deben ejecutar un nmero repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto nmero de veces, se llama Ciclo, Bucle o Lazo. Iteracin es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. Sentencia FOR (iteracin de bucles): Repite un conjunto de sentencias (bloque de instrucciones), un nmero predeterminado de veces, para MATLAB su sintaxis es la siguiente: .....

forj=valor_inicial:paso:valor_final

valor inicial : paso : valor final

bloque_instrucciones

Bloque

end ..... III. MATERIAL Y EQUIPO 1. Una PC con Sistema Operativo (S.O.) Windows XP. 2. MATLAB 7.0 o superior

IV. PROCEDIMIENTO Resolver los siguientes problemas:

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 6/11

LAB N 2

JP: Ings. JCC-HZG - SMR

4.1 Elaborar un algoritmo (diagrama de flujo) y programa en MATLAB que permita el ingreso de dos nmeros que representan los catetos de un triangulo rectngulo, luego el programa deber calcular la hipotenusa resultante y mostrara el resultado por pantalla.
Algoritmo y Comentarios Ingresar los catetos Calcular la hipotenusa Mostrar la hipotenusa Diagrama de flujo

Cdigo MATLAB

% Inicio de programa clear all clc; c1=input('ingrese cateto:'); c2=input('ingrese cateto:'); if (c1>0 && c2>0) hp=sqrt(c1^2+c2^2); fprintf('la hipotenusa es %.5f \n' ,hp); else fprintf('los valores deven ser positivos \n' ); end % Fin de programa

4.2Crear un algoritmo (diagrama de flujo) y programa en MATLAB que: Resuelva una ecuacin de segundo grado del tipo: Condiciones: El programa deber de discriminar que la ecuacin tenga soluciones reales. Si no tiene soluciones reales, presentar el mensaje de error No tiene solucin real.
Algoritmo y Comentarios Diagrama de flujo

Ingresar los valores a , b y c Si, el discriminante es positivo : calcular las raices mostrar las raices Si no , Mostrar no tiene solucion real

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 7/11

LAB N 2

JP: Ings. JCC-HZG - SMR

Cdigo MATLAB

% Inicio de programa clc; a=input('ingrese a:'); b=input('ingrese b:'); c=input('ingrese c:'); d=b^2-4*a*c; if (d>0) r1=(-b+sqrt(d))/(2*a); r2=(-b-sqrt(d))/(2*a); fprintf('la raiz 1 es %.3f\n' ,r1); fprintf('la raiz 2 es %.3f\n' ,r2); else fprintf('no tiene solucion real \n' ); end

% Fin de programa 4.3Desarrollar un diagrama de flujo y un programa en MATLAB que simule una cuenta progresiva del lanzamiento de un proyectil iniciado al presionar la tecla ENTER, al llegar al segundo 10 d un aviso por pantalla de IGNICION (terminado este ejercicio implemntelo pero de forma regresiva):
Algoritmo y Comentarios Ingresamos un getch Ingresamos los valores para la cuenta regresiva (un Limite) Diagrama de flujo

Cdigo MATLAB

% Inicio de programa clc disp('cuenta regresiva') input('presione ENTER') for i=10:-1:0 pause(1) if(i==0); i='ignicion' else

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 8/11

LAB N 2

JP: Ings. JCC-HZG - SMR

disp(i) end end

% Fin de programa

4.4Elaborar un diagrama de flujo y un programa en MATLAB que: Obtenga los cuadrados de los nmeros pares entre 0 y 50. Crear una tabla con cada entero y su cuadrado. Adjuntar su algoritmo de solucin y diagrama de flujo.
Algoritmo y Comentarios Diagrama de flujo

Ingresamos un limite de nmeros pares 0-50 en una variable:n Ingresamos la operacin r1=n^2 Mostrar: r1

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 9/11

LAB N 2

JP: Ings. JCC-HZG - SMR

Cdigo MATLAB

% Inicio de programa Clc; disp('cuadrado de los numeros pares') a=0; for i=1:1:25 m(i,1)=a+2; a=m(i,1); end for i2=1:1:25 m(i2,2)=(m(i2,1))^2; a=m(i,1); end m

% Fin de programa

4.5Crear un algoritmo (diagrama de flujo) y programa en MATLAB en el que dados dos nmeros reales LSup y LInf que representan los lmites superior e inferior de un intervalo, respectivamente; y dado un nmero n real determine si dicho nmero pertenece al intervalo. En caso contrario, indique si est a la derecha o a la izquierda del intervalo.
Algoritmo y Comentarios Diagrama de flujo

Ingresamos variables:a,b,c Si c<a el numero se encuentra a la izquierda Si no el numero se encuentra a la derecha

Cdigo MATLAB

% Inicio de programa clc; a=input('ingrese el limite inferior a \n'); b=input('ingrese el limite superior b \n'); c=input('ingrese un numero c \n'); if(c>=a && c<=b) fprintf('el numero se encuentra en el parametro') end if(c<a && c<=b) fprintf('el numero se encuentra ala

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB

Pgina: 10/11

LAB N 2

JP: Ings. JCC-HZG - SMR

izquierda') end if(c>=a && c>b) fprintf('el numero se encuentra ala derecha') end

% Fin de programa V. CUESTIONARIO FINAL 5.1Confeccionar un algoritmo y un programa en MATLAB que: Calcule el equivalente en temperatura de grados Centgrados de grados Fahrenheit. Condiciones: El programa deber de discriminar en un valor entre 0 20 F, como dato de entrada. La salida debe de tener una precisin de 2 dgitos Volver a pedir datos para realizar la conversin y salir del programa solo cuando se presione la tecla S. Algoritmo Ingresamos una variable n Si n<0 Error no esta dentro del rango [0 - 20]F , 'vuelva a intentarlo' SI no f>20 Si Error no esta dentro del rango [0 - 20]F , 'vuelva a intentarlo' Si no c=(5/9)*(f-32); Mostrar:c clc; f=input('Ingrese la temperatura en F= '); if (f<=20 && f>=0); c=(5/9)*(f-32); fprintf('La temperatura en C=%2.2f\n',c) end if (f<0) fprintf('Error no fprintf('vuelva a end if (f>20) fprintf('Error no fprintf('vuelva a end

esta dentro del rango [0 - 20]F') intentarlo') esta dentro del rango [0 - 20]F') intentarlo')

Laboratorio de Mecnica Computacional II


Tema: PROGRAMACIN CON MATLAB a=input('presione S- para salir: ') if(a==s) clc end

Pgina: 11/11

LAB N 2

JP: Ings. JCC-HZG - SMR

VI. OBSERVACIONES Y CONCLUSIONES Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado Al aprender cmo usar este programa nos damos cuenta que podemos usarlo para muchas cosas mas adems de resolver problemas como creamos. En el trabajo realizado me di cuenta que podemos usarlo para muchas cosas mas como crear nuestros propios programas para nuestro propio beneficio Observe que hay una gran diferencia entre el uso del fprintf() y el disp().

Vous aimerez peut-être aussi