prÁcticas de programaciÓn 2015 primera parte para alumnos

53
1 UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO FACULTAD DE INGENIERÍA CIVIL DEPARTAMENTO DE CIENCIAS BÁSICAS Y MATEMÁTICAS PRÁCTICAS DE PROGRAMACIÓN Elaboradas por: Dr. Carlos Alberto Júnez Ferreira Febrero 2015

Upload: tekilaoner

Post on 28-Sep-2015

15 views

Category:

Documents


0 download

DESCRIPTION

programacion mat lab

TRANSCRIPT

  • 1

    UNIVERSIDAD MICHOACANA DE SAN NICOLS DE HIDALGO

    FACULTAD DE INGENIERA CIVIL

    DEPARTAMENTO DE CIENCIAS BSICAS Y MATEMTICAS

    PRCTICAS DE PROGRAMACIN

    Elaboradas por: Dr. Carlos Alberto Jnez Ferreira

    Febrero 2015

  • 2

    INTRODUCCIN

    Con frecuencia, en la prctica profesional de la ingeniera, se maneja una gran cantidad de informacin en la solucin de problemas, lo que conduce a la necesidad del uso de sistemas informticos para procesar esta informacin de manera eficiente. Los sistemas informticos se componen de tres tareas bsicas: entrada de datos, procesamiento y salida de resultados. Para llevar a cabo estas tareas es esencial el uso de software. El software es el soporte inmaterial que permite que la computadora pueda desempear tareas, dirigiendo a los componentes fsicos o hardware con instrucciones y datos a travs de diferentes tipos de programas. El software son los programas que segn las funciones que realizan pueden ser clasificados en:

    Software operativo. Tambin conocido como software de sistema, es el conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, adems de dar soporte a otros programas. Todo esto se realiza mediante un sistema operativo, que es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento.

    Software de aplicacin. Son los programas diseados para facilitar a los usuarios la realizacin de tareas especficas en la computadora, como pueden ser las aplicaciones ofimticas (procesador de texto, hoja de clculo, programa de presentacin, sistemas de gestin de base de datos, etc.) u otros tipos de software especializado como software educativo, diseo asistido por computadora, etc.

    Software de desarrollo. Es el conjunto de herramientas que permiten al desarrollar programas usando diferentes alternativas y lenguajes de programacin. Este tipo de software incluye compiladores, intrpretes, ensambladores, depuradores, editores y entornos de desarrollo integrado que contienen las herramientas anteriores.

    En general, un programa es un proceso para llegar a un objetivo. Un programa de computadora es un conjunto de instrucciones que producen la ejecucin de una determinada tarea. Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lgica y ordenada que permite solucionar un determinado problema. Se trata de una serie de instrucciones que por medio de una sucesin de pasos, permiten obtener un resultado. Programar es el proceso de escribir este conjunto de instrucciones en cdigo de acuerdo con la sintaxis de un lenguaje de programacin. Los algoritmos se pueden representar mediante diagramas de flujo o pseudocdigo:

    Un diagrama de flujo es la representacin grfica de un algoritmo o proceso. Un diagrama de flujo siempre tiene un punto nico de inicio y un nico punto de trmino y emplea una serie de cajas o bloques y flechas, cada una de las cuales representa un determinado paso u operacin del algoritmo. Las flechas representan el orden en el que se realizarn las operaciones.

    El pseudocdigo es una descripcin informal y genrica de alto nivel de un algoritmo que utiliza las convenciones estructurales de un lenguaje de programacin verdadero. Con el pseudocdigo se utilizan expresiones semejantes a las del cdigo, en lugar de los smbolos grficos del diagrama de flujo.

    En la figura siguiente se presenta la simbologa comnmente utilizada para los diagramas de flujo:

  • 3

    Un lenguaje de programacin es un conjunto de reglas sintcticas y semnticas que puede ser utilizado para controlar el comportamiento de una computadora. En otras palabras, un lenguaje de programacin consiste en un conjunto de rdenes o comandos que describen el proceso deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para formar los programas de cmputo. Existen muchos lenguajes de programacin con caractersticas y aptitudes muy diferenciadas. Todos los lenguajes de programacin se pueden englobar en dos grandes grupos:

    Lenguajes mquina. En estos lenguajes, la codificacin se hace utilizando un lenguaje binario de ceros y unos que son los nicos smbolos que puede entender la computadora. Cada sistema fsico tiene su cdigo mquina distinto por lo que un programa escrito en un determinado cdigo mquina slo vale para un sistema fsico.

    Lenguajes simblicos. En estos lenguajes, las instrucciones de los diferentes programas se codifican utilizando los caracteres de las lenguas naturales (generalmente en ingls).

    Los lenguajes simblicos se dividen a su vez en:

    Lenguajes de bajo nivel o ensambladores. Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras mquinas. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo.

    Lenguajes de alto nivel. Son aquellos que se encuentran ms cercanos al lenguaje natural humano que al lenguaje mquina. Se tratan de lenguajes independientes de la arquitectura de la computadora. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, puede migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la mquina para la que estn diseando el programa. Tan solo necesitan un traductor que entiendan tanto el cdigo fuente como las caractersticas de la mquina.

    Un programa de alto nivel se tiene que traducir a un cdigo que pueda utilizar la computadora. Los programas traductores que pueden realizar esta operacin se llaman compiladores, los cuales pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. En otras palabras, los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a lenguaje mquina con cdigo binario. Al usar un lenguaje compilado, el programa desarrollado nunca se ejecuta mientras haya errores. Se puede utilizar una alternativa al uso de compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores. Los lenguajes de programacin ms utilizados en ingeniera son: Lenguaje C, FORTRAN, BASIC, VISUAL BASIC, JAVA, HTML y MATLAB. Fases del desarrollo de un programa de computadora aplicado en la solucin de problemas La principal razn para que alguien aprenda a programar en un determinado lenguaje de programacin es utilizar la computadora como una herramienta para la resolucin de problemas. Ayudado por una computadora, la resolucin de un problema se puede dividir en diferentes fases:

    Anlisis del problema.

    Diseo del programa.

    Implementacin.

    Prueba y validacin.

    Documentacin y mantenimiento.

  • 4

    No. DE PRCTICA NOMBRE DE LA PRCTICA DURACIN (h)

    1 CALCULADORA SIMPLE 2

    OBJETIVO O COMPETENCIAS A DESARROLLAR Que el alumno conozca el entorno de desarrollo de una interfaz grfica de usuario (GUI) de un lenguaje de programacin, mediante la identificacin de los elementos principales de una GUI y el uso de comandos bsicos, con la finalidad de proporcionarle herramientas para disear y posteriormente desarrollar programas aplicados a la solucin de problemas de ingeniera civil.

    EQUIPOS O MATERIALES NECESARIOS Computadora con MATLAB [1], [2] y [3] instalado, material bibliogrfico de diversas reas de la ingeniera civil.

    INTRODUCCIN O JUSTIFICACIN DE LA PRCTICA DATOS Los datos son testimonios que permiten describir y llegar al conocimiento de algo o deducir las consecuencias de un hecho. Los datos son comunicados por smbolos tales como letras del alfabeto, nmeros, seales, dibujos, etc. Estos smbolos se pueden ordenar de forma utilizable y entonces se les denomina informacin. Una computadora es una mquina electrnica capaz de almacenar informacin y tratarla automticamente mediante operaciones matemticas y lgicas controladas por programas informticos. Una computadora para funcionar enciende o apaga circuitos electrnicos de acuerdo con sus necesidades. Cuando un circuito est encendido, la computadora lo representa con un valor de uno (1) y cuando el circuito est apagado lo representa con un valor de cero (0). Esto significa que, internamente, la computadora trabaja con ceros y unos. Por este motivo se dice que la computadora representa, almacena y procesa la informacin a travs del uso del sistema binario. Cada uno de los dgitos o nmeros que componen un nmero en el sistema binario se conoce con el nombre de bit (dgito binario). Por ejemplo, el nmero binario 1110101100 est compuesto por 10 . El byte es usado por la computadora para representar letras, nmeros y signos. Tambin recibe el nombre de carcter. 1 = 8 1 = una letra, nmero o signo 1 = un carcter del teclado Se concluye, entonces, que a la letra A, al nmero 4 o al signo +, la computadora lo entiende como una secuencia de unos y ceros agrupados en ocho dgitos, es decir 8 . En general, se tienen diversas unidades de medida de almacenamiento: 1 = un cero (0) o un uno (1), es la mnima unidad 1 = 8 = una letra, un nmero o un carcter del teclado 1 () = 1024 1 () = 1024 1 () = 1024 1 () = 1024 Las variables almacenan valores que pueden cambiar durante la ejecucin de un programa. Cuando se utiliza una variable, localidades de memoria son reservadas para almacenar a la variable, de esta manera el programa puede acceder y manipular el valor que contiene la variable. Una variable se compone del nombre de la variable que es utilizado para referirse al valor que contiene la variable y de un tipo de dato. El nombre de la variable debe seguir las siguientes reglas:

    Debe comenzar con un carcter alfabtico.

    No debe contener espacios.

    No debe contener smbolos como ., %, , #, @, $, etc.

    No debe nombrarse igual a otra funcin o palabra reservada propia del lenguaje usado. Los tipos de datos hacen referencia al tipo de informacin que se trabaja.

  • 5

    Variables de tipo entero. Son variables que almacenan nmeros enteros. Se pueden dividir en los siguientes tipos:

    Tipo Bytes ocupados en memoria Nombre Rango

    byte 1 Byte [-128,127]

    short 2 Entero corto [-32768,32767]

    int 4 Entero [-231,231-1]

    long 8 Entero largo [-263,263-1]

    Variables de tipo real o de punto flotante. Son variables que almacenan datos numricos con decimales. Se pueden dividir en los siguientes tipos:

    Tipo Bytes

    ocupados en memoria

    Nombre Rango en los negativos Rango en los positivos

    float o single

    4 Real de simple

    precisin [-3.4E38,-1.4E-45] [1.4E-45,3.4E38]

    double 8 Real de doble

    precisin [-1.8E308,-4.9E-324] [4.9E-324,1.8E308]

    Variables de tipo lgico o booleanas. Son variables que almacenan dos posibles valores: true (verdadero) o false (falso). Normalmente ocupan 2 bytes de memoria. Variables de tipo char o de carcter. Son variables que almacenan caracteres individuales (letra, nmero, signo, etc.). Normalmente ocupan 2 bytes de memoria. Con las cadenas de caracteres (string) se puede almacenar en una sola variable ms de un carcter, por ejemplo, en una variable se puede almacenar el nombre de una persona. Las variables string normalmente requieren en memoria 10 bytes ms un byte por cada carcter. OPERADORES ARITMTICOS Y SU ORDEN DE EVALUACIN El orden en que las operaciones aritmticas suma (+), resta (-), multiplicacin (*), divisin (/) y potencia (^) se evalan en una expresin, sigue las siguientes reglas de prioridad:

    Las expresiones se evalan de izquierda a derecha.

    Primero se realizan las potencias (^), despus las multiplicaciones (*) o divisiones (/) y finalmente las sumas (+) y restas (-).

    Es altamente recomendable el uso de parntesis con la finalidad de expresar operaciones de manera ordenada y clara, en cuyo caso la evaluacin inicia a partir del parntesis ms interno y se procede hacia afuera.

    INTERFAZ GRFICA DE USUARIO La programacin orientada a eventos es un paradigma de programacin en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema, normalmente definidos por el usuario. Mientras en la programacin secuencial, es el programador el que define cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio usuario el que dirija el flujo del programa. En la programacin dirigida por eventos, al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar bloqueado hasta que se produzca algn evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario haga click en el botn de ejecucin de un reproductor de pelculas, se ejecutar el cdigo del administrador de evento, que ser el que haga que la pelcula se muestre por pantalla. La programacin dirigida por eventos es la base de lo que se llama interfaz grfica de usuario (GUI). En los sistemas informticos, un tipo de relacin humano-computadora se realiza por medio de la interfaz grfica de usuario, conocida tambin como GUI (del ingls graphical user interface), que se podra definir como una especie de mediador entre la computadora y el usuario, el cual utiliza un conjunto de imgenes y objetos grficos para representar la informacin y acciones disponibles en la interfaz. Para disear una GUI es necesario analizar los objetivos o requerimientos del producto (programa) y de las tareas intermedias a realizar, as como conocer al usuario y establecer el tipo de dilogo o interaccin a efectuarse. A manera de conclusin, cuando una persona interacta con un sistema de cmputo, con la finalidad de procesar informacin digital, la GUI ser un mecanismo, entorno o herramienta que har posible dicha comunicacin o interaccin.

    http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/w/index.php?title=Administrador_de_evento&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Administrador_de_evento&action=edit&redlink=1http://es.wikipedia.org/wiki/Interfaz_de_usuariohttp://es.wikipedia.org/wiki/Idioma_ingl%C3%A9shttp://es.wikipedia.org/wiki/Iconohttp://es.wikipedia.org/wiki/Icono
  • 6

    SECUENCIA 1: Crear_nueva_GUI 1. Iniciar el programa de desarrollo de aplicaciones MATLAB. 2. En la ventana de comandos (command window), despus del smbolo de espera de rdenes >> (conocido

    como prompt), introducir la palabra guide (Entorno de Desarrollo de Interfaz Grfica de Usuario). 3. Aparece una ventana como la siguiente

    En esta ventana, en la lista GUIDE templates (plantillas) seleccionar Blank GUI (Default), para crear una nueva GUI en blanco. Presionar el pushbutton (botn de comando) OK.

    4. Aparece una ventana como la siguiente

    En esta ventana se puede desarrollar la GUI, seleccionando los controles del cuadro de herramientas ubicada en la parte izquierda de la ventana y dibujndolos en la figura o formulario.

    Los tipos de controles y su ubicacin estarn en funcin del diseo de la GUI, el cual a su vez depende del objetivo de la aplicacin y del usuario del mismo.

    5. Una vez dibujados los controles, es necesario especificar sus propiedades, ubicando el apuntador o cursor encima del control, presionando el botn derecho del ratn y seleccionando Propery Inspector.

  • 7

    Aparecer una ventana en la que se pueden editar propiedades tales como el color, posicin, tamao, tipo de fuente, etc. En la parte izquierda aparece la propiedad y en la derecha, el valor correspondiente de dicha propiedad, el cual puede ser modificado.

    6. Ya que se tengan dibujados todos los controles y se hayan establecido sus respectivas propiedades, de acuerdo con el diseo de la aplicacin, se procede a guardar la GUI, en la cinta de mens, seleccionar File (archivo), en el men que se despliega seleccionar Save as (guardar como)

  • 8

    Aparece la siguiente ventana

    En la que se selecciona una carpeta en la cual deseamos guardar la GUI. En el cuadro de texto correspondiente se especifica un nombre para la figura. El nombre del archivo no debe contener espacios, no usar acentos, ni comenzar con nmeros, ni contener smbolos como %, $, etc. La extensin para el archivo correspondiente a la figura es fig. Como convencin para las prcticas del curso de programacin la sintaxis para el nombre del archivo ser: Aplicacion_(Nmero de aplicacin)_(Nombre de la aplicacin)_Apellido Paterno_Apellido Materno_Nombre1_Nombre2

    En la lista de Tipo, se debe verificar que est seleccionado Figures (*.fig). Al presionar Guardar, se abrir el editor de MATLAB, en el cual se podr introducir el cdigo para la aplicacin.

    Para introducir el cdigo correspondiente al evento de un control en especfico, en necesario localizar el enunciado que contenga el tag (marcador o identificador) del control, el cual viene acompaado del evento. La sintaxis de lo anterior se muestra en la siguiente figura

    El control pushbutton1 (botn de comando 1) es seguido por el evento Callback (devolucin de llamada), i.e. cuando se presione el pushbutton1, se va a ejecutar el cdigo que se encuentra asignado a l y que se debe introducir debajo del rengln function control_evento(). Es necesario mencionar que el texto en color verde se conoce como comentario, el cual siempre inicia con el smbolo %.

    7. La GUI, que consta de dos archivos: la figura con extensin fig y el que contiene al cdigo con extensin m, se puede copiar a un sistema de almacenamiento (usb, cd, dvd, etc.) a partir de la carpeta en la que se guard originalmente. Es recomendable tener bien identificada la ruta de la carpeta en la que se guardaron.

  • 9

    8. Para abrir una GUI, es necesario repetir los pasos 1 y 2 de esta secuencia, en la ventana que aparece seleccionar la pestaa Open Existing GUI

    Se muestra una lista de los archivos abiertos recientemente. Si el archivo de nuestro inters aparece en esta lista, se selecciona y se presiona el botn Open (Abrir) y se abrir la figura para poderla editar. En caso de que en la lista no aparezca el archivo de nuestro inters, se debe presionar el botn Browse (Explorar), para buscar la ruta donde se encuentra la GUI. Si se requiere modificar el cdigo, es necesario seleccionar View (Ver) en la cinta de mens, y luego M-file Editor (Editor de Archivos con extensin m). Una vez abierto el editor se busca el cdigo por modificar.

    DESARROLLO DE LA PRCTICA

    Ejercicio 1. Comenzando con la SECUENCIA 1: Crear_nueva_GUI, desarrollar la aplicacin de acuerdo con lo que se especifica en el formato siguiente:

  • 10

    No. DE APLICACIN NOMBRE DE LA APLICACIN

    1 CALCULADORA SIMPLE

    Desarrollado por: Carlos Gmez Herrera Fecha: 2 de febrero de 2014

    DESCRIPCIN La aplicacin calcula el resultados de las operaciones de suma, resta, multiplicacin y divisin de dos valores

    VARIABLES DESCRIPCIN

    Valor1 Esta variable almacena el valor 1

    Valor2 Esta variable almacena el valor 2

    Resultado Esta variable almacena el resultado de la operacin

    DIAGRAMAS DE FLUJO OPERACIN SUMA: (Nota: el diagrama es similar para las otras operaciones)

    GUI: Aplicacion_1_Calculadora_Simple_Apellido Paterno_Apellido Materno_Nombre1_Nombre2.fig

    INICIO

    Entrada: Valor1, Valor2

    Proceso: ResultadoValor1+Valor2

    Salida: Resultado

    FIN

    1

    2

    3 4 5 6

    7 8 9 10

    11

    12

  • 11

    RESUMEN DE PROPIEDADES

    Control Tipo Propiedad Valor

    1 Static Text

    Tag stTitulo

    String CALCULADORA SIMPLE

    FontSize 15

    FontWeight bold

    HorizontalAlignment center

    2 Static Text

    Tag stInstrucciones

    String Instrucciones: Introduce dos valores numericos en los espacios respectivos y presiona el boton correspondiente a una operacion.

    HorizontalAlignment left

    3 Static Text

    Tag stValor1

    String Valor 1:

    HorizontalAlignment right

    4 Static Text

    Tag stValor2

    String Valor 2:

    HorizontalAlignment right

    5 Edit Text

    Tag etValor1

    String 0

    HorizontalAlignment center

    6 Edit Text

    Tag etValor2

    String 0

    HorizontalAlignment center

    7 Push

    Button

    Tag pbSuma

    String +

    HorizontalAlignment center

    FontSize 25

    FontWeight bold

    8 Push

    Button

    Tag pbResta

    String -

    HorizontalAlignment center

    FontSize 25

    FontWeight bold

    9 Push

    Button

    Tag pbMultiplicacion

    String *

    HorizontalAlignment center

    FontSize 25

    FontWeight bold

    10 Push

    Button

    Tag pbDivision

    String /

    HorizontalAlignment center

    FontSize 25

    FontWeight bold

    11 Static Text

    Tag stRespuesta

    String (vaco)

    FontSize 10

    FontWeight bold

    HorizontalAlignment center

    Background Color (A eleccin)

    Foreground Color (A eleccin)

    12 Axes Tag axes1

  • 12

    CDIGO

    CONTROL pbSuma

    % --- Executes on button press in pbSuma. function pbSuma_Callback(hObject, eventdata, handles) % hObject handle to pbSuma (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Valor1=str2double(get(handles.etValor1,'string')); Valor2=str2double(get(handles.etValor2,'string')); Resultado=Valor1+Valor2; Texto_Resultado=['El resultado de ' num2str(Valor1) ' + ' num2str(Valor2) ' es ' num2str(Resultado)]; set(handles.stResultado,'string',Texto_Resultado);

    CONTROL pbResta

    % --- Executes on button press in pbSuma. function pbSuma_Callback(hObject, eventdata, handles) % hObject handle to pbSuma (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Valor1=str2double(get(handles.etValor1,'string')); Valor2=str2double(get(handles.etValor2,'string')); Resultado=Valor1-Valor2; Texto_Resultado=['El resultado de ' num2str(Valor1) ' - ' num2str(Valor2) ' es ' num2str(Resultado)]; set(handles.stResultado,'string',Texto_Resultado);

    CONTROL pbMultiplicacion

    % --- Executes on button press in pbSuma. function pbSuma_Callback(hObject, eventdata, handles) % hObject handle to pbSuma (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Valor1=str2double(get(handles.etValor1,'string')); Valor2=str2double(get(handles.etValor2,'string')); Resultado=Valor1*Valor2; Texto_Resultado=['El resultado de ' num2str(Valor1) ' * ' num2str(Valor2) ' es ' num2str(Resultado)]; set(handles.stResultado,'string',Texto_Resultado);

    CONTROL pbDivision

    % --- Executes on button press in pbSuma. function pbSuma_Callback(hObject, eventdata, handles) % hObject handle to pbSuma (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Valor1=str2double(get(handles.etValor1,'string')); Valor2=str2double(get(handles.etValor2,'string')); Resultado=Valor1/Valor2; Texto_Resultado=['El resultado de ' num2str(Valor1) ' / ' num2str(Valor2) ' es ' num2str(Resultado)]; set(handles.stResultado,'string',Texto_Resultado);

    CONTROL figure

    % --- Executes just before Aplicacion_1_Calculadora_Simple_Gomez_Herrera_Carlos is made visible. function Aplicacion_1_Calculadora_Simple_Gomez_Herrera_Carlos_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Aplicacion_1_Calculadora_Simple_Gomez_Herrera_Carlos (see VARARGIN)

    % Choose default command line output for Aplicacion_1_Calculadora_Simple_Gomez_Herrera_Carlos handles.output = hObject;

  • 13

    % Update handles structure guidata(hObject, handles); % UIWAIT makes Aplicacion_1_Calculadora_Simple_Gomez_Herrera_Carlos wait for user response (see UIRESUME) % uiwait(handles.figure1); Imagen=imread('calculadora.jpg'); h1=handles.axes1; axes(h1); imagesc(Imagen); axis off;

    EJERCICIOS:

    Desarrollar una aplicacin para cada uno de los problemas que se plantean y documentar cada una de las aplicaciones siguiendo el formato de las pginas 8, 9, 10 y 11 insertndola a este archivo de acuerdo con el orden establecido:

    Nmero Aplicacin

    1 Clculo del Peso Volumtrico Seco Suelto y del Contenido de Humedad de agregados ptreos

    2 Clculo de las prdidas por friccin de flujos en conductos a presin usando la frmula de Darcy-Weisbach

    3 Clculo de la fuerza total de un fluido sobre una pared vertical

    4 Clculo del alcance y de la altura mxima de un lanzamiento oblicuo (Tiro parablico)

    5 Clculo de las reacciones en una viga simplemente apoyada

    6 Clculo del precio unitario de un metro cbico de concreto

    7 Clculo del Costo horario de maquinaria

    CONCLUSIONES O ACTIVIDADES DE CIERRE

    Actividad de cierre 1. Investigar y completar la tabla

    COMANDO O ELEMENTO DESCRIPCIN SINTAXIS

    guide

    figure

    imagesc

    static text

    edit text

    push button

    get

    set

    num2str

    str2double

    axes

    imread

    Actividad de cierre 2. Imprimir este archivo (incluyendo los ejercicios realizados) en formato pdf con el nombre

    Practica_Numero de Practica_Apellido Paterno_Apellido Materno_Nombre1_Nombre2 Por ejemplo: Practica_1_Gomez_Herrera_Carlos.pdf como evidencia del trabajo realizado en esta prctica y entregarlo en formato electrnico al encargado de la prctica.

  • 14

    No. DE PRCTICA

    NOMBRE DE LA PRCTICA DURACIN (h)

    2 CLCULO DE REAS Y

    PERMETROS DE FIGURAS REGULARES

    2

    OBJETIVO O COMPETENCIAS A DESARROLLAR Que el alumno conozca los controles ms utilizados en una GUI, as como las estructuras de decisin y los operadores lgicos y relacionales, mediante el desarrollo de una aplicacin orientada al clculo de propiedades de figuras, con la finalidad de proporcionarle herramientas para disear y posteriormente desarrollar programas aplicados a la solucin de problemas de ingeniera civil.

    EQUIPOS O MATERIALES NECESARIOS Computadora con MATLAB [1], [2] y [3] instalado, material bibliogrfico de diversas reas de la ingeniera civil.

    INTRODUCCIN O JUSTIFICACIN DE LA PRCTICA OPERADORES LGICOS Y RELACIONALES Los operadores relacionales son smbolos que se usan para comparar dos valores. Si el resultado de la comparacin es correcto, la expresin considerada es verdadera, en caso contrario es falsa.

    Operador Nombre Sintaxis

    < menor que <

    > mayor que >

    = igual a = =

    no igual a ~=, , =

    menor que o igual a =

    Los operadores lgicos permiten realizar expresiones lgicas complejas que permiten tomar decisiones durante la ejecucin de un programa.

    Operador Nombre Operacin Sintaxis

    p Negacin (No p) No not, ~

    p V q Disjuncin (p o q) O (or) or, ||

    p ^ q Conjuncin (p y q) Y (and) and, &&

    Algunos de los operadores de asignacin de un valor a una variable son

    operador significado ejemplo

    = a3 a=3

    += aa+1 a+=1, a=a+1

    -= aa-1 a-=1, a=a-1

    ^= aa^2 a^=2, a=a^2

    *= aa*2 a*=2, a=a*2

    /= aa/2 a/=2, a=a/2

    PROGRAMACIN ESTRUCTURADA La programacin estructurada es un conjunto de reglas que desarrollan hbitos para lograr un buen estilo de escribir programas, con la finalidad de que stos sean sencillos y fciles de entender. La idea clave detrs de la programacin estructurada es que cualquier algoritmo numrico requiere tan slo de tres estructuras de control fundamentales: secuencia, seleccin y repeticin, y que limitndose a esas estructuras el programa resultante ser claro y fcil de seguir. La estructura secuencial expresa la idea de que el cdigo debe realizarse instruccin por instruccin. La estructura de seleccin permite dividir el flujo del programa en ramas considerando el resultado de una condicin lgica. Finalmente, la estructura de repeticin proporciona una manera de llevar a cabo instrucciones de manera repetida.

  • 15

    ESTRUCTURAS CONDICIONALES DE SELECCIN La estructura condicional de seleccin/decisin es un tipo de estructura de control. Sirve para ejecutar (o no) un grupo de instrucciones, si se cumple una condicin. Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen tres tipos bsicos, las simples, las dobles y las mltiples. Estructura de Seleccin Simple: A las estructuras condicionales simples se les conoce como tomas de decisin. El pseudocdigo de este tipo de tomas de decisin tiene la siguiente estructura:

    En espaol En ingls

    si condicin instruccin(es) fin

    if condicin instruccin(es) end

    donde: si (if): Indica el comando de comparacin. condicin: Indica la condicin a evaluar. instruccin(es): Son las acciones a realizar cuando se cumple la condicin. fin (end): Fin de la estructura. Como diagrama de flujo, esta estructura se presenta de la forma siguiente:

    Estructura de Seleccin Doble: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin. Su pseudocdigo se representa de la siguiente forma:

    En espaol En ingls

    si condicin instruccin(es)(1) si no instruccin(es)(2) fin

    if condicin instruccin(es)(1) else instruccin(es)(2) end

    donde: si (if): Indica el comando de comparacin condicin: Indica la condicin a evaluar instruccin(es)(1): Son las acciones a realizar cuando se cumple la condicin si no (else): Precede a las acciones a realizar cuando no se cumple la condicin instruccin(es)(2): Son las acciones a realizar cuando no se cumple la condicin fin (end): Fin de la estructura. Como diagrama de flujo, esta estructura se presenta de la forma siguiente:

  • 16

    Estructura de Seleccin Mltiple: Las estructuras de comparacin mltiples, son tomas especializadas de decisin que permiten comparar el valor de una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especficas. La forma comn de pseudocdigo para esta estructura es la siguiente:

    En espaol En ingls

    si condicin(1) instruccin(es)(1) de otro modo si condicin(2) instruccin(es)(2)

    de otro modo si condicin(n) instruccin(es)(n) fin

    if condicin(1) instruccin(es)(1) elseif condicin(2) instruccin(es)(2)

    elseif condicin(n) instruccin(es)(n) fin

    donde: si (if): Indica el comando de comparacin. condicin(1): Indica la primera condicin a evaluar. instruccin(es)(1): Son las acciones a realizar cuando se cumple la condicin(1). de otro modo si (elseif): Precede a la evaluacin de una condicin, una vez que no se cumpli la anterior. condicin(2): Indica la segunda condicin a evaluar instruccin(es)(2): Son las acciones a realizar cuando se cumple la condicin(2). condicin(n): Indica la n-sima condicin a evaluar instruccin(es)(n): Son las acciones a realizar cuando se cumple la condicin(n). fin (end): Fin de la estructura. Como diagrama de flujo, esta estructura se puede presentar de la forma siguiente:

    DESARROLLO DE LA PRCTICA

    Ejercicio 1. Comenzando con la SECUENCIA 1: Crear_nueva_GUI, desarrollar la aplicacin de acuerdo con lo que se especifica en el formato siguiente:

  • 17

    No. DE APLICACIN NOMBRE DE LA APLICACIN

    8 CALCULO DE AREAS Y PERIMETROS DE FIGURAS REGULARES

    Desarrollado por: Carlos Gmez Herrera

    Fecha: 2 de febrero de 2014

    DESCRIPCIN La aplicacin calcula las reas y permetros de rectngulos, crculos y tringulos issceles.

    VARIABLES DESCRIPCIN

    base Almacena el valor de la longitud de la base del rectngulo

    altura Almacena el valor de la longitud de la altura del rectngulo

    radio Almacena el valor de la longitud del radio del crculo

    base_triangulo Almacena el valor de la longitud de la base del tringulo

    altura_triangulo Almacena el valor de la longitud de la altura del tringulo

    Area Almacena el resultado del clculo del rea de la figura

    Perimetro Almacena el resultado del clculo del permetro de la figura

    DIAGRAMAS DE FLUJO Seleccin de figura:

    INICIO

    Opcin seleccionada=

    Rectngulo

    Opcin seleccionada=

    Crculo

    1

    2

    Opcin seleccionada=

    Tringulo

    3

    FIN

    SI

    SI

    SI

    NO

    NO

    NO

  • 18

    Para el rectngulo:

    Para el crculo:

    Para el tringulo issceles:

    GUI: Aplicacion_8_Areas_Perimetros_Apellido Paterno_Apellido Materno_Nombre1_Nombre2.fig

    Entrada: base, altura

    Proceso: Areabase*altura Perimetro2*base+2*altura

    Salida: Area, Perimetro

    Entrada: radio

    Proceso: Area3.14159*radio2 Perimetro6.2832*radio

    Salida: Area, Perimetro

    Entrada: _, _

    Proceso: Area _ _/2

    Perimetro _ + _2 + 4 _2)

    Salida: Area, Perimetro

    1

    2

    3

  • 19

    RESUMEN DE PROPIEDADES

    Control Tipo Propiedad Valor

    1 Static Text

    Tag stTitulo

    String CALCULO DE AREAS Y PERIMETROS DE FIGURAS

    FontSize 15

    FontWeight bold

    HorizontalAlignment center

    2 Static Text

    Tag stInstrucciones

    String

    Instrucciones: Selecciona la opcion correspondiente a una figura, elige unidades en el menu despegable (activando la casilla de verficacion), especifica las dimensiones requeridas y, finalmente, presiona el boton calcular area y perimetro.

    HorizontalAlignment left

    3 Button Group

    Tag paFigura

    Title Figura

    4 Radio

    Button

    Tag rbRectangulo

    String Rectangulo

    Value 1

    5 Radio

    Button

    Tag RbCirculo

    String Circulo

    Value 0

    6 Radio

    Button

    Tag RbTriangulo

    String Triangulo Isosceles

    Value 0

    7 Check

    Box

    Tag chUnidades

    String Resultados con unidades

    Value 0

    8 Pop-up Menu

    Tag pmUnidades

    String cm plg

    Visible off

    9 Slider

    Tag slRadio

    Max 100

    Min 0

    1

    2

    3

    4

    5

    6

    7

    9

    10 11

    8

    1

    12

    13

    14

    15 16

    17

    18 19

  • 20

    Visible off

    10 Axes Tag axes1

    11 Push

    Button

    Tag pbAltura

    String Especificar altura

    Visible off

    12 Static Text

    Tag stAltura

    String Altura:

    13 Edit Text

    Tag etAltura

    String 0

    14 Static Text

    Tag stBase

    String Base:

    15 Push

    Button

    Tag pbBase

    String Especificar base

    Visible off

    16 Edit Text

    Tag etBase

    String 0

    17 Check

    Box

    Tag chResultado

    String Mostrar tambien resultado en caja de mensaje

    Value 0

    18 Push

    Button

    Tag pbCalcular

    String Calcular area y perimetro

    19 Static Text

    Tag stResultado

    String El area vale 0 y el perimetro vale 0

    FontSize 8

    FontWeight bold

    HorizontalAlignment center

    Background Color (A eleccin)

    Foreground Color (A eleccin)

    CDIGO

    CONTROL figure

    % --- Executes just before Aplicacion_8_Areas_Perimetros_Gomez_Herrera_Carlos is made visible. function Aplicacion_8_Areas_Perimetros_Gomez_Herrera_Carlos_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for Aplicacion_8_Areas_Perimetros_Gomez_Herrera_Carlos handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Aplicacion_8_Areas_Perimetros_Gomez_Herrera_Carlos wait for user response (see UIRESUME) % uiwait(handles.figure1); Imagen_rectangulo=imread('rectangulo.jpg'); h1=handles.axes1; axes(h1); imagesc(Imagen_rectangulo); axis off;

  • 21

    CONTROL paFigura

    % --- Executes when selected object is changed in paFigura. function paFigura_SelectionChangeFcn(hObject, eventdata, handles) Imagen_rectangulo=imread('rectangulo.jpg'); Imagen_circulo=imread('circulo.jpg'); Imagen_triangulo=imread('triangulo.jpg'); h1=handles.axes1; axes(h1); opcion_rectangulo=get(handles.rbRectangulo,'value'); opcion_circulo=get(handles.rbCirculo,'value'); opcion_triangulo=get(handles.rbTriangulo,'value'); if opcion_rectangulo==1 imagesc(Imagen_rectangulo); set(handles.slRadio,'visible','off'); set(handles.pbBase,'visible','off'); set(handles.pbAltura,'visible','off'); set(handles.stBase,'visible','on'); set(handles.stAltura,'visible','on'); set(handles.etBase,'visible','on'); set(handles.etAltura,'visible','on'); elseif opcion_circulo==1 imagesc(Imagen_circulo); set(handles.slRadio,'visible','on'); set(handles.pbBase,'visible','off'); set(handles.pbAltura,'visible','off'); set(handles.stBase,'visible','off'); set(handles.stAltura,'visible','on'); set(handles.stAltura,'string',['Radio=0']); set(handles.etBase,'visible','off'); set(handles.etAltura,'visible','off'); elseif opcion_triangulo==1 imagesc(Imagen_triangulo); set(handles.slRadio,'visible','off'); set(handles.pbBase,'visible','on'); set(handles.pbAltura,'visible','on'); set(handles.stBase,'visible','on'); set(handles.stAltura,'visible','on'); set(handles.stBase,'string',['Base=0']); set(handles.stAltura,'string',['Altura=0']); set(handles.etBase,'visible','off'); set(handles.etAltura,'visible','off'); end axis off;

    CONTROL slRadio

    % --- Executes on slider movement. function slRadio_Callback(hObject, eventdata, handles) global radio; radio=get(handles.slRadio,'value'); texto=['Radio= ' num2str(radio)]; set(handles.stAltura,'string',texto);

    CONTROL pbAltura

    % --- Executes on button press in pbAltura. function pbAltura_Callback(hObject, eventdata, handles) global altura_triangulo; altura_triangulo=str2double(inputdlg('Especifica cuanto mide la altura')); texto=['Altura= ' num2str(altura_triangulo)]; set(handles.stAltura,'string',texto);

  • 22

    CONTROL pbBase

    % --- Executes on button press in pbBase. function pbBase_Callback(hObject, eventdata, handles) global base_triangulo; base_triangulo=str2double(inputdlg('Especifica cuanto mide la base')); texto=['Base= ' num2str(base_triangulo)]; set(handles.stBase,'string',texto);

    CONTROL chUnidades

    % --- Executes on button press in chUnidades. function chUnidades_Callback(hObject, eventdata, handles) seleccion_Unidades=get(handles.chUnidades,'value'); if seleccion_Unidades==1 set(handles.pmUnidades,'visible','on'); else set(handles.pmUnidades,'visible','off'); end

    CONTROL pbCalcular

    % --- Executes on button press in pbCalcular. function pbCalcular_Callback(hObject, eventdata, handles)

    opcion_rectangulo=get(handles.rbRectangulo,'value'); opcion_circulo=get(handles.rbCirculo,'value'); opcion_triangulo=get(handles.rbTriangulo,'value'); if opcion_rectangulo==1 base=str2double(get(handles.etBase,'string')); altura=str2double(get(handles.etAltura,'string')); Area=base*altura; Perimetro=2*base+2*altura; elseif opcion_circulo==1 global radio; Area=3.14159*radio^2; Perimetro=6.2832*radio; elseif opcion_triangulo==1 global base_triangulo; global altura_triangulo; Area= base_triangulo*altura_triangulo/2; Perimetro=base_triangulo+sqrt(base_triangulo^2+4*altura_triangulo^2); end seleccion_Unidades=get(handles.chUnidades,'value');

    if seleccion_Unidades==0 texto=['El area vale ' num2str(Area) ' y el perimetro vale ' num2str(Perimetro)]; else tipo_unidad=get(handles.pmUnidades,'value'); if tipo_unidad==1 unidad=['cm']; elseif tipo_unidad==2 unidad=['plg']; end texto=['El area vale ' num2str(Area) ' ' unidad '2 y el perimetro vale ' num2str(Perimetro) ' ' unidad]; end set(handles.stResultado,'string',texto); seleccion_caja=get(handles.chResultado,'value'); if seleccion_caja==1 msgbox(texto); end

  • 23

    EJERCICIOS:

    Desarrollar una aplicacin para cada uno de los problemas que se plantean y documentar cada una de las aplicaciones siguiendo el formato de las pginas 8, 9, 10 y 11, insertndola a este archivo de acuerdo con el orden establecido:

    Nmero Aplicacin

    9 Ingresar la calificacin de un examen y determinar si es aprobatoria o no lo es.

    10 Convertir temperaturas de grados Celsius a grados Fahrenheit y viceversa.

    11 Convertir cantidades entre diversas monedas: Pesos mexicanos, dlares americanos, euros y libras esterlinas.

    12 Determinar si el rgimen de un flujo en una tubera es laminar, de transicin o turbulento, una vez conocido el dimetro de la tubera, as como la velocidad, densidad y viscosidad del fluido.

    13 Calcular las reacciones en una viga simplemente apoyada bajo carga puntual o carga uniformemente distribuida, en la figura se debe poder seleccionar la condicin de carga deseada.

    14 Calcular el precio unitario de un metro cbico de concreto para resistencias de fc=150, 200 o 250 kg/cm2, en la figura se debe poder seleccionar la resistencia deseada.

    CONCLUSIONES O ACTIVIDADES DE CIERRE

    Actividad de cierre 1. Investigar y completar la tabla

    COMANDO O ELEMENTO DESCRIPCIN SINTAXIS

    global

    inputdlg

    msgbox

    sqrt

    Button group

    Radio Button

    Slider

    Check Box

    Pop-up Menu

    Actividad de cierre 2. Imprimir este archivo (incluyendo los ejercicios realizados) en formato pdf con el nombre

    Practica_Numero de Practica_Apellido Paterno_Apellido Materno_Nombre1_Nombre2 Por ejemplo: Practica_2_Gomez_Herrera_Carlos.pdf como evidencia del trabajo realizado en esta prctica y entregarlo en formato electrnico al encargado de la prctica.

  • 24

    No. DE PRCTICA NOMBRE DE LA PRCTICA DURACIN (h)

    3 GRAFICACIN DE

    FUNCIONES 2

    OBJETIVO O COMPETENCIAS A DESARROLLAR Que el alumno conozca los comandos bsicos para graficar, as como diversas funciones de librera, mediante el desarrollo de una aplicacin que permita graficar funciones, con la finalidad de proporcionarle herramientas para disear y posteriormente desarrollar programas aplicados a la solucin de problemas de ingeniera civil.

    EQUIPOS O MATERIALES NECESARIOS Computadora con MATLAB [1], [2] y [3] instalado, material bibliogrfico de diversas reas de la ingeniera civil.

    INTRODUCCIN O JUSTIFICACIN DE LA PRCTICA GRFICAS BIDIMENSIONALES EN MATLAB

    Para graficar un conjunto de puntos de datos ((), ()), para = 1,2, , , es necesario definir dos arreglos o listados, tambin de tamao , uno para las coordenadas y otro para las coordenadas . Esto se hace mediante la sintaxis = [(1) (2) ()]. Una vez especificados los dos arreglos, la grfica de los datos se obtiene con la funcin plot, mediante la sintaxis (, ). Por ejemplo, la secuencia de instrucciones = [0 1 2 4 8]; = [0 1 4 16 64]; (, ); muestra la grfica

    Es posible crear un arreglo equiespaciado mediante la sintaxis = (1): : (), donde (1) es el primer valor del arreglo, () es el ltimo valor del arreglo y es un nmero entero que indica el espaciamiento entre los datos. Por ejemplo = 0: 2: 8; Genera un arreglo igual al que se crea con = [0 2 4 6 8]; Este tipo de sintaxis es til, principalmente en arreglos de gran tamao. Los arreglos de datos pueden ser usados como argumentos de funciones, por ejemplo, si = [0 2 4 6 8]; y se define = + 3;

  • 25

    se tendr que = [3 5 7 9 11]; Ahora bien, si se define = 4 . ^2 + 3 + 1 Se obtendr = [1 23 77 163 281]; Se puede observar el uso de un punto antes del smbolo de potenciacin ^; esto es necesario para indicar que la potenciacin se deber realizar elemento por elemento del conjunto de datos del arreglo. De omitirlo, el programa intentar elevar al cuadrado la matriz de orden 1 , lo cual no se puede llevar a cabo. Existe, tambin, un buen nmero de funciones de librera disponibles:

    Funcin Nombre Sintaxis

    () seno ()

    () coseno ()

    () tangente ()

    () arcoseno ()

    () arcocoseno ()

    () arcotangente () || Valor absoluto ()

    Raz cuadrada ()

    Exponencial base e ()

    () Logaritmo natural ()

    10() Logaritmo base 10 10()

    Redondear al entero ms cercano ()

    Entonces, si se quiere graficar la funcin = () en el intervalo [2, 2], se puede ejecutar la secuencia de instrucciones = 6.2832: 0.05: 6.2832; = (); (, ); mostrndose la grfica

    Hay que hacer notar que se estableci un paso pequeo en la definicin del arreglo , con la finalidad de brindar una mayor suavidad a la curva, i.e., una mejor definicin.

  • 26

    Cuando se multiplican dos funciones cuyos argumentos sean arreglos del mismo orden, el smbolo * debe ir

    antecedido tambin por un punto. Por ejemplo, si la funcin que se desea graficar es = ()0.5 en el intervalo [0,10], la secuencia de instrucciones = 0: 0.05: 10; = (). (0.5 ); (, ); Muestra la grfica

    Si se desea incorporar rtulos a los ejes se utilizan los comandos

    Comando Descripcin Sintaxis

    Rotula el eje de las abscisas ()

    Rotula el eje de las ordenadas ()

    A manera de ejemplo, la secuencia de instrucciones = 0: 0.05: 10; = (). (0.5 ); (, ); ( ); (); Mostrar la grfica

  • 27

    Los datos pueden graficarse slo con marcas si estar conectados por lneas. Se dispone de los siguientes tipos de marcas

    Tipo de marca Punto Ms Asterisco Crculo Equis

    Smbolo . + * o x

    La sintaxis para graficar con marcas es (, , ), por ejemplo = 0: 0.1: 5; = (). (0.5 ); (, , ); ( ); (); Graficar

    Si se desea graficar tanto con lneas como con marcas, agregar un guin despus del smbolo de marca. Para el caso mostrado esto sera de la forma (, , ); quedando la grfica de la manera siguiente:

    De igual manera se pueden manejar diferentes tipos de lneas:

    Tipo de lnea Continua Discontinua Punteada Punto y guin

    Smbolo - - - : -.

    La sintaxis para emplear lo anterior es (, , ), por ejemplo

  • 28

    = 0: 0.1: 5; = (). (0.5 ); (, , ); ( ); (); Graficar

    Tambin se puede graficar una funcin con una lnea de cierto color. Los colores disponibles son

    Color Smbolo

    rojo r

    amarillo y

    magenta m

    turquesa c

    verde g

    azul b

    blanco w

    negro k

    La sintaxis para emplear un color es (, , ), por ejemplo = 0: 0.1: 5; = (). (0.5 ); (, , ); ( ); (); Graficar

  • 29

    Es posible combinar marcas, tipos de lnea y colores, por ejemplo = 0: 0.1: 5; = (). (0.5 ); (, ,+ ); ( ); (); Dar como resultado la grfica

    Se puede visualizar una rejilla que funcione como referencia mediante el comando grid on. Para remover la rejilla se utiliza grid off. Para la secuencia de instrucciones = 0: 0.1: 5; = (). (0.5 ); (, , ); ( ); (); ; Se obtendr la grfica

    Para omitir los ejes de coordenadas se emplea el comando axis off. Para visualizarlos nuevamente se utiliza axis on. Para la secuencia de instrucciones = 0: 0.1: 5; = (). (0.5 ); (, , ); ; Se obtendr la grfica

  • 30

    El mximo y el mnimo de las coordenadas se pueden especificar con la sintaxis

    ([, , , ]); Por ejemplo, la secuencia de instrucciones = 0: 0.1: 5; = (). (0.5 ); (, , ); ; ([3,7, 1,1]); Cambia las fronteras de los ejes, al intervalo [3,7] en el eje y al intervalo [1,1] en el eje , como se observa en la figura

    En ocasiones es necesario agregar una curva a otra que ya se traz. Esto se puede realizar con el comando hold on. Una vez ejecutado este comando, la curva o curvas permanecen en los ejes incluso si se agregan ms, por lo que, para cuando se desea dejar de incorporar curvas se utiliza el comando hold off. La secuencia de instrucciones ; = 6.28: 0.05: 6.28; = (); (, ,+ ); ; ([7,7, 2,2]); ; = (); (, , ); ; genera la grfica

  • 31

    Se puede insertar texto en la grfica con el comando text cuya sintaxis es (, , ); los valores de y indican las ubicacin con respecto al eje y , respectivamente. Posteriormente se teclea el texto, entre apstrofes, que se desea que aparezca en dicha posicin. Por ejemplo

    ; = 6.28: 0.05: 6.28; = (); (, ,+ ); ; ([7,7, 2,2]); ; = (); (, , ); (0,1.2, = cos ()); (2, 1.2, = sen ()); ;

    genera la grfica

    DESARROLLO DE LA PRCTICA

    Ejercicio 1. Comenzando con la SECUENCIA 1: Crear_nueva_GUI, desarrollar la aplicacin de acuerdo con lo que se especifica en el formato siguiente:

  • 32

    No. DE APLICACIN

    NOMBRE DE LA APLICACIN

    15 GRAFICACIN DE FUNCIONES

    Desarrollado por:

    Carlos Gmez Herrera

    Fecha: 2 de febrero de 2014

    DESCRIPCIN La aplicacin grafica funciones definidas por el usuario.

    VARIABLES DESCRIPCIN

    xmin Almacena el lmite inferior del dominio por graficar

    xmax Almacena el lmite superior del dominio por graficar

    x Almacena un arreglo con elementos que inician en xmin y terminan en xmax, usando un paso determinado

    y Almacena un arreglo con elementos que resultan de evaluar los elementos del arreglo x

    DIAGRAMAS DE FLUJO Graficacin:

    GUI: Aplicacion_15_Graficacion_Apellido Paterno_Apellido Materno_Nombre.fig

    INICIO

    FIN

    Entrada: funcin f(x),

    xmin, xmax

    x[xmin, xmin+0.1,,xmax]; y[f(xmin), f(xmin+0.1),, f(xmax)];

    Salida: desplegar grfica

    y=f(x)

  • 33

    RESUMEN DE PROPIEDADES

    Control Tipo Propiedad Valor

    1 Static Text

    Tag stTitulo

    String GRAFICACION DE FUNCIONES

    FontSize 15

    FontWeight bold

    HorizontalAlignment center

    2 Static Text

    Tag stInstrucciones

    String

    Instrucciones: Introduzca una funcin, especifique los lmites del eje x (dominio) y presiona el botn graficar. Se puede localizar un punto en la curva, habilitando la casilla de verificacin y especificando un valor en el eje de abscisas con la barra de desplazamiento.

    HorizontalAlignment center

    3 Static Text

    Tag stFuncion

    String Introduce una funcin f(x)

    HorizontalAlignment center

    4 Edit Text

    Tag etFuncion

    String x

    HorizontalAlignment center

    5 Push

    button

    Tag pbGraficar

    String Graficar

    HorizontalAlignment center

    6 Axes Tag axes1

    7 Axes Tag axes2

    8 Static Text

    Tag stXmin

    String x_min

    HorizontalAlignment center

    9 Static Text

    Tag stXmax

    String x_max

    HorizontalAlignment center

    10 Edit Text

    Tag etXmin

    String 0

    1 2

    3 4 5

    6 7

    8 9

    10 11 12

    13

    14

    15

  • 34

    HorizontalAlignment center

    11 Edit Text

    Tag etXmax

    String 0

    HorizontalAlignment center

    12 Static Text

    Tag stLogaritmica

    String Grafica con escala logaritmica

    HorizontalAlignment center

    13 Check

    Box

    Tag chLocalizar

    String Localizar punto

    Value 0

    14 Static Text

    Tag stLocalizar

    String (x,f(x))=(0,0)

    Visible off

    15 Slider

    Tag slLocalizar

    min 0

    max 1

    Visible off

    CDIGO

    CONTROL pbGraficar

    % --- Executes on button press in pbGraficar. function pbGraficar_Callback(hObject, eventdata, handles) % hObject handle to pbGraficar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) xmin=str2double(get(handles.etXmin,'string')); xmax=str2double(get(handles.etXmax,'string')); x=xmin:0.1:xmax; f=char(get(handles.etFuncion,'string')); f=inline(f); y=f(x); axes(handles.axes1); cla; plot(x,y,'-b'); grid on; axis([xmin-1,xmax+1,min(y)-1,max(y)+1]); axes(handles.axes2); cla; semilogy(x,y,'-g'); grid on;

    CONTROL chLocalizar

    % --- Executes on button press in chLocalizar. function chLocalizar_Callback(hObject, eventdata, handles) % hObject handle to chLocalizar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of chLocalizar

    habilitado=get(handles.chLocalizar,'value'); xmin=str2double(get(handles.etXmin,'string')); xmax=str2double(get(handles.etXmax,'string')); set(handles.slLocalizar,'min',xmin); set(handles.slLocalizar,'max',xmax); f=char(get(handles.etFuncion,'string')); f=inline(f);

    if habilitado==1 set(handles.stLocalizar,'visible','on'); set(handles.slLocalizar,'visible','on'); set(handles.stLocalizar,'string',['(x,f(x))=(' num2str(xmin) ',' num2str(f(xmin)) ')']); axes(handles.axes1);

  • 35

    hold on; plot(xmin,f(xmin),'or'); plot([xmin xmin],[0 f(xmin)],'--r'); else set(handles.stLocalizar,'visible','off'); set(handles.slLocalizar,'visible','off'); x=xmin:0.1:xmax; y=f(x); axes(handles.axes1); cla; plot(x,y,'-b'); grid on; axis([xmin-1,xmax+1,min(y)-1,max(y)+1]); end

    CONTROL slLocalizar

    % --- Executes on slider movement. function slLocalizar_Callback(hObject, eventdata, handles) % hObject handle to slLocalizar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of % slider xmin=str2double(get(handles.etXmin,'string')); xmax=str2double(get(handles.etXmax,'string')); set(handles.slLocalizar,'min',xmin); set(handles.slLocalizar,'max',xmax); f=char(get(handles.etFuncion,'string')); f=inline(f); x=xmin:0.1:xmax; y=f(x); axes(handles.axes1); cla; plot(x,y,'-b'); grid on; axis([xmin-1,xmax+1,min(y)-1,max(y)+1]); hold on; valorx=get(handles.slLocalizar,'value'); plot(valorx,f(valorx),'or'); plot([valorx valorx],[0 f(valorx)],'--r'); set(handles.stLocalizar,'string',['(x,f(x))=(' num2str(valorx) ',' num2str(f(valorx)) ')']);

    EJERCICIOS:

    Desarrollar una aplicacin para cada uno de los problemas que se plantean y documentar cada una de las aplicaciones siguiendo el formato de las pginas 8, 9, 10 y 11 insertndola a este archivo de acuerdo con el orden establecido:

    Nmero Aplicacin

    16 Solucin de una ecuacin de primer grado, graficar la funcin correspondiente y sealar grficamente la raz

    17 Solucin de una ecuacin de segundo grado usando la frmula general, graficar la funcin correspondiente y sealar grficamente las races. Contemplar la posibilidad de que las races sean complejas e indicarlo con mensaje.

    18 Solucin de una ecuacin de tercer grado usando el mtodo de Cardano-Tartaglia, graficar la funcin correspondiente y sealar grficamente las races. Contemplar la posibilidad de que existan las races complejas e indicarlo con un mensaje.

  • 36

    19 Clculo de una aproximacin del valor numrico de la derivada en un punto dado. Graficar la funcin, localizar el punto y trazar la recta tangente en el punto indicado.

    20 Conversin de coordenadas polares a rectangulares y viceversa. Graficar.

    21 Conversin de coordenadas rectangulares a coordenadas cilndricas y a coordenadas esfricas y viceversa.

    22 Resolucin de tringulos rectngulos. Graficar el tringulo.

    23 Calcular la suma de dos vectores concurrentes, dadas sus longitudes y sus direcciones. Graficar los vectores y la resultante.

    CONCLUSIONES O ACTIVIDADES DE CIERRE

    Actividad de cierre 1. Investigar y completar la tabla

    COMANDO O ELEMENTO DESCRIPCIN SINTAXIS

    char

    inline

    cla

    plot

    loglog

    semilogx

    semilogy

    hold on

    hold off

    polar

    axis

    Actividad de cierre 2. Imprimir este archivo (incluyendo los ejercicios realizados) en formato pdf con el nombre

    Practica_Numero de Practica_Apellido Paterno_Apellido Materno_Nombre1_Nombre2 Por ejemplo: Practica_1_Gomez_Herrera_Carlos.pdf como evidencia del trabajo realizado en esta prctica y entregarlo en formato electrnico al encargado de la prctica.

  • 37

    No. DE PRCTICA NOMBRE DE LA PRCTICA DURACIN (h)

    4 MTODO DE BISECCIN 2

    OBJETIVO O COMPETENCIAS A DESARROLLAR Que el alumno sea capaz de utilizar estructuras de control repetitivas, mediante el desarrollo de programas orientados a la bsqueda de races de ecuaciones, con la finalidad de proporcionarle herramientas para disear y posteriormente desarrollar programas aplicados a la solucin de problemas de ingeniera civil.

    EQUIPOS O MATERIALES NECESARIOS Computadora con MATLAB [1], [2] y [3] instalado, material bibliogrfico de diversas reas de la ingeniera civil.

    INTRODUCCIN O JUSTIFICACIN DE LA PRCTICA ESTRUCTURAS DE REPETICIN Este tipo de estructuras controlan un conjunto de instrucciones que deben repetirse cierto nmero de veces, mientras se cumple una condicin. El cumplimiento de esta condicin se comprobar en cada repeticin o bucle. Estructura de Repeticin para (for): Es una de las estructuras ms utilizadas. El ciclo para (for) ejecuta un bloque de instrucciones un nmero determinado de veces. Este nmero de veces est determinado por una variable contadora (de tipo entero) que toma valores desde un lmite inferior hasta un lmite superior. En cada ciclo despus de ejecutar el bloque de instrucciones, la variable contadora es incrementada o reducida en un valor constante llamado paso o espaciado (step) automticamente y en el momento en que la variable sobrepasa el lmite superior el ciclo termina. El pseudocdigo de este tipo de estructura tiene la forma siguiente:

    En espaol En ingls

    para contador=valor_inicio:paso:valor_fin instruccin(es) fin

    for contador=valor_inicio:step:valor_fin instruccin(es) end

    donde: para (for): Indica el inicio de los ciclos contador: variable que almacena los valores asociados con las repeticiones. valor_inicio: indica el lmite inferior del contador. valor_fin: indica el lmite superior del contador. step: es un valor constante con el cual se incrementa o reduce el valor del contador. instruccin(es): Son las acciones a realizar el nmero de veces indicado, el cual es controlado por el contador. fin (end): Fin de la estructura. Como diagrama de flujo, esta estructura se presenta de la forma siguiente:

  • 38

    En caso de que se desee salir de los ciclos una vez cumplida una condicin antes de llegar al valor final del contador, se utiliza la instruccin terminar_ciclos (break), la cual detiene la ejecucin de los ciclos.

    En espaol En ingls

    para contador=valor_inicio:paso:valor_fin instruccin(es) si (condicin) terminar_ciclos fin fin

    for contador=valor_inicio:step:valor_fin instruccin(es) if (condicin) break end end

    Su diagrama de flujo es de la forma:

    Estructura de Repeticin mientras (while): El ciclo mientras permite ejecutar un bloque de instrucciones mientras que una expresin lgica dada se cumpla, es decir, mientras su evaluacin d como resultado verdadero. La expresin lgica se denomina condicin y siempre se evala antes de ejecutar el bloque de instrucciones. Si la condicin no se cumple, el bloque no se ejecuta. Si la condicin se cumple, el bloque se ejecuta, despus de lo cual la instruccin vuelve a empezar y la condicin se vuelve a evaluar, de manera sucesiva. En el caso en que la condicin evale la primera vez como falsa, el bloque de instrucciones no ser ejecutado, lo cual quiere decir que el nmero de repeticiones o iteraciones de este bloque ser cero. Si la condicin siempre evala a verdadero, la instruccin se ejecutar indefinidamente, es decir, un nmero infinito de veces. Entonces la diferencia entre mientras (while) y para (for), consiste en que en el segundo se conoce, a priori, el nmero de iteraciones a realizar y en el primero no. El pseudocdigo de este tipo de estructura tiene la forma siguiente:

    En espaol En ingls

    mientras condicin instruccin(es) fin

    while condicin instruccin(es) end

  • 39

    donde: mientras (while): Indica el inicio de los ciclos sujetos a una condicin condicin: Si es verdadera se repiten las instrucciones, si es falsa se dejan de ejecutar. instruccin(es): Son las acciones a realizar hasta que la condicin sea falsa. fin (end): Fin de la estructura.

    El diagrama de flujo correspondiente es de la forma:

    DESARROLLO DE LA PRCTICA

    Ejercicio 1. Comenzando con la SECUENCIA 1: Crear_nueva_GUI, desarrollar la aplicacin de acuerdo con lo que se especifica en el formato siguiente:

  • 40

    No. DE APLICACIN NOMBRE DE LA APLICACIN

    24 METODO DE BISECCION

    Desarrollado por: Carlos Gmez Herrera

    Fecha: 2 de febrero de 2014

    DESCRIPCIN La aplicacin calcula el resultados de las operaciones de suma, resta, multiplicacin y divisin de dos valores

    VARIABLES DESCRIPCIN

    Almacena el lmite inferior del intervalo

    Almacena el lmite inferior del intervalo

    Tol Tolerancia usada como criterio de paro

    Nmax Nmero mximo de iteraciones

    Almacena la raz de una iteracin anterior

    Almacena la raz de una iteracin nueva

    Contador de las iteraciones

  • 41

    DIAGRAMAS DE FLUJO MTODO DE BISECCIN:

    GUI: Aplicacion_24_Biseccion_Apellido Paterno_Apellido Materno_Nombre1_Nombre2.fig

    INICIO

    Entrada: Funcin , lmite inferior del intervalo , lmite superior del intervalo b, Tolerancia Tol, Nmero mximo de iteraciones Nmax

    +

    2

    () () 0 No

    S

    No

    S

    |

    |

    No

    S

    () () 0

    S

    No

    + 1

    Salida2: Raz

    FIN

    1

    Salida1: Mensaje Es posible que no haya raz en este intervalo

    Salida3: Mensaje Raz no encontrada despus de Nmax iteraciones

  • 42

    RESUMEN DE PROPIEDADES

    Control Tipo Propiedad Valor

    1 Static Text

    Tag stTitulo

    String METODO DE BISECCION

    FontSize 15

    FontWeight bold

    HorizontalAlignment center

    2 Static Text

    Tag stInstrucciones

    String

    Instrucciones: Indica una funcin y los limites tanto inferior como superior del intervalo de bsqueda, as como la Tolerancia y el nmero mximo de iteraciones. Posteriormente selecciona una opcin del men para encontrar una aproximacin a la raz.

    HorizontalAlignment left

    3 Static Text

    Tag stFuncion

    String Indica la funcin f(x)=

    HorizontalAlignment right

    4 Edit Text

    Tag etFuncion

    String x

    HorizontalAlignment centar

    5 Static Text

    Tag stRaiz

    String La raz aproximada vale 0

    HorizontalAlignment center

    6 Static Text

    Tag stLimiteInferior

    String Indica el lmite inferior del intervalo a=

    HorizontalAlignment center

    7 Edit Text

    Tag etLimInferior

    String 0

    HorizontalAlignment center

    8 Static Text

    Tag stLimiteSuperior

    String Indica el lmite superior del intervalo b=

    HorizontalAlignment center

    1

    2

    3 4 5

    6 7 8 9

    10 11 12 13

    14

  • 43

    9 Edit Text

    Tag etLimSuperior

    String 1

    HorizontalAlignment center

    10 Static Text

    Tag stTolerancia

    String Indica el valor de la tolerancia Tol=

    HorizontalAlignment center

    11 Edit Text

    Tag etTolerancia

    String 0.001

    HorizontalAlignment center

    12 Static Text

    Tag stNmax

    String Indica el nmero mximo de iteraciones

    HorizontalAlignment center

    13 Edit Text

    Tag etNmax

    String 100

    HorizontalAlignment center

    14 Axes Tag axes1

    En esta aplicacin se utilizar un men de tres opciones: el primero encontrar una aproximacin a la raz sin mostrar

    grficamente el procedimiento, el segundo si lo mostrar y seleccionar el tercero saldr de la aplicacin.

    Para agregar un men a la aplicacin es necesario presionar el men Tools, y se selecciona la opcin Menu Editor

    Aparece la ventana

    en la que se podr crear un men desplegable, presionando el botn New men (el primero de izquierda a

    derecha). Para aadir elementos al men es necesario presionar el botn New men tem (el segundo de

    izquierda a derecha). Para modificar la jerarqua de estos elementos se utilizan las flechas .

    En la parte derecha de la ventana aparecen las propiedades del men, donde se puede cambiar tanto el texto que se

    desea que aparezca (Label) as como el identificador del elemento (Tag). Cuando ya se tiene el men completo, se

    presiona OK.

    Control Tipo Propiedad Valor

    15 Menu Tag mnuRaiz

    Label Encontrar raiz

  • 44

    15.1 Menu Tag mnuSin

    Label Sin procedimiento

    15.2 Menu Tag mnuCon

    Label Con procedimiento

    15.3 Menu Tag mnuSalir

    Label Salir

    CDIGO

    CONTROL mnuSin

    % -------------------------------------------------------------------- function mnuSin_Callback(hObject, eventdata, handles) % hObject handle to mnuSin (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %Entrada de datos: f=char(get(handles.etFuncion,'string')); f=inline(f); a=str2double(get(handles.etLimInferior,'string')); b=str2double(get(handles.etLimSuperior,'string')); Tol=str2double(get(handles.etTolerancia,'string')); Nmax=str2double(get(handles.etNmax,'string')); ag=a; bg=b; %Salida comun: %Grafica x=a:0.1:b; y=f(x); axes(handles.axes1); cla; plot(x,y,'-b'); grid on; axis([ag-1,bg+1,min(y)-1,max(y)+1]); %Proceso: if f(a)*f(b)

  • 45

    iter=iter+1; end end if iter>Nmax %Salida3: set(handles.stRaiz,'string',['Raiz no encontrada despues de ' num2str(Nmax) ' iteraciones']); for repeticiones=1:2 set(handles.stRaiz,'BackgroundColor',[1 1 1]); set(handles.stRaiz,'ForegroundColor',[0 0 0]); pause(1); set(handles.stRaiz,'BackgroundColor',[1 0 0]); set(handles.stRaiz,'ForegroundColor',[1 1 1]); pause(1); end end else %Salida1: set(handles.stRaiz,'string','Es posible que no haya raiz en este intervalo'); for repeticiones=1:2 set(handles.stRaiz,'BackgroundColor',[1 1 1]); set(handles.stRaiz,'ForegroundColor',[0 0 0]); pause(1); set(handles.stRaiz,'BackgroundColor',[1 0 0]); set(handles.stRaiz,'ForegroundColor',[1 1 1]); pause(1); end end

    CONTROL mnuCon

    % -------------------------------------------------------------------- function mnuCon_Callback(hObject, eventdata, handles) % hObject handle to mnuCon (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %Entrada de datos: %Entrada de datos: f=char(get(handles.etFuncion,'string')); f=inline(f); a=str2double(get(handles.etLimInferior,'string')); b=str2double(get(handles.etLimSuperior,'string')); Tol=str2double(get(handles.etTolerancia,'string')); Nmax=str2double(get(handles.etNmax,'string')); ag=a; bg=b; %Salida comun: %Grafica x=a:0.1:b; y=f(x); axes(handles.axes1); cla; plot(x,y,'-b'); axis([ag-1,bg+1,min(y)-1,max(y)+1]); grid on; hold on; plot(a,f(a),'+m'); plot([a a],[0 f(a)],'--m'); plot(b,f(b),'+m'); plot([b b],[0 f(b)],'--m'); axis([ag-1,bg+1,min(y)-1,max(y)+1]); hold off;

  • 46

    %Proceso: if f(a)*f(b)

  • 47

    else %Salida1: set(handles.stRaiz,'string','Es posible que no haya raiz en este intervalo'); for repeticiones=1:2 set(handles.stRaiz,'BackgroundColor',[1 1 1]); set(handles.stRaiz,'ForegroundColor',[0 0 0]); pause(1); set(handles.stRaiz,'BackgroundColor',[1 0 0]); set(handles.stRaiz,'ForegroundColor',[1 1 1]); pause(1); end end

    CONTROL mnuSalir

    % -------------------------------------------------------------------- function mnuSalir_Callback(hObject, eventdata, handles) % hObject handle to mnuSalir (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close;

    EJERCICIOS:

    Desarrollar una aplicacin para cada uno de los problemas que se plantean y documentar cada una de las aplicaciones siguiendo el formato de las pginas 8, 9, 10 y 11 insertndola a este archivo de acuerdo con el orden establecido:

    Nmero Aplicacin

    25 Calcular la aproximacin a una raz de una ecuacin usando el mtodo de Newton-Raphson

    CONCLUSIONES O ACTIVIDADES DE CIERRE

    Actividad de cierre 1. Investigar y completar la tabla

    COMANDO O ELEMENTO DESCRIPCIN SINTAXIS

    pause

    break

    close

    While-end

    For-end

    Actividad de cierre 2. Imprimir este archivo (incluyendo los ejercicios realizados) en formato pdf con el nombre

    Practica_Numero de Practica_Apellido Paterno_Apellido Materno_Nombre1_Nombre2 Por ejemplo: Practica_1_Gomez_Herrera_Carlos.pdf como evidencia del trabajo realizado en esta prctica y entregarlo en formato electrnico al encargado de la prctica.

  • 48

    No. DE PRCTICA NOMBRE DE LA PRCTICA DURACIN (h)

    5 SUMATORIAS 2

    OBJETIVO O COMPETENCIAS A DESARROLLAR Que el alumno conozca los arreglos unidimensionales de datos, mediante el desarrollo de algoritmos bsicos de sumatorias y el manejo de estructuras de repeticin, con la finalidad de proporcionarle herramientas para disear y posteriormente desarrollar programas aplicados a la solucin de problemas de ingeniera civil.

    EQUIPOS O MATERIALES NECESARIOS Computadora con MATLAB [1], [2] y [3] instalado, material bibliogrfico de diversas reas de la ingeniera civil.

    INTRODUCCIN O JUSTIFICACIN DE LA PRCTICA ARREGLOS Un arreglo (o array) unidimensional es una secuencia o serie de datos o elementos del mismo tipo que ocupan un lugar contiguo en memoria y a los que se accede a travs de un ndice que representa la posicin relativa de los datos o elementos (se numeran sucesivamente 1,2,3, , 1, ). As, en un arreglo de tamao , la primera posicin corresponde al ndice 1 y la ltima al ndice . Si el identificador del arreglo es , entonces (1) hace referencia al primer elemento del arreglo y (4) al elemento ubicado en la cuarta posicin; en general, el elemento () se encuentra en la posicin del arreglo. Para definir o comenzar a manejar un arreglo unidimensional se utiliza la sintaxis:

    = [(1) (2) ()]; Para hacer un recorrido por todos los elementos de un arreglo unidimensional se utilizan las estructuras de repeticin, en donde el valor que adquiere el contador en un momento determinado hace referencia al ndice de un elemento del arreglo. Con pseudocdigo, lo anterior se puede representar por medio de

    En espaol En ingls

    para = 1: () fin

    for = 1: () end

    Y con un diagrama de flujo

  • 49

    SUMATORIAS La sumatoria se emplea para representar de manera abreviada el clculo de la suma de una cierta cantidad de sumandos. La operacin sumatoria se expresa con la letra griega sigma mayscula , y generalmente se representa de la forma:

    ()

    =1

    = (1) + (2) + + ( 1) + ()

    Esta expresin se lee: "la sumatoria de (), donde toma los valores desde 1 hasta ". En este caso, es un contador de valores enteros (frecuentemente de paso 1, a menos que se especifique otra cosa), 1 es el valor inicial o lmite inferior y es el valor final (entero) o lmite superior, i.e. . Ejemplos:

    a) () = (1)5=1 + (2) + (3) + (4) + (5)

    b) = 2 + 3 + 4 + 5 + 6 = 206=2

    c) |() ( 1)| = |(2) (1)|3=2 + |(3) (2)|

    d) () = (1)7=14

    + (2) + (3) + (5) + (6) + (7)

    Algunas propiedades de las sumatorias son:

    a) (() + ())=1 = ()=1 + ()

    =1

    b) ()=1 = ()

    =1

    c) =1 =

    d) =1 =(+1)

    2

    e) 2=1 =(+1)(2+1)

    6

    f) 3=1 = ((+1)

    2)

    2

    DESARROLLO DE LA PRCTICA

    Ejercicio 1. Comenzando con la SECUENCIA 1: Crear_nueva_GUI, desarrollar la aplicacin de acuerdo con lo que se especifica en el formato siguiente:

  • 50

    No. DE APLICACIN NOMBRE DE LA APLICACIN

    26 SUMATORIA

    Desarrollado por: Carlos Gmez Herrera Fecha: 2 de febrero de 2014

    DESCRIPCIN La aplicacin calcula la sumatoria de un conjunto de datos ()=1

    VARIABLES DESCRIPCIN

    Esta variable almacena el arreglo unidimensional, i.e. el conjunto de datos

    Contador

    Esta variable almacena o acumula el resultado de la operacin en cada iteracin

    Es el tamao del arreglo unidimensional

    DIAGRAMAS DE FLUJO

    GUI: Aplicacion_26_Sumatoria_Apellido Paterno_Apellido Materno_Nombre1_Nombre2.fig

  • 51

    RESUMEN DE PROPIEDADES

    Control Tipo Propiedad Valor

    1 Static Text

    Tag stTitulo

    String SUMATORIA DE UN CONJUNTO DE VALORES

    FontSize 15

    FontWeight bold

    HorizontalAlignment center

    2 Static Text

    Tag stInstrucciones

    String Instrucciones: Indica el nmero de datos, presiona el botn indicar valores, elige si se desea ver el procedimiento o no y presiona el botn Calcular Sumatoria.

    HorizontalAlignment left

    3 Static Text

    Tag stNdatos

    String Indica el numero de datos n=

    HorizontalAlignment right

    4 Edit Text

    Tag etN

    String 1

    HorizontalAlignment center

    5 Push

    Button

    Tag pbValores

    String Indicar Valores

    HorizontalAlignment center

    6 Push

    Button

    Tag pbCalcular

    String Calcular Sumatoria

    HorizontalAlignment center

    7 Static Text

    Tag stValores

    String x=[0]

    HorizontalAlignment center

    8 Button Group

    Tag bgProcedimiento

    Title Calcular

    9 Radio

    Button

    Tag rbSin

    String Sin procedimiento

    Value 1

    10 Radio

    Button

    Tag rbCon

    String Con procedimiento

    Value 0

    11 Static Text

    Tag stProcedimiento

    String i=1, sumatoria=0

    HorizontalAlignment center

    12 Static Text

    Tag stResultado

    String El valor de la sumatoria es 0

    HorizontalAlignment center

    1 2

    3 4 5 6

    7

    8

    9

    10 11

    12

  • 52

    CDIGO

    CONTROL pbValores

    % --- Executes on button press in pbValores. function pbValores_Callback(hObject, eventdata, handles) % hObject handle to pbValores (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global n; global x; x(1)=0; x(1,:)=[]; n=str2double(get(handles.etN,'string')); for i=1:n x(i)=str2double(inputdlg(['Indica el valor de x(' num2str(i) ')='])); end set(handles.stValores,'string',['x=[ ' num2str(x) ' ]']);

    CONTROL pbCalcular

    % --- Executes on button press in pbCalcular. function pbCalcular_Callback(hObject, eventdata, handles) % hObject handle to pbCalcular (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global n; global x; sp=get(handles.rbSin,'value'); if sp==1 sumatoria=0; for i=1:n sumatoria=sumatoria+x(i); end else set(handles.stProcedimiento,'visible','on'); sumatoria=0; for i=1:n pause(3); set(handles.stProcedimiento,'string',['i=' num2str(i) ',sumatoria=' num2str(sumatoria)... ' -->sumatoria=sumatoria+x(' num2str(i) ')=' num2str(sumatoria) '+' num2str(x(i)) '=' num2str(sumatoria+x(i))]); sumatoria=sumatoria+x(i); end end set(handles.stResultado,'string',['El valor de la sumatoria es ' num2str(sumatoria)]);

    CONTROL bgProcedimiento

    % --- Executes when selected object is changed in bgProcedimiento. function bgProcedimiento_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in bgProcedimiento % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA) sp=get(handles.rbSin,'value'); if sp==1 set(handles.stProcedimiento,'visible','off'); else set(handles.stProcedimiento,'visible','on'); end

  • 53

    EJERCICIOS:

    Desarrollar una aplicacin para cada uno de los problemas que se plantean y documentar cada una de las aplicaciones siguiendo el formato de las pginas 8, 9, 10 y 11 insertndola a este archivo de acuerdo con el orden establecido:

    Nmero Aplicacin

    27 Dado un conjunto de valores numricos, calcular las siguientes sumatorias

    a) (())

    2

    |()(1)|

    =2 b) 3( + 1) ()

    1=1 c)

    ()

    ()4

    =1

    d) (()(1))3

    (+1)(1)

    1=2

    Nota: Tener en cuenta que, durante los clculos, para algunos valores no estn definidas algunas operaciones en el conjunto de los nmeros reales

    28 Encontrar el menor y el mayor valor de un conjunto de valores numricos.

    29 Calcular la media de un conjunto de valores numricos.

    30 Calcular la desviacin estndar de un conjunto de valores numricos.

    31 Determinar la recta de regresin a partir de un conjunto de puntos. Graficar los puntos y la recta.

    32 Calcular el factorial de un nmero

    33 Calcular la suma as como el producto escalar de dos vectores de orden

    34 Dado un conjunto de puntos {(1, (1)), (2, (2)) ( , ())} y un valor , tal

    que 1 < < y {1, 2, , }, calcular una aproximacin numrica a () mediante la interpolacin de Lagrange. Graficar.

    35 Encontrar una aproximacin numrica a la integral ()

    , mediante el mtodo de los

    trapecios. Graficar.

    CONCLUSIONES O ACTIVIDADES DE CIERRE

    Actividad de cierre 1. Imprimir este archivo (incluyendo los ejercicios realizados) en formato pdf con el nombre

    Practica_Numero de Practica_Apellido Paterno_Apellido Materno_Nombre1_Nombre2 Por ejemplo: Practica_1_Gomez_Herrera_Carlos.pdf como evidencia del trabajo realizado en esta prctica y entregarlo en formato electrnico al encargado de la prctica.