Practica 3. Control de flujo

Documentos relacionados
Introducción a MATLAB

TEMA 4. ESTRUCTURAS DE CONTROL

Práctica 1 de Excel (Curso )

Introducción a Matlab

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

INTRODUCCIÓN a DERIVE 6. PANTALLA DE EXPRESIONES ALGEBRAICAS

Práctica 1: Introducción al entorno de trabajo de MATLAB *

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Algoritmos y estructuras de programación

MODULO SOBRE PROGRAMACION MATLAB

Formato para prácticas de laboratorio

Introducción a la Programación en MATLAB

1

EJERCICIO 1. CREACIÓN DE UNA FUNCIÓN

Estructuras de control

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL

Introducción a MATLAB

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

2 Operaciones de producto y división de polinomios

Tema 7: Programación con Matlab

Introducción a Matlab.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

DAVID DIAZ VALDIVIA INFORMATICA APLICADA I

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

Programación de los problemas de Física en.

Características básicas de Matlab

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Fundamentos de Ordenadores. Depurar programas usando Nemiver

Procesado de datos con MATLAB

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.

Introducción a MATLAB

Práctica 2ª : OPERADORES LÓGICOS Y RELACIONALES. CICLOS Y ESTRUCTURAS DE CONTROL. MÉTODOS DE RESOLUCIÓN DE UNA ECUACIÓN NO LINEAL.

Introducción a MATLAB y LabVIEW

Estructuras de Control

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Las operaciones aritméticas básicas en MATLAB son las más sencillas que se pueden

Programación. Carrera: MAE 0527

Diseño Estructurado de Algoritmos

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

Práctica 2: Periodicidad

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Carrera: Participantes Miembros de la academia de Metal- Mecánica

7ª Práctica. Matlab página 1 EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA...1

EDUComputacion. Te ofrece el curso de:

Una introducción a MATLAB

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Tema: Excel Formulas, Funciones y Macros

MICROSOFT ACCESS 2007 (COMPLETO)

Interprete comandos de Windows.

MANUAL BÁSICO DE OCTAVE Y QTOCTAVE

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Guía de uso de DERIVE. 2) Botones de acceso rápido Al colocar el cursor sobre el botón aparece un recuadro con su función

INTERVALOS Y SEMIRRECTAS.

: Algorítmica y Estructura de Datos I

FUNDAMENTOS DE INFORMÁTICA

Operaciones básicas con hojas de cálculo

FACULTAD DE INGENIERÍA

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Herramientas computacionales para la matemática MATLAB: Cómo guardar el trabajo?

Laboratorio 2 MA-33A : Interpolación y Aproximación de Funciones

CAPÍTULO 3. Metodología para la elaboración de. manuales de procedimientos

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

GUIA BÁSICA DEL PROCEDIMIENTO MATRIX END MATRIX

Laboratorio 2: Programación en SciLab

Fundamentos de programación

INFORMÁTICA Y COMUNICACIONES

Fundamentos de Programación Visual Basic

NOTAS DE ESTADISTICA DESCRIPTIVA CON AYUDA DE EXCEL 2003 y 2007

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

PROGRAMAS PARA LA CLASSPAD MANAGER.

Macros y Visual Basic para Aplicaciones en Excel

Estatutos de Control C# Estatutos de Decisión (Selección)

Microsoft Project 2013

Gráficos en Matlab

Herramientas computacionales para la matemática MATLAB: Estructuras de control

fundamentos de programación (unidad 4) programación estructurada en Java

Guía práctica de estudio 05: Diagramas de flujo

Grafos. Amalia Duch Brown Octubre de 2007

Elementos de un programa en C

GUÍA PARA EL USO DE MATLAB PARTE 1

GENERALIDADES DEL LENGUAJE C

NOMBRE: Elaboración: Lic. Mónica Sánchez Medina. Fecha: 10 de junio de 2014

10.1. PRIMITIVAS 79. Si variable es una lista, investiga dentro de esta lista; hay dos casos posibles:

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

índice MÓDULO 1: Introducción a Visual Basic 6.0 MÓDULO 2: Fundamentos de programación TEMA 1. Introducción a Visual Basic 6.0

Estructuras Administrativas

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Elaboración de Documentos en Procesadores de Textos

FUNDAMENTOS DE INFORMÁTICA

Ejercicios Temas 3 y 4: Interpolación polinomial. Ajuste de curvas.

Transcripción:

Practica 3. Control de flujo Informática Aplicada - Grado en Ingeniería Química, UAM, 2009/2010 1 Fecha limite de entrega de la practica Grupo A: 26 de Marzo Grupo B: 9 de Abril 2 Objetivos Al finalizar esta práctica se deberán haber adquirido conocimientos sobre los siguientes temas de programación en MATLAB: Polinomios en MATLAB Representación de gráficos en MATLAB Control de flujo en MATLAB 3 Introducción El objetivo principal de esta practica es que el estudiante se familiarice con los comandos de control de flujo existentes en MATLAB. Hasta ahora hemos utilizado MATLAB a través de su interprete de comandos. Para elaborar programas mas complejos, escribiremos nuestras instrucciones en un archivo.m que luego sera ejecutado por el interprete. En este archivo podemos programar bucles, condiciones, ramificaciones, etc. Adicionalmente en esta practica y de manera tangencial examinaremos brevemente la capacidad de MATLAB para trabajar con polinomios y con gráficos. 4 Polinomios MATLAB puede trabajar con polinomios: basta tener en cuenta que un polinomio se representa en MATLAB por medio de un vector cuyos elementos representan los coeficientes del polinomio. El orden de los coeficientes es de mayor a menor grado. Por ejemplo, el polinomio p(x) = x 4 + 2x 2 + 3 se crea en MATLAB como: >> p = [1 0 2 0 3] % Polinomio x 4 + 2x 2 + 3 p = 1 0 2 0 3 MATLAB tiene funciones específicas para polinomios como: >> polyval(p, 1) % Evaluación del polinomio x 4 + 2x 2 + 3 en x=-1 ans = 6 1

Definimos un polinomio adicional q, q(x) = x 2 + x: >> q = [2 1 0] y multiplicamos p por q: >> pro = conv(p, q) % Producto de los polinomios p y q pro = 2 1 4 2 6 3 0 >> deconv(pro, p) % Cociente entre pro y p; obviamente el resultado es q ans = 2 1 0 >> roots(pro) % Raíces del polinomio pro ans = 0 0.6050+1.1688i 0.6050-1.1688i -0.6050+1.1688i -0.6050-1.1688i -0.5000 5 Gráficos en MATLAB MATLAB tiene un gran potencial como herramienta gráfica. La forma de representar los valores de un vector frente a otro (de la misma longitud) es muy sencilla: >> x = pi ( 1 : 0.1 : 1); >> y = x. sin(x); >> plot(x, y) % Por defecto une los puntos (x(i),y(i)) mediante una poligonal Como se ve, con pocos puntos la gráfica tiene un aspecto demasiado lineal a trozos. Para engañar al ojo, basta tomar más puntos: >> x = pi ( 1 : 0.01 : 1); >> y = x. sin(x); >> plot(x, y) También pueden dibujarse funciones. Así: >> fplot( sin(x), [0 2 pi]) % Dibuja la función seno en el intervalo [0,2*pi] >> hold on % Mantiene en la ventana gráfica los dibujos anteriores >> fplot( cos(x), [02 pi]) % Dibuja sobre la gráfica anterior la función cos(x) >> hold off % Con esto olvida los dibujos anteriores y dibuja en una ventana nueva >> fplot( x 2 sin(1/x), [ 0.05 0.05]) % Dibuja la función x 2 sin(1/x) 2

También puede usarse el versátil comando ezplot (se lee como easy plot) que permite dibujar funciones, >> ezplot( exp(x) ) % Dibuja la función exponencial en un intervalo adecuado a la función. También se pueden generar curvas paramétricas: >> ezplot( sin(t), cos(t), [0 pi]) e implícitas: >> ezplot( x 2 y 2 1 ) También permite dibujar superficies. La forma más sencilla es mediante el comando ezsurf, >> ezsurf( sin(x y), [ 2 2 2 2]) y tambien se pueden realizar gráficas más sofisticadas: >> t = 0 : 0.001 : 0.009; >> v = 900 : 1025; >> [T V ] = meshgrid(t, v); >> aux1 = 16 pi 2 (T. 2 ). ((V 918). 2 ). ((V 1011). 2 ); >> aux2 = aux1 + (2 V 1929). 2 ; >> w = T./aux2; >> z = 35000000 w; >> surfl(t, v, z); % Este comando dibuja la superficie creada mediante las >> shading interp; % ordenes anteriores. Los siguientes sirven para modificar >> colormap(pink); % el dibujo obtenido >> rotate3d; % Sirve para girar la figura mediante el ratón 6 Control del flujo 6.1 Nociones preliminares La elaboración de un programa en 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: miprog.m). Matlab reconoce automáticamente los ficheros que tienen extensión.m: si en la ventana de comandos se introduce: >> miprog las órdenes almacenadas en el fichero miprog.m se ejecutarán, una tras otra (siempre y cuando el directorio donde se encuentra alojado miprog este incluido en el path). A ese recorrido a través de las instrucciones se le conoce con el nombre de flujo. La potencia de un programa se pone de manifiesto cuando este puede decidir, llegado a un punto, ejecutar unos comandos u otros en función del valor que tome una variable, por poner un caso. En la Figura 1 vemos un ejemplo de programa.m. 6.2 Control del flujo Al proceso de toma de decisiones dentro de un programa se le llama control del flujo. 6.3 Condiciones Son las preguntas básicas a las que se puede responder sí o no. Para implementar el control del flujo, son muy útiles expresiones que permiten comparar dos variables entre sí o una variable con un valor fijo. En un 3

Figure 1: Editor integrado de MATLAB. Edición de un archivo.m programa, a menudo es necesario preguntarse: es x mayor que y? y depio de la respuesta hacer una cosa u otra. Las condiciones se construyen con operadores relacionales: > mayor que < menor que == igual que = no igual a >= mayor o igual que <= menor o igual que 6.4 Ramificaciones Depio 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. La ramificación más simple, if, expresada en este diagrama de flujo, se obtiene con la siguiente sintaxis: if (condición) sentencias if y son palabras reservadas del lenguaje informático, y no se pueden utilizar para otra cosa, p. ej. una variable no puede -no debería- llamarse if. 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) sentenciasa else sentenciasb dicho de otra manera: si la condición se cumple, se ejecutan las sentencias A; si no, se ejecutan las sentencias B. 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. También se pueden construir ramificaciones con varias posibilidades: la sintaxis hace uso de la palabra clave 4

elseif. Otra posibilidad de ramificación múltiple la ofrece la construcción switch. Se remite para una explicación más detallada a la ayuda de Matlab. 6.5 Bucles Hay ocasiones en las que es necesario repetir el mismo conjunto de instrucciones muchas veces, cambiando algunos detalles. Eso es lo que se consigue con un bucle for, cuya sintaxis es: for contador=inicio:paso:fin sentencias Las palabras claves son for y. Este bucle pone en marcha una variable llamada contador que va desde inicio hasta fin de paso en paso. Cada vez que las sentencias se ejecutan, el contador aumenta en un valor paso (que si se omite, se le asigna automáticamente el valor 1). Cuando contador llega al valor fin, el bucle se acaba y el programa continúa con las sentencias que haya más allá de. Obsérvese que un bucle como el indicado se implementa un número fijo de veces: desde inicio hasta fin de paso en paso. En ocasiones, sin embargo, no se sabe de antemano cuántas veces habrá que ejecutar las sentencias del bucle. Por ejemplo: si es necesario repetir una serie de sentencias hasta que se cumpla una determinada condición, y no se sabe a priori cuántas veces será necesario realizar esas operaciones. En ese caso se emplea un bucle while: while(condición) sentencias Este bucle ejecuta las sentencias mientras la condición sea verdadera. Atención: es fácil caer, por error de programación, en bucles infinitos y el programa nunca saldrá del bucle: es decir, el programa ejecutará una y otra vez las mismas sentencias. El programa se cuelga, y hay que interrumpirlo desde el teclado apretando las teclas Ctrl+C. 7 Ejercicios 7.1 Ejercicio 1 Realizad las siguientes tareas de representación gráfica de funciones en 2 y 3 dimensiones. Utilizando el comando plot, representad gráficamente la siguiente función en el intervalo t [0, 1] con una precisión de 0.1, y valores v x = 5m/s y a = 32m/s 2 : Incluir etiquetas en los ejes y un titulo en la figura. 7.2 Ejercicio 2 x(t) = v t + 1 2 a t2 (1) Realizad las siguientes tareas relacionadas con polinomios (utilizad el comando help si fuera necesario): 1. Definid el polinomio P (x) = x 3 x 2 6x en una variable P que sea una matriz fila. 2. Calculad las raíces de P (x) utilizando el comando de MATLAB adecuado. 3. Hallad el valor de P (1) utilizando el comando MATLAB adecuado. 4. Representad gráficamente P (x) en el rango x [ 5, 5] con una precisión de 0.1. 7.3 Ejercicio 3 Escribir un programa que tome un número entero al azar entre el 0 y el 9 y anime una sola vez al usuario a que adivine el numero generado y le informe si acertó o no. 5

7.4 Ejercicio 4 Escribir un programa que tome un número entero al azar entre el 0 y el 9, y anime al usuario a que adivine el numero generado en solo 4 oportunidades. 7.5 Ejercicio 5 Escribir un programa que, de forma perpetua pida un número al usuario y cada vez que el usuario introduzca un numero el programa le informe de si es par, impar o no entero. (Interrumpir el programa con Ctrl-C) 7.6 Ejercicio 6 Escribir un programa que calcule los cuadrados de los números enteros, hasta que el cuadrado sea mayor o igual que 100. Mostrar también la media, la desviación típica y los valores mínimos y máximos de todos los valores calculados. 7.7 Ejercicio 7 Escribir un programa que ordene una secuencia desordenada de numeros ej: (3, 5, 1, 7, 8, 0) en una secuencia ordenada ej: (0,1,3,5,7,8) utilizando bucles anidados. Ayuda: http://es.wikipedia.org/wiki/ordenamiento_de_burbuja 8 Material a entregar La práctica se debe entregar de forma electrónica Y por escrito antes de la fecha de finalización indicada al comienzo del enunciado en el laboratorio 208 de la escuela politécnica o bien durante la practica correspondiente a la fecha limite de entrega. No se admitirán practicas con retraso. En general, las prácticas tienen fecha límite un viernes y por lo tanto pueden entregarse hasta la hora de la clase de la fecha limite. Se enviará un único fichero zip a través del sistema de entrega de prácticas de la Escuela Politécnica Superior, para el periodo: SEGUNDO CUATRIMESTRE, la categoría: TITULACIÓN INGENIERÍA TÉCNICA INDUSTRIAL y el nombre de la asignatura: INFORMÁTICA APLICADA. http://docenciaweb.ii.uam.es/esp/alumnos/practicas/envio_practicas.php La pagina para el envío de practicas tiene una protección para que ninguna persona que no tenga relación con la Escuela Politécnica pueda acceder a la misma. En la ventana de autentificación donde se tiene que introducir un login y una password, los valores a introducir son: practicas y entrega. El nombre del fichero será PN X YY.zip, donde N se deberá reemplazar por el número de practica (2,3,4 o 5), X se deberá reemplazar por el grupo de prácticas (A o B) e YY por el número de pareja. Así por ejemplo, la pareja 1 del grupo A deberá enviar su práctica 2 en el fichero P2 A 01.zip. El numero de grupo lo podréis encontrar en la pagina web de las practicas de la asignatura en el enlace Tabla de Excel con las notas de practicas de los grupos A y B, es el numero a la izquierda de los nombres de los componentes de la pareja. El fichero Excel lo podéis encontrar en la página de practicas de la asignatura en: http://arantxa.ii.uam.es/~drozado/fund_info.html No se admitirán practicas con retraso. En general, las prácticas tienen fecha límite un viernes y por lo tanto pueden entregarse hasta la hora de la clase de la fecha limite. 6