asignacion lab n 2 programacion

13
UNIVERSIDAD CATOLICA DE SANTA MARIA FACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES PROGRAMA PROFESIONAL INGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA Página:1/13 Jefes de Prácticas: Ing. Juan Carlos Cuadros Ing. Henry Zegarra Gago Ing. Sergio Mestas Ramos Laboratorio de Mecánica Computacional II Tema: PROGRAMACIÓN CON MATLAB Código: 4E04022 Semestre : IV Apellidos y Nombres (1):Urday Parisaca Edson Samuel Apellidos y Nombres (2):____________________________________________________ Grupo: FECHA: Lab. Nº 02 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. 3) Emplear el entorno de programación de MATLAB para crear programas. II. MARCO TEORICO Introducción: Este laboratorio hace un repaso de conceptos de metodología de la programación y conceptos de programación general, es decir, aspectos que son comunes a todos los lenguajes de programación. MATLAB es una aplicación en la que se puede programar muy fácilmente, haciendo uso de scripts o funciones como veremos en posteriores laboratorios. De todas maneras como lenguaje de programación se verá que MATLAB no posee tantas posibilidades que si las tienen otros lenguajes de programación como el C/C++. Revisaremos también las estructuras básicas de control en la confección de algoritmos de programación, cómo los diagramas de flujo son instrumentos para plasmar nuestro algoritmo en cualquier lenguaje de programación tanto en MATLAB u otro lenguaje de programación de alto nivel (e inclusive en los de bajo nivel), así como las instrucciones que hacen posible su codificación. Comenzaremos viendo la asignación de entrada, lectura y escritura interactiva de datos, también las bifurcaciones en toma de decisiones, los bucles, que son elementos básicos de cualquier programa de una cierta complejidad, de la misma manera, Metodología de la Programación.

Upload: edson-samuel-urday

Post on 13-Dec-2015

259 views

Category:

Documents


2 download

DESCRIPTION

programacion,matlab,funciones,trabajo,manual

TRANSCRIPT

UNIVERSIDAD CATOLICA DE SANTA MARIAFACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES

PROGRAMA PROFESIONALINGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA

Página:1/10

Jefes de Prácticas:Ing. Juan Carlos CuadrosIng. Henry Zegarra Gago

Ing. Sergio Mestas RamosLaboratorio de Mecánica Computacional II

Tema: PROGRAMACIÓN CON MATLAB Código: 4E04022Semestre: IV

Apellidos y Nombres (1):Urday Parisaca Edson SamuelApellidos y Nombres (2):____________________________________________________

Grupo: FECHA:

Lab. Nº 02

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.

3) Emplear el entorno de programación de MATLAB para crear programas.

II. MARCO TEORICO

Introducción:

Este laboratorio hace un repaso de conceptos de metodología de la programación y conceptos de programación

general, es decir, aspectos que son comunes a todos los lenguajes de programación. MATLAB es una aplicación

en la que se puede programar muy fácilmente, haciendo uso de scripts o funciones como veremos en posteriores

laboratorios. De todas maneras como lenguaje de programación se verá que MATLAB no posee tantas

posibilidades que si las tienen otros lenguajes de programación como el C/C++. Revisaremos también las

estructuras básicas de control en la confección de algoritmos de programación, cómo los diagramas de flujo son

instrumentos para plasmar nuestro algoritmo en cualquier lenguaje de programación tanto en MATLAB u otro

lenguaje de programación de alto nivel (e inclusive en los de bajo nivel), así como las instrucciones que hacen

posible su codificación. Comenzaremos viendo la asignación de entrada, lectura y escritura interactiva de datos,

también las bifurcaciones en toma de decisiones, los bucles, que son elementos básicos de cualquier programa de

una cierta complejidad, de la misma manera,

Metodología de la Programación.

Repasaremos algunos conceptos generales de Fundamentos de Programación:

• Proceso de Programación:

• Concepto de programa: Un programa de computadora, consiste en un conjunto de instrucciones (ordenes

dadas a la máquina) que producirán la ejecución de una determinada tarea.

1 Definición del problema

2 Diseño del algoritmo

3 Codificación del programa

4 Depuración y verificación

UNIVERSIDAD CATOLICA DE SANTA MARIAFACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES

PROGRAMA PROFESIONALINGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA

Página:2/10

Jefes de Prácticas:Ing. Juan Carlos CuadrosIng. Henry Zegarra Gago

Ing. Sergio Mestas RamosLaboratorio de Mecánica Computacional II

Tema: PROGRAMACIÓN CON MATLAB Código: 4E04022Semestre: IV

Apellidos y Nombres (1):Urday Parisaca Edson SamuelApellidos y Nombres (2):____________________________________________________

Grupo: FECHA:

Lab. Nº 02

Laboratorio de Mecánica Computacional II Página: 3/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

• Partes de un programa:

• Elementos Básicos de un Programa:

• Estructuras de control básicas:

a) Secuenciales: Una estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en

secuencia.

b) Selección: Se utilizan para tomar decisiones lógicas. También denominadas

estructuras de decisión o alternativas. Pueden ser: Simples, Dobles, Múltiples

• Sentencia if (forma simple): Sirve para representar una condición lógica cuya expresión utiliza operadores relacionales u operadores lógicos, evaluado su veracidad o falsedad, cuya formas más simple tiene la siguiente sintaxis:

if(cumple_condicion) instrucciones_bloque1end.....

Salida

Programa

Entrada

Instrucciones Expresiones Variables

Constantes

Caracteres especialesPalabras reservadas

Identificadores

Acción n

Acción 2

Acción 1

Laboratorio de Mecánica Computacional II Página: 4/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

• 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:

.....if(cumple_condicion) instrucciones_bloque1else instrucciones_bloque2end.....

• 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_bloque1elseif (cumple_condicion2) instrucciones_bloque2elseif (cumple_condicion3)instrucciones_bloque3else

instrucciones_bloque4end.....

El equivalente sería:

.....

if(cumple_condicion1) instrucciones_bloque1else if (cumple_condicion2)instrucciones_bloque2else if (cumple_condicion3) instrucciones_bloque3else

instrucciones_bloque4 end endend.....

• 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.

Laboratorio de Mecánica Computacional II Página: 5/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

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:

switchvariable

caseopció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

.

.

caseopció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.

• Sentencia FOR (iteración de bucles): Repite un conjunto de sentencias (bloque de instrucciones), un número predeterminado de veces, para MATLAB su sintaxis es la siguiente:

.....

forj=valor_inicial:paso:valor_final

bloque_instrucciones

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:

Las estructuras switch/case tienen diagramas de flujo exactamente iguales a las estructuras if/else

Laboratorio de Mecánica Computacional II Página: 6/10

Tema: PROGRAMACIÓN CON MATLAB 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 números

que representan los catetos de un triángulo rectángulo, luego el programa deberá calcular la hipotenusa

resultante y mostrara el resultado por pantalla.

Algoritmo y Comentarios*inicio*Pedir los valores de los catetos*Ingresar los valores de los catetos*Calcular la hipotenusa*Mostrar el resultado*fin

Diagrama de flujo

Código MATLABclear all;clc;disp('PROGRAMA PARA CALCULAR LA HIPOTENUSA');c1=input('ingrese el primer cateto C1=');c2=input('ingrese el segundo cateto C2=');h=sqrt(c1^2+c2^2);fprintf('La hipotenusa es: H=%.2f\n',h);

4.2Crear un algoritmo (diagrama de flujo) y programa en MATLAB que:

Resuelva una ecuación de segundo grado del tipo: A x2+Bx+C=0

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

*inicio

*Pedir los valores de los coeficientes de la ecuación A,B,C

*Calcular discriminante*Condición

Si

el discriminante es mayor igual a cero y A es diferente de cero

Calcular

x1=(-B+ sqrt(d))/(2*A) x2=(-B- sqrt(d))/(2*A) Mostrar las raíces x1,x2 Sino Mostrar no tiene solución real*fin

Diagrama de flujo

Código MATLAB

clear all;clc;disp('PROGRAMA PARA CALCULAR ECUACION DEL TIPO AX^2+BX+C=0');A=input('ingrese el valor de A=');B=input('ingrese el valor de B=');C=input('ingrese el valor de C=');d=(B^2)-(4*A*C);

Laboratorio de Mecánica Computacional II Página: 7/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

if (d>=0 && A~=0);x1=(-B+ sqrt(d))/(2*A);x2=(-B- sqrt(d))/(2*A);fprintf('El valor de : X1=%.3f\n',x1);fprintf('El valor de : X2=%.3f\n',x2);elsedisp('no tiene solucion real');end

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 impleméntelo pero de forma regresiva):

Algoritmo y Comentarios

*inicio

*Mostrar presione enter para empezar conteo

*Iniciar contador hasta el número 10 en forma ascendente

*Mostrar ignición

*Fin

Forma regresiva

*inicio

*Mostrar presione enter para empezar conteo

*Iniciar contador desde el número 10 en forma descendiente

*Mostrar ignición

Diagrama de flujo

*Forma ascendente

*Forma regresivaCódigo MATLABclear all;clc;disp('PROGRAMA PARA CONTEO');input('presiona enter para iniciar el conteo');for j=1:1:9;

fprintf('SEGUNDO %.0f\n',j);

pause(1);

end

disp('IGNICION');Forma regresivaclear all;clc;disp('PROGRAMA PARA CONTEO'); input('presiona enter para iniciar el conteo');for j=0:1:9; c=10-j; fprintf('SEGUNDO %.0f\n',c);pause(1);enddisp('IGNICION');

4.4Elaborar un diagrama de flujo y un programa en MATLAB que:

Obtenga los cuadrados de los números pares entre 0 y 50. Crear una tabla con cada entero y su cuadrado. Adjuntar su algoritmo de solución y diagrama de flujo.

Algoritmo y Comentarios Diagrama de flujo

Laboratorio de Mecánica Computacional II Página: 8/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

*Inicio

*Presionar enter para iniciar el conteo

*Iniciar contador de números pares del 0 al 50

*Elevar al cuadrado cada número par

*Mostrar cada número elevado al cuadrado

Código MATLABclear all;clc;disp('PROGRAMA PARA DETERMINAR LOS CUADRADOS DE LOS NUMERO PARES'); input('presiona enter obtener los valores pares');

for j=0:2:50;

c=j^2;fprintf('el cuadro es %.0f\n',j);

end

4.5Crear 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*Inicio

*Ingresar el límite superior(LS), límite inferior(LI) y el número(n) que se desea saber su ubicación en el intervalo.

-Si n es menor igual que LS y n es mayor igual que LS

Mostrar se encuentra dentro del intervalo.

-Sino

Mostrar el número se encuentra fuera del intervalo

*Ahora

-Si n es mayor que LS

Mostrar el número se encuentra a la derecha del intervalo

-Sino si n es menor que LI

Mostrar el número se encuentra a la izquierda del intervalo

*Fin

Diagrama de flujo

Código MATLABclear all;clc;disp('PROGRAMA PARA DETERMINAR LOS CUADRADOS DE LOS NUMERO PARES');%entradas=input('ingresar el limite superior del intervalo = ');i=input('ingresar el limite inferior del intervalo = ');n=input('ingresar el numero real = ');if (n<=s && n>=i) disp('El numero se encuentra dentro del intervalo ');else disp('El numero esta fuera del intervalo');end

Laboratorio de Mecánica Computacional II Página: 9/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

if (n>s) disp('El numero esta a la derecha del intervalo');else if (n<i) disp('El numero esta a la izquierda del intervalo'); endend

V. CUESTIONARIO FINAL

5.1Confeccionar un algoritmo y un programa en MATLAB que:

Calcule el equivalente en temperatura de grados Centígrados 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 precisión de 2 dígitos Volver a pedir datos para realizar la conversión y salir del programa solo cuando se presione la tecla S.

VI. OBSERVACIONES Y CONCLUSIONES

Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado

- __________________________________________________________________________________________________

- __________________________________________________________________________________________________

- __________________________________________________________________________________________________

- __________________________________________________________________________________________________

- __________________________________________________________________________________________________

Ejercicio 5.1

Algoritmo

*inicio

*Ingresar un valor cualquiera c

*Si es una valor mayor que 0 y menor que 20

Ejecutar (c-32)*9/5 Mostrar resultado

Laboratorio de Mecánica Computacional II Página: 10/10

Tema: PROGRAMACIÓN CON MATLAB LAB N° 2 JP: Ings.JCC-HZG - SMR

*Sino Volver a pedir resultado

*Concluir presionando la tecla s

Diagrama de flujo

Codigo Matlab

clear all;clc; syms num; syms s;while (num~=s) c=input('Ingrese una temperatura \n'); if(c>=0 && c<=20) f=(c-32)*9/5; fprintf('temperatura en grados centigrados %.2f\n',f); else fprintf('No esta en el rango \n'); endend fprintf('El programa termino');

Observaciones y conclusiones

1.- Se aprendió a utilizar los bucles repetitivos anidados y no anidados.

2.-En el programa de creación de diagramas de flujo no es tan bueno como el dfd.

3.-Se aprendió a crear algoritmos con estructuras de repetición como también secuenciales.

4.-El en matlab para declarar letras se tiene que instalar un toolbox para que el programa pueda ejecutarse bien.

5.-Se realizo el código y se probo en la interfaz del matlab donde se vio que si funcionan.