Este documento presenta una introducción al uso de programación visual basic (VBA) en Excel para propósitos de análisis numérico. Explica cómo evaluar funciones definidas por el usuario, incluyendo funciones predeterminadas de Excel. También describe elementos básicos de programación en VBA como flujos secuenciales, condicionales y repetitivos, y el manejo de rangos y matrices dinámicas. Finalmente, muestra ejemplos de cómo evaluar expresiones matemáticas escritas en lenguaje común y aplicar métodos numéricos como solución
Este documento presenta material de apoyo para el primer curso de matemáticas computacionales. Incluye secciones sobre lógica matemática, sucesiones y sumatorias, técnicas de demostración, relaciones de recurrencia, conjuntos, funciones, relaciones y teoría de números. El documento proporciona definiciones, propiedades y ejemplos para cada uno de estos temas.
Este documento presenta una introducción al uso del programa de cálculo simbólico Maxima. Explica que Maxima es un sucesor del programa Macsyma desarrollado originalmente en el MIT en los años 1970. Además, proporciona instrucciones básicas sobre la instalación de Maxima en Windows, Mac y Linux, y ofrece una primera sesión de ejemplo para familiarizarse con el programa. El documento también incluye un índice general de los diferentes temas que serán cubiertos.
Este documento presenta una breve introducción a C++. Explica la estructura básica de un programa en C++, incluyendo la definición de funciones, nombres de variables, tipos de variables, entrada y salida de datos, operadores aritméticos y relacionales. También cubre temas como control de flujo, funciones, matrices, clases, sobrecarga y herencia.
Este documento presenta una introducción al entorno estadístico R. Explica cómo usar R de forma interactiva, proporciona ejemplos básicos de cálculos numéricos y de vectores, y describe objetos como matrices y listas. También cubre temas como la lectura de datos, distribuciones probabilísticas y bucles. El objetivo es servir como una guía para nuevos usuarios de R.
Este documento presenta un trabajo de investigación sobre los fundamentos matemáticos de la visión por computador. En la introducción, describe brevemente el campo de la visión por computador y el objetivo del trabajo, que es estudiar los algoritmos para reconstruir objetos a partir de dos imágenes calibradas utilizando un enfoque matemático riguroso. A continuación, se divide en cinco capítulos donde se modela geométricamente el proceso de formación de imágenes, se explica la geometría epipolar para el emparejamiento de puntos entre imá
Este documento presenta un resumen de conceptos básicos de cálculo para la ingeniería. Cubre temas como la recta real, el plano cartesiano, funciones, límites de sucesiones y funciones, funciones hiperbólicas y funciones de varias variables. El objetivo es proporcionar las herramientas matemáticas fundamentales necesarias para comprender y aplicar el cálculo en ingeniería.
Este manual del usuario describe las características y funcionalidades del programa XLogo. Explica cómo usar la interfaz gráfica, incluyendo el editor de procedimientos y las opciones de menú. También proporciona una lista detallada de las primitivas de XLogo para movimientos, operaciones matemáticas, bucles, y más.
Este documento contiene apuntes sobre algoritmos y estructuras de datos. Incluye secciones sobre análisis de tiempo de ejecución de algoritmos usando notación Big-O, listas enlazadas, árboles binarios y generales, árboles AVL, y grafos. Explica conceptos teóricos y provee implementaciones en Java de varios problemas y estructuras de datos como pilas, colas, árboles y grafos.
Este documento presenta material de apoyo para el primer curso de matemáticas computacionales. Incluye secciones sobre lógica matemática, sucesiones y sumatorias, técnicas de demostración, relaciones de recurrencia, conjuntos, funciones, relaciones y teoría de números. El documento proporciona definiciones, propiedades y ejemplos para cada uno de estos temas.
Este documento presenta una introducción al uso del programa de cálculo simbólico Maxima. Explica que Maxima es un sucesor del programa Macsyma desarrollado originalmente en el MIT en los años 1970. Además, proporciona instrucciones básicas sobre la instalación de Maxima en Windows, Mac y Linux, y ofrece una primera sesión de ejemplo para familiarizarse con el programa. El documento también incluye un índice general de los diferentes temas que serán cubiertos.
Este documento presenta una breve introducción a C++. Explica la estructura básica de un programa en C++, incluyendo la definición de funciones, nombres de variables, tipos de variables, entrada y salida de datos, operadores aritméticos y relacionales. También cubre temas como control de flujo, funciones, matrices, clases, sobrecarga y herencia.
Este documento presenta una introducción al entorno estadístico R. Explica cómo usar R de forma interactiva, proporciona ejemplos básicos de cálculos numéricos y de vectores, y describe objetos como matrices y listas. También cubre temas como la lectura de datos, distribuciones probabilísticas y bucles. El objetivo es servir como una guía para nuevos usuarios de R.
Este documento presenta un trabajo de investigación sobre los fundamentos matemáticos de la visión por computador. En la introducción, describe brevemente el campo de la visión por computador y el objetivo del trabajo, que es estudiar los algoritmos para reconstruir objetos a partir de dos imágenes calibradas utilizando un enfoque matemático riguroso. A continuación, se divide en cinco capítulos donde se modela geométricamente el proceso de formación de imágenes, se explica la geometría epipolar para el emparejamiento de puntos entre imá
Este documento presenta un resumen de conceptos básicos de cálculo para la ingeniería. Cubre temas como la recta real, el plano cartesiano, funciones, límites de sucesiones y funciones, funciones hiperbólicas y funciones de varias variables. El objetivo es proporcionar las herramientas matemáticas fundamentales necesarias para comprender y aplicar el cálculo en ingeniería.
Este manual del usuario describe las características y funcionalidades del programa XLogo. Explica cómo usar la interfaz gráfica, incluyendo el editor de procedimientos y las opciones de menú. También proporciona una lista detallada de las primitivas de XLogo para movimientos, operaciones matemáticas, bucles, y más.
Este documento contiene apuntes sobre algoritmos y estructuras de datos. Incluye secciones sobre análisis de tiempo de ejecución de algoritmos usando notación Big-O, listas enlazadas, árboles binarios y generales, árboles AVL, y grafos. Explica conceptos teóricos y provee implementaciones en Java de varios problemas y estructuras de datos como pilas, colas, árboles y grafos.
Libro dedicado al cálculo aproximado de raíces de ecuaciones no lineales utilizando Octave: Bisección, Regula, Secante, Pto. Fijo, Newton-Raphson, Wegstein, Müller, Sturm, etc.
Este documento proporciona una introducción al lenguaje de programación Java y su entorno de desarrollo Eclipse. Explica conceptos básicos como clases, herencia, interfaces, excepciones y pruebas unitarias. También cubre temas como entrada y salida, manejo de archivos, colecciones y construcción de proyectos con Ant. El documento está organizado en 11 capítulos que guían al lector a través de los fundamentos de Java.
Este documento presenta una introducción a la teoría y métodos de la investigación operativa. Explica los orígenes y desarrollo de la programación lineal, teoría de juegos y optimización. Luego, cubre temas como modelización de problemas, programación lineal, dualidad, análisis de sensibilidad, problemas de transporte, redes y programación entera. El objetivo es proporcionar los fundamentos teóricos y herramientas prácticas de la investigación operativa a través de teoría, ejercicios y aplicaciones
Este documento presenta una guía de usuario para Gretl, un paquete de software libre para análisis econométrico. Incluye instrucciones para la instalación del programa en sistemas Linux, Windows y Mac OS. Explica las características principales de Gretl como su interfaz gráfica de usuario intuitiva y su capacidad para una amplia gama de técnicas econométricas. También reconoce las contribuciones de otros autores en el desarrollo de Gretl.
Este documento presenta una introducción a Maxima, un programa de cálculo simbólico. Explica brevemente la historia de Maxima y su relación con Macsyma, destacando que Maxima es un sucesor de Macsyma desarrollado originalmente en el MIT. A continuación, describe el objetivo de Maxima de realizar cálculos matemáticos simbólicos y numéricos y manipular expresiones algebraicas y matriciales.
Este documento proporciona instrucciones para el uso seguro y efectivo de la copiadora QC 2235plus. Explica conceptos y símbolos básicos, convenciones del manual, especificaciones del equipo, precauciones de instalación y funcionamiento, operaciones de copia básicas, papel y documentos originales, conservación de la máquina, resolución de problemas y mensajes de error.
Este documento presenta una introducción a Scilab. Explica que Scilab es un software de cómputo científico interactivo y programable de código abierto desarrollado por INRIA. Describe algunas de las características y capacidades de Scilab, como el cálculo numérico, vectores, matrices, gráficas, optimización y programación. También incluye ejemplos de uso.
Este documento introduce los conceptos básicos de diseño digital de computadoras. Explica que las computadoras evolucionaron de ser grandes y caras máquinas reservadas solo para grandes organizaciones a ser más pequeñas y asequibles para un mayor número de personas. Describe los componentes básicos de una computadora digital como microprocesadores y memoria, y cubre temas como sistemas numéricos binarios, puertas lógicas, registros y ALU. El objetivo es proveer una comprensión general de cómo funcionan las computadoras a nivel básico.
Este libro presenta los conceptos básicos de la econometría aplicada utilizando el software libre Gretl. Explica los modelos de regresión lineal simple y múltiple, contrastes de hipótesis, intervalos de confianza y predicción. Incluye ejemplos y ejercicios resueltos para que los lectores practiquen los métodos econometricos con datos reales.
Este documento presenta una introducción a la programación orientada a objetos con Java. Explica conceptos básicos como objetos, clases, herencia y polimorfismo. También introduce el lenguaje Java describiendo su sintaxis, estructura básica de programas, tipos de datos y estructuras de control. El documento está dirigido a estudiantes y desarrolladores interesados en aprender sobre programación orientada a objetos y el lenguaje Java.
El documento presenta una introducción a los temas de algoritmos y estructuras de datos. Cubre conceptos como análisis de algoritmos, recursividad, ordenamiento, pilas, colas, listas enlazadas, grafos, árboles y tablas hash. El documento fue creado a partir de apuntes de clase sobre estos temas fundamentales de la informática.
Este documento presenta una introducción a los periféricos de entrada y salida. Explica brevemente la historia de los periféricos y ofrece dos perspectivas sobre el tema. Además, incluye un plan del curso con los temas que se abordarán como teclados, terminales, interfaz serie, impresoras y más.
Matematicas en ingenieria_con_matlab_y_oriberthancco
Este documento presenta un manual sobre programación en Matlab y Octave para ingeniería. Explica conceptos básicos como operaciones aritméticas, vectores, matrices y gráficos. También cubre temas más avanzados como funciones, control de flujo, integración numérica, análisis de datos y diseño de aplicaciones. El objetivo es profundizar en la programación con Matlab a través de numerosos ejemplos completos de resolución de problemas.
Desde la primera formulaci´on de los Problemas de Ruteo de Veh´ıculos, una gran
cantidad de m´etodos han sido propuestos para su resoluci´on. Estos m´etodos
incluyen tanto algoritmos exactos como heur´ısticas. En este trabajo se presenta
un relevamiento de algunas de las heur´ısticas que han sido m´as significativas.
Este documento presenta un resumen de un curso de física I. Incluye secciones sobre conceptos fundamentales de la física como magnitudes, vectores, movimiento en una y tres dimensiones, dinámica y trabajo y energía. El documento provee ejemplos y ejercicios para cada tema cubierto.
El documento describe la importancia de la investigación científica en la sociedad del conocimiento. Explica cuatro partes principales: 1) la investigación y su papel en la sociedad del conocimiento, 2) los fundamentos epistemológicos de la investigación científica, 3) el proceso metodológico de la investigación, y 4) los instrumentos para medir e recopilar información primaria en ciencias sociales.
Este sílabo describe la asignatura de Sistemas Distribuidos impartida en la Universidad Católica de Cuenca. La asignatura se enfoca en analizar sistemas transparentes para el usuario que distribuyen hardware y software para conocer tecnologías que permiten manejar nuevos entornos evitando la centralización. La asignatura cubre temas como comunicación entre sistemas, sincronización, procesos y procesadores distribuidos, y sistemas distribuidos de archivos y Oracle.
Este documento explica cómo plantear adecuadamente un problema de investigación cuantitativa. Señala que el planteamiento implica delimitar y estructurar formalmente la idea de investigación mediante la formulación de un problema específico en términos concretos y explícitos. Los criterios para un buen planteamiento incluyen que el problema exprese una relación entre variables y que esté formulado como una pregunta clara y sin ambigüedades. Además, el planteamiento debe implicar la posibilidad de una prueba empírica. Los elementos clave de un
El documento describe los principios fundamentales de la comunicación en sistemas distribuidos. Explica que debido a la ausencia de memoria compartida, la comunicación se basa en la transferencia de mensajes entre procesos. También describe los puntos de acuerdo necesarios entre emisor y receptor para que la comunicación sea exitosa, como el formato de los datos. Finalmente, introduce el modelo OSI de la ISO, el cual establece siete capas para la comunicación entre sistemas abiertos de manera estandarizada.
Este documento describe los conceptos de administración, gestión y gerencia educativa. Define la administración educativa como el conjunto de teorías, técnicas y procedimientos aplicados al manejo de una entidad educativa. Describe la gestión educativa como el proceso de planificación, ejecución y evaluación de acciones para lograr los objetivos institucionales. Finalmente, explica que la gestión pedagógica se enfoca en crear las condiciones para que los estudiantes dirijan su propio aprendizaje.
Este documento describe los conceptos de administración, gestión y gerencia educativa. Define la administración educativa como el conjunto de teorías, técnicas y procedimientos aplicados al manejo de una entidad educativa. Describe la gestión educativa como el proceso de planificación, ejecución y evaluación de acciones para lograr los objetivos institucionales. Finalmente, explica que la gestión pedagógica se enfoca en crear las condiciones para que los estudiantes dirijan su propio aprendizaje.
Nacimiento de un proyecto de investigación cuantitativa,Alejandra Regalado
Las investigaciones se originan a partir de ideas provenientes de diversas fuentes, las cuales pueden ser vagas inicialmente. Requiere analizar las ideas de manera más precisa y estructurada, así como revisar literatura previa sobre el tema para no duplicar esfuerzos, adoptar una perspectiva única y afinar el enfoque del estudio. Las buenas ideas deben motivar al investigador y ser útiles para elaborar teorías y resolver problemas.
Libro dedicado al cálculo aproximado de raíces de ecuaciones no lineales utilizando Octave: Bisección, Regula, Secante, Pto. Fijo, Newton-Raphson, Wegstein, Müller, Sturm, etc.
Este documento proporciona una introducción al lenguaje de programación Java y su entorno de desarrollo Eclipse. Explica conceptos básicos como clases, herencia, interfaces, excepciones y pruebas unitarias. También cubre temas como entrada y salida, manejo de archivos, colecciones y construcción de proyectos con Ant. El documento está organizado en 11 capítulos que guían al lector a través de los fundamentos de Java.
Este documento presenta una introducción a la teoría y métodos de la investigación operativa. Explica los orígenes y desarrollo de la programación lineal, teoría de juegos y optimización. Luego, cubre temas como modelización de problemas, programación lineal, dualidad, análisis de sensibilidad, problemas de transporte, redes y programación entera. El objetivo es proporcionar los fundamentos teóricos y herramientas prácticas de la investigación operativa a través de teoría, ejercicios y aplicaciones
Este documento presenta una guía de usuario para Gretl, un paquete de software libre para análisis econométrico. Incluye instrucciones para la instalación del programa en sistemas Linux, Windows y Mac OS. Explica las características principales de Gretl como su interfaz gráfica de usuario intuitiva y su capacidad para una amplia gama de técnicas econométricas. También reconoce las contribuciones de otros autores en el desarrollo de Gretl.
Este documento presenta una introducción a Maxima, un programa de cálculo simbólico. Explica brevemente la historia de Maxima y su relación con Macsyma, destacando que Maxima es un sucesor de Macsyma desarrollado originalmente en el MIT. A continuación, describe el objetivo de Maxima de realizar cálculos matemáticos simbólicos y numéricos y manipular expresiones algebraicas y matriciales.
Este documento proporciona instrucciones para el uso seguro y efectivo de la copiadora QC 2235plus. Explica conceptos y símbolos básicos, convenciones del manual, especificaciones del equipo, precauciones de instalación y funcionamiento, operaciones de copia básicas, papel y documentos originales, conservación de la máquina, resolución de problemas y mensajes de error.
Este documento presenta una introducción a Scilab. Explica que Scilab es un software de cómputo científico interactivo y programable de código abierto desarrollado por INRIA. Describe algunas de las características y capacidades de Scilab, como el cálculo numérico, vectores, matrices, gráficas, optimización y programación. También incluye ejemplos de uso.
Este documento introduce los conceptos básicos de diseño digital de computadoras. Explica que las computadoras evolucionaron de ser grandes y caras máquinas reservadas solo para grandes organizaciones a ser más pequeñas y asequibles para un mayor número de personas. Describe los componentes básicos de una computadora digital como microprocesadores y memoria, y cubre temas como sistemas numéricos binarios, puertas lógicas, registros y ALU. El objetivo es proveer una comprensión general de cómo funcionan las computadoras a nivel básico.
Este libro presenta los conceptos básicos de la econometría aplicada utilizando el software libre Gretl. Explica los modelos de regresión lineal simple y múltiple, contrastes de hipótesis, intervalos de confianza y predicción. Incluye ejemplos y ejercicios resueltos para que los lectores practiquen los métodos econometricos con datos reales.
Este documento presenta una introducción a la programación orientada a objetos con Java. Explica conceptos básicos como objetos, clases, herencia y polimorfismo. También introduce el lenguaje Java describiendo su sintaxis, estructura básica de programas, tipos de datos y estructuras de control. El documento está dirigido a estudiantes y desarrolladores interesados en aprender sobre programación orientada a objetos y el lenguaje Java.
El documento presenta una introducción a los temas de algoritmos y estructuras de datos. Cubre conceptos como análisis de algoritmos, recursividad, ordenamiento, pilas, colas, listas enlazadas, grafos, árboles y tablas hash. El documento fue creado a partir de apuntes de clase sobre estos temas fundamentales de la informática.
Este documento presenta una introducción a los periféricos de entrada y salida. Explica brevemente la historia de los periféricos y ofrece dos perspectivas sobre el tema. Además, incluye un plan del curso con los temas que se abordarán como teclados, terminales, interfaz serie, impresoras y más.
Matematicas en ingenieria_con_matlab_y_oriberthancco
Este documento presenta un manual sobre programación en Matlab y Octave para ingeniería. Explica conceptos básicos como operaciones aritméticas, vectores, matrices y gráficos. También cubre temas más avanzados como funciones, control de flujo, integración numérica, análisis de datos y diseño de aplicaciones. El objetivo es profundizar en la programación con Matlab a través de numerosos ejemplos completos de resolución de problemas.
Desde la primera formulaci´on de los Problemas de Ruteo de Veh´ıculos, una gran
cantidad de m´etodos han sido propuestos para su resoluci´on. Estos m´etodos
incluyen tanto algoritmos exactos como heur´ısticas. En este trabajo se presenta
un relevamiento de algunas de las heur´ısticas que han sido m´as significativas.
Este documento presenta un resumen de un curso de física I. Incluye secciones sobre conceptos fundamentales de la física como magnitudes, vectores, movimiento en una y tres dimensiones, dinámica y trabajo y energía. El documento provee ejemplos y ejercicios para cada tema cubierto.
El documento describe la importancia de la investigación científica en la sociedad del conocimiento. Explica cuatro partes principales: 1) la investigación y su papel en la sociedad del conocimiento, 2) los fundamentos epistemológicos de la investigación científica, 3) el proceso metodológico de la investigación, y 4) los instrumentos para medir e recopilar información primaria en ciencias sociales.
Este sílabo describe la asignatura de Sistemas Distribuidos impartida en la Universidad Católica de Cuenca. La asignatura se enfoca en analizar sistemas transparentes para el usuario que distribuyen hardware y software para conocer tecnologías que permiten manejar nuevos entornos evitando la centralización. La asignatura cubre temas como comunicación entre sistemas, sincronización, procesos y procesadores distribuidos, y sistemas distribuidos de archivos y Oracle.
Este documento explica cómo plantear adecuadamente un problema de investigación cuantitativa. Señala que el planteamiento implica delimitar y estructurar formalmente la idea de investigación mediante la formulación de un problema específico en términos concretos y explícitos. Los criterios para un buen planteamiento incluyen que el problema exprese una relación entre variables y que esté formulado como una pregunta clara y sin ambigüedades. Además, el planteamiento debe implicar la posibilidad de una prueba empírica. Los elementos clave de un
El documento describe los principios fundamentales de la comunicación en sistemas distribuidos. Explica que debido a la ausencia de memoria compartida, la comunicación se basa en la transferencia de mensajes entre procesos. También describe los puntos de acuerdo necesarios entre emisor y receptor para que la comunicación sea exitosa, como el formato de los datos. Finalmente, introduce el modelo OSI de la ISO, el cual establece siete capas para la comunicación entre sistemas abiertos de manera estandarizada.
Este documento describe los conceptos de administración, gestión y gerencia educativa. Define la administración educativa como el conjunto de teorías, técnicas y procedimientos aplicados al manejo de una entidad educativa. Describe la gestión educativa como el proceso de planificación, ejecución y evaluación de acciones para lograr los objetivos institucionales. Finalmente, explica que la gestión pedagógica se enfoca en crear las condiciones para que los estudiantes dirijan su propio aprendizaje.
Este documento describe los conceptos de administración, gestión y gerencia educativa. Define la administración educativa como el conjunto de teorías, técnicas y procedimientos aplicados al manejo de una entidad educativa. Describe la gestión educativa como el proceso de planificación, ejecución y evaluación de acciones para lograr los objetivos institucionales. Finalmente, explica que la gestión pedagógica se enfoca en crear las condiciones para que los estudiantes dirijan su propio aprendizaje.
Nacimiento de un proyecto de investigación cuantitativa,Alejandra Regalado
Las investigaciones se originan a partir de ideas provenientes de diversas fuentes, las cuales pueden ser vagas inicialmente. Requiere analizar las ideas de manera más precisa y estructurada, así como revisar literatura previa sobre el tema para no duplicar esfuerzos, adoptar una perspectiva única y afinar el enfoque del estudio. Las buenas ideas deben motivar al investigador y ser útiles para elaborar teorías y resolver problemas.
El documento describe los elementos clave del diseño organizacional, incluyendo la especialización del trabajo, departamentalización, cadena de mando, tramo de control, centralización y descentralización, y formalización. También discute diferentes tipos de estructuras organizacionales como mecánicas u orgánicas, y diseños organizacionales tradicionales y contemporáneos. Finalmente, cubre desafíos actuales del diseño organizacional como la comunicación, aprendizaje organizacional y problemas globales.
El documento describe la historia de la participación de las mujeres en la música a través de los siglos. Explica que las mujeres han estado relegadas a un segundo plano y que mientras conocemos compositores masculinos como Mozart, Beethoven y Bach, pocos podrían nombrar compositoras. Aunque hubo coros de mujeres en la antigüedad y algunas trovadoras en la Edad Media, no fue hasta el siglo XX con el nacimiento de la música pop cuando las mujeres participaron realmente en la música. El documento menciona algunas artistas
La segunda revolución industrial tuvo lugar entre 1870 y 1914, transformando la economía mundial a través de innovaciones como la electricidad y el petróleo, el desarrollo de la industria química y eléctrica, y importantes inventos como la bombilla, el teléfono y el cine. Esto dio paso al capitalismo moderno y creó una nueva clase obrera que trabajaba en condiciones difíciles y comenzó a organizarse a través de sindicatos y ideologías como el marxismo y el anarquismo para defender sus derechos
Estudio comparativo entre la educación de finlandia y la de ecuador y como la...footty
Este documento compara el sistema educativo de Finlandia con el de Ecuador. Resalta que en Finlandia se da más autonomía a los maestros, se evalúa menos a los estudiantes con notas, y se da más importancia al bienestar del estudiante. En Ecuador, hace falta mejorar la infraestructura escolar, valorar más la carrera docente, y descentralizar el sistema educativo dando más autonomía a los municipios. Integrar aspectos del modelo finlandés podría mejorar la educación ecuatoriana.
El documento presenta una introducción a la combinación de correspondencia en Word. Explica que la serie incluye pasos como elegir un documento principal, conectarse a un archivo de datos, agregar campos al documento y obtener una vista previa de la combinación. Una vez obtenida la visión general, se pueden mejorar los conocimientos sobre el uso de la combinación de correspondencia para crear diferentes tipos de documentos.
Optimized solutionfor image processing through mobile robots workIAEME Publication
This paper proposes a new method for optimized image processing using mobile robots working as a team. The key aspects of the new method are:
1) Mobile robots are organized into a team with one robot designated as the team leader and others as team members.
2) The team leader divides the workload evenly among team members and monitors their progress.
3) If a team member fails, the team leader reassigns its workload to another member to improve efficiency and resource utilization.
4) The paper compares the new team-based method to the conventional assembly line approach through simulations. Results show the new method has faster decision making, higher throughput, and better error handling.
1. Yirmeyah se lamenta por la desolación de Yerushalayim después de que Yisra'el fuera llevado cautivo. La ciudad una vez grande ahora está solitaria y desolada.
2. Sus amigos la han traicionado y ya no la consuelan. Yahudáh fue llevado cautivo debido a su pecado y servidumbre.
3. Yerushalayim pecó gravemente y cayó en tribulación. Sus enemigos se burlan de ella mientras su pueblo busca en vano pan.
Este documento narra la historia de Shoshanah, una mujer justa que vive en Babilonia con su esposo Yehoyajim. Dos ancianos jueces falsamente acusan a Shoshanah de adulterio. Cuando va a ser ejecutada, Daniel, un joven sabio, demuestra que los ancianos dieron testimonios contradictorios, salvando a Shoshanah e impidiendo una injusticia. Daniel gana reputación por su sabiduría y capacidad para discernir la verdad.
Catarina tem 12 anos e gosta de praticar vários desportos como ballet, natação, karaté e circo. Ela mora em Lisboa com os pais Micaela e Ricardo e sua irmã mais nova Margarida.
Este documento define un PDA como un dispositivo pequeño que combina una computadora, teléfono, fax, internet y conectividad de red. Explica que los primeros PDA incluyeron el Apple Newton en 1992 pero fracasó, mientras que Palm Pilot en 1995 tuvo más éxito. Describe características como pantallas táctiles, baterías, aplicaciones y funciones como organizador personal, y cómo los PDA modernos son teléfonos inteligentes. Resalta ventajas como portabilidad y facilidad de uso, y desventajas como cost
Este documento introduce Matlab y Octave. Explica que Matlab es un lenguaje de programación interpretado y dinámico, principalmente utilizado para cálculo numérico. Describe la interfaz gráfica de Matlab y cómo escribir los primeros programas en Matlab y Octave. También introduce conceptos básicos como variables, operadores, vectores y matrices.
Este documento presenta un libro de texto sobre algoritmos y programación estructurada en Pascal. Se divide en temas que cubren algoritmos e introducción a Pascal, elementos básicos del lenguaje Pascal, programación estructurada con instrucciones como if-then-else y bucles, y aspectos teóricos de la programación estructurada. Cada tema contiene capítulos que explican conceptos clave y proporcionan ejemplos de código.
Este documento presenta una revisión teórica sobre control de procesos industriales continuos. Explica conceptos clave como modelos de procesos, realimentación, elementos de control, diseño de sistemas de control, clasificación de sistemas, respuesta temporal y de frecuencia, lugar de las raíces, funcionamiento y estabilidad de sistemas de control, y sistemas de tiempo discreto.
Este documento presenta una revisión teórica del control de procesos industriales continuos. Explica conceptos clave como modelos de procesos, realimentación, elementos de control, diseño de sistemas de control, clasificación de sistemas, respuesta temporal y de frecuencia, lugar de las raíces, funcionamiento y estabilidad de sistemas de control, y sistemas de tiempo discreto.
Este documento presenta una guía de MATLAB para ingenieros mecánicos. Explica conceptos básicos como tipos de datos, representación de datos, operadores y funciones matemáticas. También cubre temas como arrays, vectores, matrices, entrada y salida de datos, control de flujo, funciones y gráficas 2D. El objetivo es introducir el uso de MATLAB en ingeniería mecánica.
Este documento presenta un libro introductorio sobre programación en C. El libro explica conceptos básicos como variables, constantes, operadores aritméticos y lógicos, y estructuras de control como if/else y bucles while y for. El libro está dirigido a estudiantes que deseen aprender el lenguaje de programación C.
Este documento trata sobre el benchmarking en sistemas Linux. Explica que el benchmarking implica medir la velocidad de ejecución de tareas para comparar diferentes configuraciones de hardware y software. Recomienda utilizar herramientas de benchmarking estándar como el Linux Benchmarking Toolkit (LBT) y proporciona detalles sobre cómo usar esta herramienta y cómo interpretar los resultados. Además, advierte sobre posibles fallos comunes en el proceso de benchmarking y factores irrelevantes a considerar.
Este documento presenta los objetivos, temario, metodología docente y evaluación de un curso sobre sistemas concurrentes y distribuidos impartido en el año académico 2013-2014. Incluye apuntes de teoría sobre temas como introducción a la concurrencia, sincronización en memoria compartida, sistemas basados en paso de mensajes e introducción a los sistemas de tiempo real. También contiene problemas de práctica relacionados con cada tema.
Este documento presenta una introducción a Scilab. Explica que Scilab es un software de cómputo científico interactivo y programable de código abierto desarrollado por INRIA. Describe algunas de las características y capacidades de Scilab, así como cómo obtenerlo e instalarlo. También menciona un libro de referencia sobre Scilab y proporciona instrucciones básicas para su uso.
Este documento es una traducción incompleta del libro "Pensar en C++, vol 1" de Bruce Eckel. El libro introduce conceptos básicos de programación orientada a objetos en C++ como clases, herencia, polimorfismo, análisis y diseño orientado a objetos. El documento incluye un índice de contenido que enumera los diferentes capítulos y secciones que componen el libro.
Este documento presenta los fundamentos básicos de programación en C++. Explica conceptos como tipos de datos, variables, entrada y salida, expresiones, estructuras condicionales e iterativas, funciones y tipos de datos estructurados. El objetivo es enseñar a utilizar estos conceptos básicos de programación en el lenguaje C++.
Este documento introduce el lenguaje de programación C. Explica las herramientas y software necesarios para programar en C en GNU/Linux, como el compilador gcc, depuradores gdb y ddd, make, man y cvs. También describe la sintaxis básica de C, incluyendo tipos de datos, operadores, estructuras de control y funciones.
Este documento presenta una guía para el análisis de experimentos en ciencias e ingeniería. Explica conceptos clave como unidades de medida, errores experimentales, tratamiento estadístico de datos, evaluación de gráficos y uso de instrumentos de medición. Además, incluye ejemplos y ejercicios para reforzar los temas cubiertos.
Este manual presenta instrucciones para programar con robots usando Python. Explica cómo conectar y controlar el movimiento de un robot Multiplo N6 con Python, introduciendo conceptos básicos de programación como variables, funciones, módulos e instrucciones condicionales y de iteración. El manual está licenciado bajo Creative Commons para ser usado y modificado libremente con el debido reconocimiento de la autoría original.
Este manual presenta instrucciones para programar con robots usando Python. Explica cómo conectar y controlar el movimiento de un robot Multiplo N6 con Python, introduciendo conceptos básicos de programación como variables, funciones, módulos e instrucciones condicionales y de iteración. El manual está licenciado bajo Creative Commons para que pueda ser compartido y modificado libremente.
Este documento resume conceptos clave sobre algoritmos y estructuras de datos. Explica temas como análisis de algoritmos, notación asintótica, recursividad, programación dinámica, ordenación, pilas, colas, listas enlazadas, grafos y árboles binarios. El autor indica que el contenido proviene de apuntes de clase sobre algoritmos y estructuras de datos.
Este documento presenta notas de clase para el curso de Control Automático 2. Incluye una introducción al curso con objetivos, bibliografía y calendario. Luego describe diferentes representaciones matemáticas de sistemas de control, incluyendo lineales, discretos y no lineales. Finalmente, presenta herramientas de álgebra lineal útiles para el análisis de sistemas, como vectores, matrices, autovalores y formas canónicas. El documento provee una guía detallada para el estudio de los conceptos teóricos del curso
El documento presenta información sobre sistemas operativos. Explica conceptos básicos como procesos, planificación de procesos, programación concurrente, interbloqueos y gestión de memoria. Incluye definiciones de sistemas operativos, su evolución histórica y las funciones y objetivos principales como interfaz usuario-computadora y administrador de recursos.
Este documento presenta los conceptos fundamentales de la integral de Lebesgue. Comienza discutiendo las deficiencias de la integral de Riemann y la necesidad de una nueva definición de integral. Luego introduce los principios de Littlewood y la definición formal de la integral de Lebesgue, incluyendo teoremas de convergencia. Finalmente, analiza la derivación e integración de funciones medibles y el cálculo de integrales de funciones integrables.
El documento describe los enfoques cuantitativo, cualitativo y mixto de la investigación científica. Explica que el enfoque cuantitativo usa la recolección de datos numéricos y análisis estadístico para probar hipótesis y establecer patrones de comportamiento. El enfoque cualitativo puede desarrollar preguntas e hipótesis antes, durante o después de analizar los datos para descubrir las preguntas más importantes. También describe las características de ambos enfoques, como el uso del razonamiento deduct
El documento describe los enfoques cuantitativo y cualitativo de la investigación científica. Explica que el enfoque cuantitativo usa mediciones numéricas y análisis estadísticos para probar hipótesis y establecer patrones de comportamiento. Mientras, el enfoque cualitativo puede desarrollar preguntas e hipótesis antes, durante o después de analizar los datos para descubrir las preguntas más importantes y refinarlas. También señala que la revisión de literatura en el enfoque cualitativo puede complementarse
El documento describe los enfoques cuantitativo y cualitativo de la investigación científica. Explica que el enfoque cuantitativo usa hipótesis, medición numérica y análisis estadístico para probar teorías, mientras que el enfoque cualitativo puede desarrollar preguntas e hipótesis antes, durante o después de analizar los datos para descubrir las preguntas más importantes. También discute algunas características clave de cada enfoque.
El documento describe los enfoques cuantitativo y cualitativo de la investigación científica. Explica que el enfoque cuantitativo usa mediciones numéricas y análisis estadísticos para probar hipótesis y establecer patrones de comportamiento. El enfoque cualitativo puede desarrollar preguntas e hipótesis antes, durante o después de analizar los datos para descubrir las preguntas más importantes. También señala que la revisión de literatura en el enfoque cualitativo puede ocurrir en cualquier etapa del est
La organización escolar es el proceso mediante el cual los centros educativos ordenan y disponen sus recursos humanos, materiales y financieros de manera conveniente para favorecer los aprendizajes de los estudiantes y lograr sus objetivos. Es responsabilidad del director y la comunidad educativa, guiados por el Proyecto Educativo Institucional y el Plan Escolar Anual. Una organización escolar efectiva requiere la participación de toda la comunidad y estar orientada a mejorar continuamente los resultados académicos.
El documento describe los componentes clave del diseño curricular. Propone que el currículo es una propuesta educativa y plan de acción para la comunidad educativa con el fin de lograr objetivos educativos mediante el desarrollo de capacidades, en determinados momentos y usando estrategias, recursos y evaluaciones específicas. Explica que existen tres niveles de concreción del currículo - macro, meso y micro - que se definen por los participantes, fuentes, instrumentos y estructuras involucrados.
El documento discute los desafíos que enfrentan las organizaciones, incluidos los sistemas educativos, en el contexto actual de cambios constantes. Muchas organizaciones han ajustado sus objetivos y estructuras para adaptarse mejor, mientras que otras conservan sus enfoques obsoletos. Los sistemas educativos deben replantear su misión y visión, así como adoptar normas más flexibles que permitan responder a un entorno en constante cambio. La supervisión educativa debe orientar e impulsar esta transformación en las escuelas mediante el asesor
Este documento describe los elementos clave de diseño curricular. Explica que el currículo es una propuesta educativa y plan de acción para la comunidad educativa. Detalla los componentes de un currículo como objetivos, capacidades, estrategias metodológicas, recursos y evaluación. Además, explica los tres niveles de concreción del currículo: macro, meso y micro.
El documento describe diferentes tipos de software y sistemas operativos. Explica que el software puede ser débilmente o fuertemente acoplado, y que los sistemas operativos de red permiten a los usuarios compartir archivos a través de una red de estaciones de trabajo. También describe sistemas distribuidos que actúan como un único sistema a través de una colección de máquinas conectadas en red.
Este documento describe varios factores que permiten generar cambios en los esquemas de aprendizaje de una persona. Identifica factores intelectuales como la concentración, observación, memoria y atención. También describe factores individuales como actitud, motivación, asertividad y factores ambientales como el espacio de estudio, tiempo de estudio y posición del cuerpo.
Este documento proporciona consejos prácticos sobre la lectura para los padres del Departamento de Educación de EE.UU. Ofrece información sobre la importancia de la lectura desde una edad temprana, estrategias para ayudar a los niños a leer en casa, y los cinco componentes esenciales de un buen programa de lectura en la escuela.
Este documento describe frases positivas que los padres y docentes pueden decir a sus hijos y estudiantes para promover una actitud positiva. Algunas de estas frases incluyen "Eres capaz", "Estoy orgulloso de ti", y "Creo en ti", las cuales tienen la intención de hacer que los niños se sientan capaces, satisfechos y con confianza en sí mismos.
1. 1
Programaci´n Visual Basic (VBA) para Excel y An´lisis Num´rico
o a e
M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B.
e
Escuela de Matem´tica
a
Instituto Tecnol´gico de Costa Rica
o
Octubre 2005
Versi´n 0.1
o
3. Chapter 1
Programaci´n Visual Basic (VBA)
o
para Excel
1.1 Introducci´n
o
Microsof Excel c es un software para el manejo de hojas electr´nicas agrupadas en libros para c´lculos de casi
o a
cualquier ´
ındole. Entre muchas otras aplicaciones, es utilizado en el tratamiento estad´
ıstico de datos, as´ como
ı
para la presentaci´n gr´fica de los mismos. La hoja electr´nica Excel es ampliamente conocida, en forma gen-
o a o
eralizada, por profesionales y estudiantes en proceso de formaci´n, pero hay una gran cantidad de usuarios que
o
no conocen a profundidad su gran potencial y adaptabilidad a los diferentes campos del conocimiento.
Para cient´ ıficos e ingenieros, el Excel constituye una herramienta computacional muy poderosa. Tambi´n tiene
e
gran utilidad para ser utilizado en la ense˜anza de las ciencias y la Ingenier´ particularmente, en la ense˜anza
n ıa, n
de los m´todos num´ricos. Pese a que existen en el mercado programas computacionales muy sofisticados, tales
e e
como MATLAB, MATHEMATICA, etc., no est´n tan disponibles como Excel, que usualmente forma parte del
a
paquete b´sico de software instalado en las computadoras que funcionan bajo el sistema Windows c de Microsoft.
a
A continuaci´n se brinda al lector una breve introducci´n a algunas actividades de programaci´n con macros
o o o
escritos en VBA (una adaptaci´n de Visual Basic para Office de Microsoft), definidos desde una hoja electr´nica
o o
de Excel. Salvo peque˜as diferencias para versiones en ingl´s, el material puede ser desarrollado en cualquier
n e
versi´n.
o
1.2 Evaluaci´n de funciones
o
1.2.1 Funciones definidas por el usuario
A manera de ejemplo, vamos a evaluar la funci´n
o
cos(x)
f (x) = 2x3 + ln(x) − + sen(x)
ex
1. Como al evaluar f (x) se debe recurrir a varias funciones b´sicas que se invocan desde Excel, se puede
a
tener acceso a su sintaxis, pulsando el ´
ıcono fx y seleccionar ‘Matem´ticas y Trigonom´tricas’.
a e
2. Para escribir una f´rmula, seleccionamos una celda para escribir el valor a ser evaluado; por ejemplo,
o
podemos digitar el valor 1.1 en la celda B3.
3
4. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 4
e
Figure 1.1: Funciones predefinidas en Excel.
3. Ahora en la celda C3 digitamos, de acuerdo a la sintaxis de la versi´n de Excel en espa˜ol1 , la f´rmula:
o n o
=2*B3^3+LN(B3)-COS(B3)/EXP(B3)+SENO(B3)
Una vez que ha sido digitada, simplemente se pulsa la tecla ‘Entrar’ o ‘Enter’.
Figure 1.2: Al evaluar f´rmulas, a menudo se requiere evaluar varias funciones predefinidas.
o
1.2.2 Errores comunes
Conforme vamos digitando nuestras primeras f´rmulas, nos van apareciendo algunos errores que usualmente son
o
debidos a un manejo inadecuado de la sintaxis o a la incompatibilidad con la configuraci´n de la computadora.
o
A continuaci´n se describen algunas situaciones que pueden aparecer.
o
1. El valor de error #¿NOMBRE? aparece cuando Excel no reconoce texto en una f´rmula. Deber revisar la
o
sintaxis de dicha f´rmula o, si es una macro, verificar que est´ en un m´dulo de esta hoja.
o e o
2. El valor de error #¡VALOR! da cuando se utiliza un tipo de argumento (u operando) incorrecto. Este error
se da por ejemplo, cuando evaluamos una funci´n num´rica en una celda que contiene algo que no sea un
o e
n´mero (Por defecto, el contenido de una celda vac´ es cero).
u ıa
3. El valor de error #¡NUM! se aparece cuando hay un problema con alg´n n´mero en una f´rmula o funci´n.
u u o o
Por ejemplo, si evaluamos una funci´n logar´
o ıtmica en cero o en un n´mero negativo.
u
1 La versi´n que estamos usando est´ en espa˜ ol. Por ejemplo, en la versi´n en ingl´s de Excel, se usa SIN(x) en lugar de
o a n o e
SENO(x).
5. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 5
e
4. El valor de error #¡DIV/0! se produce cuando se divide una f´rmula por 0 (cero).
o
5. El valor de error #¡REF! se da cuando una referencia a una celda no es v´lida.
a
6. Dependiendo de la forma en que est´ configurado el sistema Windows, debe usarse punto o coma para
e
separar la parte decimal de los n´meros a evaluar. Para personalizarlo, se debe entrar al panel de control
u
y en la ‘Configuraci´n regional’ se selecciona ‘N´meros’. En la primera cejilla, ‘S´
o u ımbolo Decimal’ se
selecciona el punto o la coma, seg´n sea el caso. Finalmente, se presiona el bot´n ‘Aplicar’ y luego
u o
‘Aceptar’.
7. Una situaci´n que a veces es confundida con un error se da cuando el sistema trabaja con poca precisi´n y
o o
se presentan valores num´ricos no esperados. Por ejemplo, si el formato de una celda se ha definido para
e
dos posiciones, entonces la operaci´n +1.999+1 efectuado en dicha celda dar´ como resultado el valor 2,
o a
que no es otra cosa que el resultado de tal suma redondeado a dos decimales. El valor correcto se obtiene
aumentado la precisi´n con el ´
o ıcono correspondiente:
Tambi´n se puede cambiar la precisi´n en el men´ ‘Formato-Celdas-N´mero-Posiciones decimales’.
e o u u
Estos cambios son s´lo de apariencia, pues, independientemente del n´mero de d´
o u ıgitos que sean desplega-
dos, Excel manipula los n´meros con una precisi´n de hasta 15 d´
u o ıgitos. Si un n´mero contiene m´s de 15
u a
d´
ıgitos significativos, Excel convertir´ los d´
a ıgitos adicionales en ceros (0).
1.2.3 Evaluando una funci´n en varios tipos de par´metros
o a
Muchas f´rmulas a evaluar tienen argumentos de distinto tipo, pues algunos argumentos var´ (a veces con
o ıan
un incremento determinado), mientras que otros permanecen constantes. Por lo general estos argumentos son
tomados de celdas espec´ıficas, por lo que es importante saber manejar distintos escenarios para la evaluaci´n
o
de una funci´n o f´rmula.
o o
Evaluaci´n con argumentos variables
o
Continuando con el ejemplo que iniciamos en la secci´n 2.1, a partir de la celda B4 podemos continuar digitando
o
valores, siempre en la columna B y con el cuidado de que estos n´meros no se salgan del dominio de la funci´n
u o
cos(x)
f (x) = 2x3 + ln(x) − + sen(x), que en este caso es el conjunto de los n´meros reales positivos. Una vez
u
ex
hecho ´sto, se eval´a la funci´n f (x) en la celda C3, como se hizo previamente. Luego, seleccionamos esta
e u o
misma celda C3 y se ubica el mouse en la esquina inferior derecha, arrastr´ndolo hasta la celda deseada. Otra
a
posibilidad es hacer un doble clic en la esquina inferior derecha de la celda a copiar y esto realiza la copia
autom´ticamente.
a
Evaluaci´n con argumentos variables y/o constantes
o
Es com´n tener que evaluar funciones o f´rmulas que dependen de varios par´metros, algunos de los cuales se
u o a
mantienen fijos mientras que otros son variables.
Ejemplo 1
6. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 6
e
Figure 1.3: Copia de una f´rmula en un grupo de celdas.
o
El siguiente ejemplo describe una funci´n con dos par´metros y una variable.
o a
K K − P0
La funci´n P (t) =
o −kt
, con A = , describe el tama˜o de una poblaci´n en el momento t.
n o
1 + Ae P0
Aqu´
ı:
. k es una constante de proporcionalidad que se determina experimentalmente, dependiendo de la poblaci´n
o
particular que est´ siendo modelada,
a
. P0 es la poblaci´n inicial y
o
. K es una constante llamada capacidad de contenci´n o capacidad m´xima que el medio es capaz de sostener.
o a
Si queremos evaluar P (t) para distintos valores del tiempo t en d´ seguimos la siguiente secuencia de pasos:
ıas,
1. Para empezar, es importante escribir encabezados en cada una de las columnas (o filas) donde vamos
a escribir los datos que ser´n los argumentos de la funci´n. En este caso, comenzando en la celda B3,
a o
escribimos las etiquetas
P0 K k t P(t).
2. A continuaci´n escribimos los valores de los par´metros, comenzando en la celda B4
o a
100 1000 0.08 0.
3. Ahora escribimos la f´rmula de la funci´n P (t) en la celda G4:
o o
=C$4/(1+((C$4-B$4)/B$4)*EXP(-D$4*E4))
Como puede observarse, el unico argumento variable es t y nos interesa mantener a los otros argumentos
´
constantes. Para mantener un valor (que se lea en una celda) constante, se le agrega el s´
ımbolo $ antes
del n´mero de fila, como por ejemplo C$4.
u
En nuestro ejemplo, los argumentos constantes son los que est´n en las celdas B4, C4 y D4, mientras que
a
el valor de t en la celda E4, es variable.
7. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 7
e
Figure 1.4: Evaluaci´n con par´metros constantes y un par´metro con un incremento variable.
o a a
4. Finalmente, escribimos varios valores para t en la columna E, seleccionamos la celda F4 y arrastramos
para evaluar P (t) en el resto de valores de t.
dP P
Nota: P (t) es la soluci´n de la llamada ecuaci´n log´
o o ıstica = kP 1− .
dt K
Construyendo rangos con un incremento fijo
A menudo necesitamos evaluar una funci´n en una secuencia de valores igualmente espaciados, por lo que a
o
continuaci´n se explica c´mo hacerlo, modificando el ejemplo previo de crecimiento de una poblaci´n.
o o o
1. Podemos seleccionar la columna C para poner los valores fijos P0 , K, k y el incremento h. En este caso,
por ejemplo, h = 5 servi´ como incremento entre un tiempo y el siguiente, iniciando con t = 0.
a
2. En la celda E4 escribimos el tiempo inicial t = 0 y en la celda E5 se escribe el nuevo tiempo con el
incremento h:
=+E4+C$6
Debemos usar C$6 para que el incremento se mantenga inalterado al copiar esta operaci´n en otra fila
o
celda situada en una fila diferente.
3. Ahora seleccionamos esta celda E5 y la arrastramos hacia abajo para obtener los nuevos tiempos con el
respectivo incremento.
Figure 1.5: Evaluaci´n con un par´metro de incremento fijo
o a
Nota: Esto tambi´n se puede hacer escribiendo, en celdas consecutivas, un valor y luego el valor m´s el incre-
e a
mento y luego seleccionando ambas celdas y arrastrando. Sin embargo, en algunos algoritmos es m´s c´modo
a o
8. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 8
e
tener una celda d´nde leer el incremento.
o
1.3 Gr´ficas
a
Continuando con el ejemplo anterior en el que se ha evaluado la poblaci´n P (t) en un conjunto de valores del
o
tiempo t, recordemos que en las columnas E y F se han escrito, respectivamente, los valores de t y P (t). Para
graficar P (t) con respecto a t, pordemos seguir los siguientes pasos:
1. Seleccionamos el rango en el cual se encuentran los valores de t y P (t). Este rango puede incluir las celdas
que contienen los r´tulos de las columnas.
o
2. Presionamos el icono , que activa el asistente para gr´ficos.
a
Hay varias opciones que podemos elegir para el gr´fico y en nuestro caso podemos elegir el tipo Dispersi´n.
a o
Figure 1.6: Selecci´n del tipo de gr´fico.
o a
3. Presionamos el bot´n Siguiente y luego Finalizar . Antes de finalizar se pueden escoger distintas op-
o
ciones para personalizar el gr´fico. A continuaci´n se muestra la salida del gr´fico.
a o a
Figure 1.7: Curva obtenida para el modelo log´
ıstico de crecimiento de una poblaci´n.
o
La curva obtenida se llama curva log´
ıstica o sigmoide, por la forma de ‘S’ que tiene.
9. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 9
e
1.4 Programaci´n de macros
o
1.4.1 Introducci´n
o
El lenguaje Visual Basic para Aplicaciones (VBA), en el contexto de Excel, constituye una herramienta de
programaci´n que nos permite usar c´digo Visual Basic adaptado para interactuar con las m´ltiples facetas de
o o u
Excel y personalizar las aplicaciones que hagamos en esta hoja electr´nica.
o
Las unidades de c´digo VBA se llaman macros. Las macros pueden ser procedimientos de dos tipos:
o
- Funciones (Function)
- Subrutinas (Sub) ).
Las funciones pueden aceptar argumentos, como constantes, variables o expresiones. Est´n restringidas a en-
a
tregar un valor en una celda de la hoja. Las funciones pueden llamar a otras funciones y hasta subrutinas (en
el caso de que no afecten la entrega de un valor en una sola celda)
Una subrutina realiza acciones espec´ ıficas pero no devuelven ning´n valor. Puede aceptar argumentos, como
u
constantes, variables o expresiones y puede llamar funciones.
Con las subrutinas podemos entregar valores en distintas celdas de la hoja. Es ideal para leer par´metros en
a
algunas celdas y escribir en otras para completar un cuadro de informaci´n a partir de los datos le´
o ıdos.
Editar y ejecutar macros.
Las funciones y las subrutinas se pueden implementar en el editor de Visual Basic (Alt-F11).
Para usar una funci´n en una hoja de Excel se debe, en el editor de VB, insertar un m´dulo y editar la funci´n
o o o
en este m´dulo. Esta acci´n de describe m´s adelante. De la misma manera se pueden editar subrutinas en un
o o a
m´dulo.
o
Una funci´n se invoca en una hoja, como se invoca una funci´n de Excel o una f´rmula. Una subrutina se puede
o o o
invocar por ejemplo desde la ventana de ejecuci´n de macros (Alt-F8) o desde un bot´n que hace una llamada
o o
a la subrutina (como respuesta al evento de hacer clic sobre ´l, por ejemplo).
e
El c´digo que ejecuta un bot´n puede llamar a subrutinas y a las funciones de la hoja. El c´digo del bot´n
o o o o
no est´ en un m´dulo. En la hoja de edici´n donde se encuentra el c´digo del bot´n, se pueden implementar
a o o o o
funciones para uso de este c´digo pero que ser´n desconocidas para la hoja (mensaje de error #¿NOMBRE?).
o a
Nota: un error frecuente es editar una funci´n en un m´dulo que corresponde a una hoja y llamarlo desde otra
o o
hoja. En este caso se despliega el error (mensaje de error #¿NOMBRE?).
1.4.2 Funciones
Una funci´n tiene la siguiente sintaxis:
o
Function NombreFun(arg1, arg2,...,argn)
Declaraci´n de Variables y constantes
o
Instruccci´n 1
o
Instruccci´n 2
o
...
10. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 10
e
Instruccci´n k
o
NombreFun = Valor de retorno ’comentario
End Function
Una funci´n puede tener o no tener argumentos, pero es conveniente que retorne un valor. Observe que se debe
o
usar el nombre de la funci´n para especificar la salida:
o
NombreFun = Valor de retorno
Nota 1: Al interior de las funciones, se pueden hacer comentarios utilizando (antes de ´stos) la comilla (’).
e
Nota 2: Para el uso de nombres de variables o de cualquier otra palabra reservada de VBA, no se discrimina
entre el uso de letras may´sculas y min´sculas.
u u
Ejemplo 1: implementar una funci´n.
o
Vamos a implementar como una macro la funci´n con la que se trabaj´ previamente:
o o
cos(x)
f (x) = 2x3 + ln(x) − + sen(x)
ex
Para su definici´n y utilizaci´n, se siguen los pasos:
o o
1. Ingresamos al men´ y en la opci´n Herramientas seleccionamos Macros. Luego se elige Editor de
u o
Visual Basic:
Figure 1.8: Primeros pasos para la definici´n de una macro.
o
Tambi´n puede usar Alt - F11
e
2. Nuevamente, en el men´ de la ventana que se abre, se elige Insertar, para luego seleccionar M´dulo:
u o
3. Ahora en la pantalla de edici´n del m´dulo, escribimos el siguiente c´digo:
o o o
Function f(x)
f = 2 * x ^ 3 + Log(x) - Cos(x) / Exp(x) + Sin(x)
End Function
4. Una vez que ha sido editado el c´digo del macro, se salva y salimos del ambiente de programaci´n en
o o
Visual Basic para volver a la hoja electr´nica de donde partimos. Esto se hace en el men´ Archivo,
o u
seleccionando Cerrar y Volver a Excel.
11. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 11
e
Figure 1.9: Se inserta un m´dulo en el que se escribir´ el c´digo de las macros.
o a o
Figure 1.10: Escritura del c´digo de una macro.
o
5. Para evaluar la funci´n f (x) en algunos valores que se localicen, por ejemplo, desde la fila 3 hasta la fila 6
o
de la columna B, nos situamos en una celda en la que nos interese dejar el resultado de dicha evaluaci´n o
y se digita +f(B3). Luego se arrastra hasta C6 para copiar la f´rmula, quedando:
o
Figure 1.11: Evaluaci´n de una funci´n definida por el usuario.
o o
Nota: Para conocer con detalle la sintaxis de las funciones matem´ticas est´ndar que se pueden evaluar en
a a
Visual Basic, puede usarse la Ayuda del Editor de Visual Basic. Esta sintaxis es un poco diferente a
la que maneja Excel para las mismas funciones. Como ya vimos, para implementar la funci´n
o
cos(x)
f (x) = 2x3 + ln(x) − + sen(x)
ex
• en Excel la sintaxis es: 2*B3^3+LN(B3)-COS(B3)/EXP(B3)+SENO(B3)
12. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 12
e
• en VBA la sintaxis es 2 * x ^ 3 + Log(x) - Cos(x) / Exp(x) + Sin(x)
Observe, por ejemplo, que la funci´n logaritmo natural ln(x), en Excel se escribe LN mientras que en VBA
o
se escribe Log.
Ejemplo 2: lectura de par´metros en celdas
a
Una vez m´s vamos a trabajar con el modelo de crecimiento poblacional descrito anteriormente. La funci´n
a o
K
P (t) = ,
1 + Ae−kt
con
K − P0
A= .
P0
Ahora evaluaremos P (t) para distintos valores del tiempo t en d´ pero esta vez haremos dicha evaluaci´n
ıas, o
mediante una macro para definir P (t) .
Los par´metros los vamos a leer desde unas celdas ubicadas en la columna C. Para hacer referencia a una celda,
a
se usa el c´digo
o
Cells(fila,columna)
pero escribiendo ‘columna’ en formato num´rico. Por ejemplo, la celda C5 se invoca como
e
Cells(5,3)
Lo primero que hacemos es escribir, en el editor de VBA, la f´rmula de P (t), luego la invocamos en la celda F3
o
(de nuestra hoja de ejemplo) y arrastramos. Para ´sto, se siguen los siguientes pasos:
e
1. En primer lugar, abrimos una hoja Excel, que se llame por ejemplo Poblacion.xls. Luego se escriben
los valores de los par´metros, tal y como puede observarse en la siguiente figura:
a
Figure 1.12: Ubicaci´n inicial de los par´metros.
o a
2. Ahora ingresamos al men´ y en la opci´n Herramientas seleccionamos Macros. Luego se elige Editor de Visual Basic.
u o
Nuevamente, en el men´ de la ventana que se abre, se elige Insertar, para luego seleccionar M´dulo y
u o
escribir el siguiente c´digo:
o
Function P(t)
P0 = Cells(2, 3) ’P0 est’a en la celda C2
LimPobl = Cells(4, 3) ’K est’a en la celda C4
k = Cells(5, 3) ’k est’a en la celda C5
A = (LimPobl - P0) / P0
P = LimPobl / (1 + A * Exp(-k * t))
End Function
13. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 13
e
Figure 1.13: Captura de algunos par´metros constantes de las celdas de la hoja.
a
De esta forma, la ventana de edici´n de Visual Basic, quedar´ as´
o ıa ı:
3. Una vez que ha sido editado el c´digo de la macro, se guarda y salimos del ambiente de programaci´n en
o o
Visual Basic para volver a la hoja electr´nica de donde partimos. Este retorno se hace siguiendo el men´
o u
Archivo y seleccionando Cerrar y Volver a Excel.
4. Para evaluar la funci´n P (t) en los valores de t que est´n en la fila que inicia en F2, nos situamos en la
o a
celda F3 y se digita +P(F2). Luego se arrastra hasta J2 para copiar la f´rmula, quedando:
o
Figure 1.14: Resultado final al evaluar la macro del modelo poblacional.
1.5 Elementos de programaci´n en VBA
o
Un programa computacional escrito mediante cualquier lenguaje de programaci´n puede verse a grandes rasgos
o
como un flujo de datos, algunos jugando el papel de datos de entrada, otros son datos que cumplen alguna
funci´n temporal dentro del programa y otros son datos de salida. A lo largo del programa es muy frecuente
o
que sea necesaria la entrada en acci´n de otros programas o procesos. A mayor complejidad del problema que
o
resuelve el programa, mayor es la necesidad de programar por aparte algunos segmentos de instrucciones que
se especializan en una tarea o conjunto de tareas.
Hay tres tipos de estructuras b´sicas que son muy utilizadas en la programaci´n de un algoritmo, a saber, la
a o
estructura secuencial, la estructura condicional y la repetitiva.
A continuaci´n se explica, con ejemplos programados como macros de Excel, estas estructuras. Tambi´n se
o e
incluyen los programas en seudoc´digo y diagramas de flujo para explicar de un modo m´s gr´fico la l´gica del
o a a o
programa. El uso de estos ultimos es cada vez menor, pues el seudoc´digo por lo general es suficientemente
´ o
claro y se escribe en lenguaje muy cercano al lenguaje natural.
1.5.1 Flujo secuencial
El flujo secuencial consiste en seguir una secuencia de pasos que siguen un orden predeterminado.
14. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 14
e
Por ejemplo, un programa que a partir de un n´mero N de d´ calcula la cantidad de segundos que hay en
u ıas,
esta cantidad de d´
ıas. Este programa se puede ver como una secuencia de varios pasos:
• Inicio: Ingresa el n´mero N de d´
u ıas
• Paso 1: H = 24*N, para determinar la cantidad de horas
• Paso 2: M = 60*H, para determinar la cantidad de minutos.
• Paso 3: S = 60*M, para determinar la cantidad de segundos.
• Paso 4: Retorne S.
• Fin.
La macro correspondiente a esta secuencia de c´lculos puede escribirse como sigue:
a
Function CalculeSegundos(Dias)
CantHoras = 24 * Dias
CantMinutos = 60 * CantHoras
CalculeSegundos = 60 * CantMinutos
End Function
Figure 1.15: Flujo secuencial
1.5.2 Flujo condicional (If - Else)
Un flujo condicional se presenta en un programa o procedimiento que debe escoger una acc´n o proceso a eje-
o
cutar, dependiendo de condiciones que puedan cumplirse.
El caso m´s sencillo ocurre cuando el programa verifica si una condici´n se cumple y en caso de ser verdadera
a o
ejecuta un proceso, en tanto que si es falsa ejecuta otro proceso.
En VBA tenemos la instrucci´n
o
15. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 15
e
If...Then...Else
Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de una expresi´n.
o
Sintaxis
If condici´n Then
o
instrucciones
Else instrucciones-else
Puede utilizar la siguiente sintaxis en formato de bloque:
If condici´n Then
o
instrucciones
ElseIf condici´n Then
o
instrucciones-elseif
...
Else instrucciones-else
End If
Nota: En la ayuda del editor de Visual Basic, tenemos acceso a la referencia del lenguaje.
Ejemplo 2
En este ejemplo veremos c´mo usar la instrucci´n If...Then...Else
o o
√ √
Obtener un programa que calcule aproximaciones de 2, sabiendo que la sucesi´n {xn }n∈N converge a
o 2,
definida en forma recurrente mediante la relaci´n:
o
1 2
xn+1 = 2 (xn + xn )
x0 = 1
El programa deber´ estimar el error absoluto de las aproximaciones y ser´ capaz de escribir un mensaje de ´xito
a a e
o de fracaso, dependiendo de si el error absoluto es o no menor que una tolerancia dada.
Para los resultados que aparecen en la gr´fica anterior pueden programarse las siguiente macros para ser eval-
a
uadas en cada columna:
Function AproxDeRaiz(x)
AproxDeRaiz = (1 / 2) * (x + 2 / x)
End Function
Function CalculoElError(Aproximacion, ValorExacto)
CalculoElError = Abs(Aproximacion - ValorExacto)
End Function
16. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 16
e
√
Figure 1.16: Resultado de la aproximaci´n de
o 2.
Function verificaTol(Error, Tol)
If (Error < Tol) Then
verificaTol = "EXITO"
Else
verificaTol = "FRACASO"
End If
End Function
El diagrama siguiente ilustra la forma en que esta ultima funci´n de verificaci´n act´a con base en el valor de
´ o o u
sus dos par´metros de entrada:
a
Figure 1.17: Diagrama de flujo condicional para verificar si se alcanz´ la tolerancia.
o
1.5.3 Flujo repetitivo (For-Next, While-Wend, Do While-Loop)
El flujo repetitivo se presenta en un algoritmo cuando se requiere la ejecuci´n de un proceso o parte de un
o
proceso sucesivamente, hasta que ocurra una condici´n que permita terminar.
o
Este tipo de flujos repetitivos se presentan en tres formas que obedecen a maneras diferentes de razonarlos pero
que en el fondo hacen lo mismo:
• Utilizar un contador que empiece en un n´mero y termine en otro, ejecutando el proceso cada vez que el
u
contador tome un valor distinto.
17. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 17
e
• Mientras una condici´n sea verdadera, ejecutar un proceso y regresar a la condici´n.
o o
• Ejecutar un proceso, hasta que una condici´n deje de cumplirse.
o
En VBA tenemos las siguientes instrucciones para realizar procesos iterativos:
1. For ... Next
Repite un grupo de instrucciones un n´mero especificado de veces.
u
Sintaxis (las instrucciones entre ‘[ ]’ son instrucciones adicionales)
For contador = inicio To fin [Step incremento]
instrucciones
[Exit For]
instrucciones
Next contador
2. While...Wend
Ejecuta una serie de instrucciones mientras una condici´n dada sea True.
o
Sintaxis
While condici´n
o
intrucciones
Wend
Nota: No hay un Exit While. En una subrutina, si fuera necesario, se podr´ usar Exit Sub
ıa
3. Una instrucci´n muy parecida a While pero m´s eficiente es Do
o a
Sintaxis
Do while condici´n
o
instrucciones
[Exit Do]
Loop
Ejemplo 3
Para ilustrar estas formas de realizar un flujo repetitivo, vamos a aproximar la suma de una serie alternada con
un error estimado menor que una cantidad tol dada.
Consideremos la serie alternada
18. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 18
e
∞
1 1 1 1
(−1)k = −1 + − + − ...
k2 4 9 16
k=1
La suma parcial N -´sima viene dada por
e
N
1 1 1 1 1
SN = (−1)k = −1 + − + − . . . + (−1)N 2
k2 4 9 16 N
k=1
es decir
S1 = −1 = −1
S2 = −1 + 1/4 = −0.75
S3 = −1 + 1/4 − 1/9 = −0.861111...
S3 = −1 + 1/4 − 1/9 + 1/16 = −0.798611...
.
.
.
∞
1
De acuerdo con la teor´ de series alternadas, la serie
ıa (−1)k
es convergente. Si su suma es S, al aproxi-
k2
k=1
1
marla con la suma parcial SN , el error de la aproximaci´n es menor que
o , es decir
(N + 1)2
1
|S − SN | ≤
(N + 1)2
Primer problema
Dada una tolerancia TOL, calcular cada una de las sumas parciales hasta que el error de aproximaci´n sea menor
o
que TOL
Soluci´n
o
Figure 1.18: Sumas parciales y estimaci´n del error
o
19. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 19
e
Implementamos dos macros, una para el c´lculo de las sumas parciales y otra para hacer la verificaci´n del error
a o
estimado. En este caso, vamos a suponer que TOL est´ en la celda B33
a
Function sumaParcial(hastaN) Dim Acum, signo As Integer Acum = 0
signo = -1
For k = 1 To hastaN
Acum = Acum + signo * 1 / k ^ 2
signo = -signo
Next k
sumaParcial = Acum End Function
’--------------------------------------------------------------------
Function verificaTol(elN, tol)
If (1 / (elN + 1) ^ 2 > tol) Then
verificaTol = "Error estimado > " + Str(tol) ’tol es un n´mero
u
Else ’no una String
verificaTol = "OK, error estimado <" + Str(tol) ’por esto debemos usar ’Str’
End If
End Function
En la primera llamada de las macros se us´ sumaParcial(C33) y verificaTol(C33;B$33)
o
Segundo problema
Dada una lista de tolerancias TOL (donde T OL es una cantidad positiva, como 10−1 ,10−8 , etc.), aproximar la
1
suma de la serie con una cantidad N de t´rminos lo suficientemente grande de tal manera que
e < T OL.
(N + 1)2
1
La cantidad juega en este problema el papel de una cota del error, al aproximar la serie correspondiente
(N + 1)2
hasta el t´rmino N-´simo
e e
1. Primera soluci´n:
o
1
Dado que hay que sumar hasta el t´rmino N-´simo tal que
e e < T OL, en este caso es posible
(N + 1)2
despejar el entero positivo N , quedando:
1
N> −1
T OL
1
Tomamos N como la parte entera superior de T OL − 1, por lo que se calcula:
1
N= (parte entera)
T OL
Los pasos a seguir para programar la suma a partir de la tolerancia dada, son los siguientes:
• Inicio: Ingresa la tolerancia con que se har´ la aproximaci´n.
a o
20. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 20
e
1
• Paso 1: Calcular N =
T OL
• Paso 2: Acum = 0 (Se iniciliza el acumulador para la suma).
• Paso 3: Para k = 1 . . . N:
1
Acum = Acum + (−1)k
k2
• Paso 4: Retorne Acum.
• Fin.
Figure 1.19: Diagrama de flujo correspondiente a la primera soluci´n.
o
Observe que en cada sumando, se incluye el factor (−1)k , que en la pr´ctica, m´s que una potencia, lo que
a a
indica es el cambio de signo en los t´rminos sucesivos. Para evitarle al programa c´lculos innecesarios,
e a
podemos inicializar una variable signo en −1 y en cada paso de la instrucci´n repetitiva se cambia al signo
o
contrario. La macro correspondiente a este programa puede escribirse como sigue:
Function SumaParcial(Tol)
Acum = 0 signo = -1
N = Int(1 / Sqr(Tol))
For k = 1 To N
Acum = Acum + signo * 1 / k ^ 2
signo = -signo
Next k
SumaParcial = Acum
End Function
La siguiente figura muestra la evaluaci´n de esta macro para algunos valores de la tolerancia.
o
2. Segunda soluci´n:
o
En esta soluci´n no es necesario calcular el valor de N , sino que se suman los t´rminos mientras no se
o e
haya alcanzado la tolerancia. El programa en seudoc´digo se puede escribir como sigue:
o
• Inicio: Ingresa la tolerancia con que se har´ la aproximaci´n.
a o
• Paso 1: Iniciar con N = 1.
• Paso 2: Acum = -1 (Se iniciliza el acumulador para la suma con el primer t´rmino).
e
1
• Paso 3: Mientras > T ol :
(N + 1)2
21. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 21
e
Figure 1.20: Resultados calculados mediante la primera soluci´n.
o
. N =N +1
1
. Acum = Acum + (−1)N
N2
• Paso 4: Retorne Acum.
• Fin.
Figure 1.21: Diagrama de flujo correspondiente a la segunda soluci´n.
o
El c´digo es
o
Function SumaParcial2(Tol)
N = 1 Acum = -1 signo = 1
While (1 / (N + 1) ^ 2 > Tol)
N = N + 1
Acum = Acum + signo * 1 / N ^ 2
signo = -signo
Wend
SumaParcial2 = Acum
End Function
22. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 22
e
1.5.4 Manejo de rangos
Una rango en Excel corresponde a una selecci´n de celdas. Una selecci´n de las celdas de una fila o una columna
o o
se maneja en Excel como una matriz de orden 1 × n o de orden n × 1 (un vector). La selecci´n de un bloque
o
de celdas se maneja como una matriz n × m. Si una celda est´ en blanco, se lee un cero.
a
Ejemplo 4
Promedio simple. Consideremos una tabla con 5 notas, todas con igual peso.
Figure 1.22: Promedio simple.
Para calcular el promedio simple, en cada fila, vamos a hacer una macro que recibe un rango, cuenta las notas,
suma y divide entre el n´mero de notas.
u
Function PromedioSimple(R As Range) As Double ’R es la variable
que recibe el rango
Dim n As Integer
Dim sump As Double
sump = 0
n = R.EntireColumn.Count ’cantidad de notas en el rango
For Each x In R ’suma de las notas
sump = sump + x
Next x
Sume = sump / n ’promedio simple
End Function
En primera celda de la columna Promedio, llamamos a la macro con: PROMEDIO(C52:G52) pues en este caso el
rango es C52:G52.
Ejemplo 5
El Promedio eliminando las dos notas m´s bajas. En este caso, a un conjunto de notas les calculamos el
a
promedio simple pero eliminando las dos notas m´s bajas. El programa PromedioQ suma las n notas de una
a
fila (rango), localiza la posici´n (en el vector R) de las dos notas m´s bajas y luego le resta a la suma estas dos
o a
notas para luego dividir entre n − 2. En este caso, el rango R es una matriz 1 × n, o sea, se puede ver como un
vector de n componentes.
Function PromedioQ(R As Range) As Double
Dim n, i, Imin1, Imin2 As Integer
23. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 23
e
Figure 1.23: Promedio de notas, eliminando las dos m´s bajas.
a
Dim suma As Double
suma = 0
n = R.EntireColumn.Count ’n´mero de elementos de la selecci´n
u o
For i = 1 To n
suma = suma + R(1, i) ’R es una matriz 1xn (o sea, un vector)
Next i ’En R no se hace referencia a la celda
Imin1 = 1 ’POSICION de la 1ra nota m´nima en R
ı
For i = 1 To n
If R(1, i) < R(1, Imin1) Then
Imin1 = i
End If
Next i
Imin2 = 1 ’POSICION de la segunda nota m´nima en R
ı
If Imin1 = 1 Then
Imin2 = 2
End If
’comparar con todos excepto Imini1
For i = 1 To n
If (R(1, i) < R(1, Imin2)) And (i <> Imin1) Then
Imin2 = i
End If
Next i
PromedioQ = (suma - R(1, Imin1) - R(1, Imin2)) / (n - 2)
End Function
Nota: Tambi´n podr´
e ıamos resolver este problema usando Selection.Sort pero la programaci´n es un poco
o
m´s compleja.
a
1.5.5 Subrutinas. Edici´n y ejecuci´n de una subrutina
o o
La subrutinas o procedimientos es otro de los tipos b´sicos de programas en Visual Basic. Una descripci´n de la
a o
sintaxis de una subrutina que no es completa, pero s´ suficiente para los alcances de este material es la siguiente2 :
ı
2 Aparte de la posibilidad de declarar la subrutina como Private o Public, tambi´n se puede declarar como Friend, pero esto
e
tiene que ver m´s con la programaci´n orientada a objetos, que no se aborda en el presente material
a o
24. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 24
e
Sintaxis:
Sub Nombre-de-Subrutina(lista-argumentos)
instrucciones
End Sub
o tambi´n
e
[Private | Public] [Static] Sub Nombre-de-Subrutina(lista-argumentos)
instrucciones
End Sub
Lass partes entre corchetes indican que son opcionales. Adem´s:
a
Public. Es opcional. Indica que la subrutina puede ser llamada por todas las dem´s subrutinas sin
a
importar donde se encuentre.
Private. Es opcional. Indica que la subrutina puede ser llamada solamente por otras subrutinas que se
encuentren en el mismo m´dulo.
o
Static. Es opcional. Indica que las variables locales de la subrutina se mantienen constantes de una
llamada a otra. El ´mbito de acci´n de esta declaraci´n no incluye a variables declaradas fuera de la
a o o
subrutina.
Nombre-De-Subrutina. Es requerido. Indica el nombre de la subrutina.
lista-argumentos. Es opcional e indica las variables que conforman los argumentos con que una sub-
rutina es llamada. Para separar una variable de otra se escribe una coma.
instrucciones. Es opcional y conforma el conjunto de instrucciones que son ejecutadas a lo largo de la
subrutina.
Ejemplo 6
Elevar al cuadrado los valores de una selecci´n (ejecutar desde la ventana de ejecuci´n de macros).
o o
Podemos implementar una subrutina en una hoja, que recorra una selecci´n hecha con el mouse y que vaya
o
elevando al cuadrado el valor de cada celda.
25. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 25
e
Figure 1.24: Elevar al cuadrado los elementos de la selecci´n
o
Sub elevAlCuadado()
For Each cell In Selection.Cells ’para cada celda de la selecci´n
o
cell.Value = cell.Value ^ 2 ’recalcula el valor de la celda
Next cell
End Sub
Nota: La macro se aplica a los datos que est´n actualmente seleccionados
a
• Para editar la subrutina, vamos al editor VB (Alt-F11) y hacemos doble-clic sobre (Hoja1)
Figure 1.25: Edici´n de la subrutina en Hoja 1
o
Escribimos el c´digo, compilamos (en men´ Depuraci´n), guardamos y nos devolvemos a la hoja.
o u o
• Para ejecutar la macro seleccionamos la tabla con el mouse y levantamos la ventana de ejecuci´n de macros
o
(Alt-F8)y damos clic en ’Ejecutar’
Nota: Esta subrutina tambi´n se puede editar en un m´dulo. Para ejecutarla se procede de la misma forma.
e o
1.5.6 Ejecuci´n de una subrutina mediante un bot´n
o o
Otra posibilidad bastante pr´ctica para ejecutar un programa o subrutina como los presentados en la secci´n
a o
precedente es mediante un bot´n de comando.
o
26. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 26
e
Figure 1.26: Ejecutar macro
Ejemplo 7
Elevar al cuadrado los valores de una selecci´n.
o
1. Primero digitarmos la tabla de valores. Luego insertamos un bot´n. Para esto seleccionamos un bot´n del
o o
cuadro de controles (si la barra no est´ disponible, puede habilitarla con Ver - Barra de herramientas
a
- Cuadro de Controles).
Figure 1.27: Insertar un bot´n
o
2. Luego hacemos clic en el lugar de la hoja donde queremos el bot´n. Una vez que tenemos el bot´n, pode-
o o
mos agregar algunas propiedades como etiqueta, color de fondo, etc., en el men´ de contexto. Este men´
u u
se abre con clic derecho + propiedades. Luego cerramos el men´ u
3. Para editar el c´digo que deber´ ejecutar el bot´n, le damos un par de clics al bot´n (que todav´ est´ en
o a o o ıa a
modo dise˜o). En este caso, si es la primera vez, nos aparece el c´digo
n o
Private Sub CommandButton1_Click() End Sub
Aqu´ tenemos dos opciones
ı
a.) Implementar la subrutina por separado y luego llamarla desde la subrutina del bot´n
o
27. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 27
e
Figure 1.28: Men´ de contexto para un bot´n
u o
Figure 1.29: Tabla y bot´n
o
Sub elevAlCuadado()
For Each cell In Selection.Cells ’para cada celda de la selecci´n
o
cell.Value = cell.Value ^ 2 ’recalcula el valor de la celda
Next cell
End Sub
’-----------------------------------------------------------------------
Private Sub CommandButton1_Click()
elevAlCuadado ’sin par´ntesis
e
End Sub
’-----------------------------------------------------------------------
b.) Incluir en la subrutina del bot´n lo que vamos a querer que se ejecute cuando se haga clic sobre ´l
o e
Private Sub CommandButton1_Click()
For Each cell In Selection.Cells ’para cada celda de la selecci´n
o
cell.Value = cell.Value ^ 2 ’recalcula el valor de la celda
Next cell
End Sub
4. Una vez que escogemos alguna de las dos opciones anteriores, compilamos (en men´ Depurar), guardamos
u
y nos devolvemos a la hoja.
28. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 28
e
5. Para habilitar el bot´n debemos deshabiltar el ´
o ıcono de dise˜o
n .
6. Ahora solo resta seleccionar la tabla y hacer clic sobre el bot´n.
o
Observe que al dar un clic sobre el bot´n, el programa opera sobre lo que tengamos seleccionado previa-
o
mente
Figure 1.30: Correr una subrutina desde un bot´n con la tabla seleccionada
o
29. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 29
e
Nota: Puede ser importante conocer la primera o la ultima celda de una selecci´n. Para esto podemos usar la
´ o
propiedad Address
Set R = Selection
adr = R(1, 1).Address ’primera celda de la selecci´n, por ejemplo $A$1
o
num = Right(adr, 1) ’primera posici´n a la derecha de adr (1 en este caso)
o
1.5.7 Matrices din´micas
a
Cuando hacemos una selecci´n con el mouse, es conveniente entrar los valores seleccionados en una matriz
o
din´mica, es decir, una matriz que se ajuste a la cantidad de datos seleccionada y que, eventualmente, se pueda
a
recortar o hacer m´s grande.
a
Una matriz din´mica mtr1 de entradas enteras se declara as´
a ı:
Dim mtr1() As Integer ’ Declara una matriz din´mica.
a
Las instrucciones siguientes cambian el tama˜o de la matriz mtr1 y la inicializa. Observe el uso de Redim para
n
cambiar el tama˜o de la matriz din´mica.
n a
Dim mtr1() As Integer ’ Declara una matriz din´mica.
a
Dim r() as Double
Redim mtr1(10) ’ Cambia el tama~o a 10 elementos, 1x10.
n
Redim r(n,m) ’ Cambia tama~o a
n n x m
For i = 1 To 10 ’ Bucle 10 veces.
mtr1(i) = i ’ Inicializa la matriz.
Next i
Usando Preserve se puede cambiar el tama˜o de la matriz mtr1 pero sin borrar los elementos anteriores.
n
Redim Preserve mtr1(15) ’ Cambia el tama~o a 15 elementos.
n
Ejemplo 8
Centro de gravedad de un conjunto de puntos en R2
Consideremos un conjunto Ω = {(xi , yi ) / i = 1, 2, · · · , n, xi , yi ∈ R}. Supongamos que a cada punto (xi , yi )
n
se le asigna un peso pi tal que pi = 1. El centro de gravedad GΩ de Ω se define as´
ı
i=1
n
GΩ = pi (xi , yi )
i=1
30. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 30
e
Por ejemplo, si tenemos dos puntos A, B ∈ R2 con igual peso (este deber´ ser 1/2 para cada punto), entonces
a
el centro de gravedad es el punto medio del segmento que une A con B
A+B
GΩ =
2
La subrutina que calcula el centro de gravedad de un conjunto de puntos Ω ⊂ R2 act´a sobre un rango de
u
tres columnas en el que se han escrito las coordenadas (x, y) de dichos puntos, as´ como sus pesos. Podemos
ı
correr el programa una vez que se ha seleccionado el rango completo en el que se ubican los puntos y sus pesos,
haciendo clic sobre un bot´n “Centro Gravedad”. El gr´fico es un trabajo adicional.
o a
Como el programa necesita que el usuario haya seleccionado al menos dos filas y exactamente tres columnas,
incluimos un fragmento de c´digo adicional para controlar la selecci´n.
o o
Set R = Selection n = R.Rows.Count ’ N´mero de filas m =
u
R.Columns.Count ’ N´mero de columnas
u
If n > 1 And m = 3 Then
’todo est´ bien, el programa contin´a
a u
Else
MsgBox ("Debe seleccionar los datos")
Exit Sub ’ salimos de la subrutina
End If
Observemos que si no se cumple el requisito, se env´ un mensaje y la subrutina se deja de ejecutar. Puede
ıa
causar curiosidad que que antes del Else no haya c´digo. A veces se usa esta construcci´n por comodidad. Si
o o
no hay c´digo el programa contin´a.
o u
Veamos el c´digo completo en la subrutina del bot´n
o o
Private Sub CommandButton2_Click()
Dim R As Range
Dim n,m, i As Integer
Dim x() As Double ’ matriz din´mica
a
Dim y() As Double ’ se ajustar´ a la selecci´n de datos
a o
Dim p() As Double
Dim Sumapesos, Gx, Gy As Double
’En el rango R guardamos el rango seleccionado:
Set R = Selection
n = R.Rows.Count ’ N´mero de filas
u
m = R.Columns.Count ’ N´mero de columnas
u
’ chequear que se hayan seleccionado los datos de la tabla
If n > 1 And m = 3 Then
’nada pasa, todo bien
Else
MsgBox ("Debe seleccionar los datos")
31. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 31
e
Exit Sub ’ salimos de la subrutina
End If
ReDim x(n) ’ vector x tiene ahora n campos
ReDim y(n)
ReDim p(n)
Sumapesos = 0 ’inicializa para acumular
Gx = 0
Gy = 0
’inicializa las matrices con los datos
If n > 1 Then ’si hay datos seleccionados, n > 1
For i = 1 To n
x(i) = R(i, 1) ’entra los datos de columna de los x’s
y(i) = R(i, 2)
p(i) = R(i, 3)
’calcula centro de gravedad
Sumapesos = Sumapesos + p(i)
Gx = Gx + x(i) * p(i)
Gy = Gy + y(i) * p(i)
Next i
If Abs(Sumapesos - 1) < 0.001 Then ’la suma los pesos debe ser 1
Gx = Gx / Sumapesos
Gy = Gy / Sumapesos
’escribe G en la celda D14
Cells(14, 4) = "G = (" + Str(Gx) + "," + Str(Gy) + ")"
Cells(14, 5) = "" ’limpia E14 de mensajes previos
Else
’mensaje de error
Cells(14, 5) = "Error, los pesos suman " + Str(Sumapesos)
Cells(14, 4) = "" ’limpia D14 de valores previos
End If
Else
Cells(14, 4) = ""
’ventana de advertencia: seleccione datos!
MsgBox ("Debe seleccionar los datos")
Exit Sub ’ aborta la subrutina si no hay datos
End If
End Sub
Nota: Por cuestiones de redondeo, la instrucci´n If Sumapesos = 1 se cambi´ por If Abs(Sumapesos - 1)
o o
< 0.001 .
Un ejemplo de corrida se ve en la figura que sigue
Ejercicios 1
1. Usando la notaci´n del ultimo ejemplo, se define la inercia total de Ω como
o ´
32. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 32
e
Figure 1.31: Correr una subrutina desde un bot´n
o
n
I(Ω) = pi || (xi , yi ) − GΩ | |2
i=1
√
donde ||(a, b)|| = a2 + b2 es la norma usual.
Implemente una subrutina que calcula la Inercia Total de Ω y apl´
ıquela a la tabla del ejemplo 8.
2. Si tenemos n + 1 puntos {(x0 , y0 ) , (x1 , y1 ) , (x2 , y2 ) , · · · (xn , yn ) }, se define
(x − x0 )(x − x1 ) · · · (x − xi−1 )(x − xi+1 ) · · · (x − xn )
Lin (x) =
(xi − x0 )(xi − x1 ) · · · (xi − xi−1 )(xi − xi+1 ) · · · (xi − xn )
O sea, en Lin (x) se elimina el factor (x − xi ) en el numerador y el factor (xi − xi ) en el denominador
Implemente una hoja, como se ve en la figura, en la que el usuario hace una selecci´n de la tabla y al
o
hacer clic en el bot´n, se calcula L2n (2.56)
o
Figure 1.32: L2n (2.56)
33. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 33
e
Parte del c´digo ser´
o ıa
...
Set R = Selection
n = R.Rows.Count ’ N´mero de filas
u
ReDim x(n) ’ vector x tiene ahora n campos
ReDim y(n)
valorX = Cells(2, 3) ’ valorX est´ en celda C2
a
If n > 1 Then ’si hay datos seleccionados, n > 1
For i = 1 To n
x(i) = R(i, 1) ’entra los datos de columna de los xi’s y los yi’s, inicia en 1
y(i) = R(i, 2) ’aqu´, iniciamos desde x1, es decir el x0 de la teor´a, es x1
ı ı
Next i
L2n= 1 ’inicia c´lculo de L2n(variable x)
a
For j = 1 To n ’calculamos L2n(valorX)
If j <> 2 Then
L2n = L2n * (valorX - x(j)) / (x(k) - x(j)) ’L2n evaluado en valorX
End If
Next j
Cells(2, 4) = L2n
Else
MsgBox ("Debe seleccionar los datos")
Exit Sub ’ aborta la subrutina si no hay datos seleccionados
End If
...
3. Si tenemos n + 1 puntos {(x0 , y0 ) , (x1 , y1 ) , (x2 , y2 ) , · · · (xn , yn ) }, un polinomio que pasa por todos estos
puntos se llama Polinomio Interpolante. Un polinomio interpolante muy conocido es el Polinomio de
Lagrange
n n
(x − xj )
P (x) = yi
i=0 j=0,j=i
(xi − x1 )
o sea
n
(x − x0 )(x − x1 ) · · · (x − xi−1 )(x − xi+1 ) · · · (x − xn )
P (x) = yi
i=0
(xi − x0 )(xi − x1 ) · · · (xi − xi−1 )(xi − xi+1 ) · · · (xi − xn )
O sea, para cada valor de i se elimina el factor (x − xi ) en el numerador y el factor (xi − xi ) en el
denominador
Este polinomio cumple P (xi ) = yi i = 1, 2, ...n.
34. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 34
e
Por ejemplo, para el caso de tres puntos (x0 , y0 ), (x1 , y1 ) y (x2 , y2 ), el Polinomio de Lagrange es
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
P (x) = y0 + y1 + y2
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
(a) Implemente una subrutina que, a partir de una selecci´n de puntos (xi , yi ) (en dos columnas) en
o
una hoja de Excel, eval´a el polinomio interpolante en una valor dado de antemano en una celda, o
u
sea, calcula P (a) para un valor a dado.
(b) Aplique la implementaci´n anterior a una tabla como la que se presenta en la figura
o
Figure 1.33: Polinomio de Lagrange
Parte del c´digo ser´
o ıa
...
suma = 0 ’inicializa para acumular
If n > 1 Then ’si hay datos seleccionados, n > 1
For i = 1 To n
x(i) = R(i, 1) ’entra los datos de columna de los xi’s y los yi’s, inicia en 1
y(i) = R(i, 2) ’aqu´, iniciamos desde x1, es decir el x0 de la teor´a, es x1
ı ı
Next i
For k = 1 To n
Lkn = 1 ’inicia c´lculo de Lkn
a
For j = 1 To n ’calculamos Lkn(valorX)
If j <> k Then
Lkn = Lkn * (valorX - x(j)) / (x(k) - x(j)) ’Lkn evaluado en valorX
End If
Next j
suma = suma + Lkn * y(k)
Next k
Cells(5, 4) = suma
Else
’ventana de advertencia: seleccione datos!
MsgBox ("Debe seleccionar los datos")
Exit Sub ’ aborta la subrutina si no hay datos seleccionados
End If
...
35. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 35
e
1.5.8 Inclusi´n de procedimientos de borrado
o
En ocasiones es necesario borrar alguna informaci´n que ha sido escrita en una hoja electr´nica, por lo que es
o o
importante conocer una forma de incorporar en la aplicaci´n un procedimiento de borrado.
o
Ejemplo 9
Presentamos a continuaci´n un programa que, a partir de un n´mero N construye el tri´ngulo de Pascal de N
o u a
niveles. Tambi´n se incluye un programa que funciona como borrador o destructor del tri´ngulo.
e a
En cada nivel del tri´ngulo hay un uno en los extremos y, a partir del tercer nivel, cada n´mero, salvo los
a u
extremos, es la suma de los dos de arriba. Concretamente, el tri´ngulo de Pascal es un arreglo triangular de
a
n´meros de la forma:
u
Figure 1.34: Tri´ngulo de Pascal.
a
Por simplicidad, presentamos un programa que lee el n´mero de niveles del tri´ngulo de Pascal en la celda E1
u a
y lo despliega de la forma:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...
El procedimiento para borrar el tri´ngulo tambi´n lee el n´mero de niveles del tri´ngulo de la celda E1.
a e u a
Tanto la construcci´n del tri´ngulo como su destrucci´n pueden ser activados mediante botones. Las instruc-
o a o
ciones que realizan estos procedimientos tambi´n pueden ser incluidas directamente en el c´digo de los botones,
e o
tal y como se detalla a continuaci´n.
o
El c´digo para la construcci´n del tri´ngulo quedar´ as´
o o a ıa ı:
Private Sub EjecucionDePascal_Click()
36. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 36
e
’ Lectura de la cantidad de niveles:
N = Cells(1,5)
’ Llenar unos:
For i = 1 To N
Cells(i,1)= 1
Cells(i,i)= 1
Next i
’ Llenar el resto:
If N > 2 Then
For i=3 To N
For j=2 To i-1
Cells(i,j)= Cells(i-1,j) + Cells(i-1,j-1)
Next j
Next i
End If
End Sub
El procedimiento para borrar el tri´ngulo tambi´n lee el n´mero de niveles y hace el mismo recorrido de celdas
a e u
que hizo el constructor y en cada celda escribe un valor nulo.
Private Sub Borrador_Click()
N = Cells(1, 5).Value
For i = 1 To N
For j = 1 To i
Cells(i, j).Value = Null
Next j
Next i
End Sub
Figure 1.35: Tri´ngulo de Pascal construido con 10 niveles.
a
Ejercicios 2
1. Tri´ngulo de Pascal. Haga un programa que, al activarlo desde un bot´n de comando, lea un un n´mero
a o u
N de la celda A1 y construya el tri´ngulo de Pascal en la forma:
a
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1 ...
37. VBA para Excel M.Sc. Walter Mora F., M.Sc. Jos´ Luis Espinoza B. 37
e
Adem´s, incluya un bot´n que active un destructor especializado para este tri´ngulo.
a o a
2. Aritm´tica entera. En VBA hay dos tipos de divisi´n: a/b es la divisi´n corriente (en punto flotante)
e o o
y ab que es la divisi´n entera. Por ejemplo, 3/2 = 1.5 mientras que 32 = 1.
o
Hay muchos algoritmos en los que se usa exclusivamente divis´n entera. Veamos un ejemplo.
o
√
Si N es un entero positivo, vamos a calcular el entero m´s grande que es menor o igual a N , es
√ a
decir N (‘ ’ es la parte entera). El algoritmo, que opera en aritm´tica entera, es el siguiente
e
N
a.) Inicio: s0 = 2
N
si +
si
b.) si+1 = , i = 0, 1, 2, ...
2
c.) iterar hasta que si+1 ≥ si
√
d.) el ultimo si es
´ N
√
Por ejemplo si N = 10 , N ≈ 3, 16227766 y el ultimo si ser´ 3
´ ıa
Implemente el algoritmo.
√
3. C´lculo de la ra´ cuadrada. Para calcular x con x ∈ R+ , se pueden usar varios algoritmos de-
a ız
pendiendo de la precisi´n y rapidez que se busca. La calculadoras usualmente tienen implementadas muy
o √
buenas subrutinas para calcular exponenciales y logaritmos por lo que para calcular x usan la identidad
√ 1 ln(x)
x = e2
En nuestro caso, por simplicidad, vamos a usar un m´todo iterativo: el m´todo de Newton. Bajo ciertas
e e
hip´tesis, si x0 es una buena aproximaci´n a una soluci´n r de la ecuaci´n P (x) = 0 entonces el esquema
o o o o
iterativo
P (xi )
xi+1 = xi −
P (xi )
converge a r con error ≤ |xi − xi+1 | .
√ 1 1
Para hallar U con U > 0 , vamos a resolver la ecuaci´n 2 −
o = 0 con el m´todo de Newton. Esto
e
√ x U
nos dar´ una aproximaci´n a U .
a o
Nota: Como U es una constante, el esquema iterativo se podr´ simplificar un poco m´s en el c´digo
ıa a o
Nota: Tambi´n se pudo haber usado la ecuaci´n x2 − U = 0 pero el proceso de aproximaci´n es un poco
e o o
m´s lento.
a