prÁcticas de programaciÓn 2015 primera parte para alumnos
DESCRIPTION
programacion mat labTRANSCRIPT
-
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.