BENEMÉRITA UNIVERSIDAD AUTONOMA DE PUEBLA TESIS

Anuncio
BENEMÉRITA UNIVERSIDAD
AUTONOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
Laboratorio Interactivo de Probabilidad
LIP V.1.0
“Software Matemático de Apoyo Para el
Estudio de Un Curso Básico de Probabilidad”
TESIS PROFESIONAL
QUE PARA OBTENER EL GRADO DE :
LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN
PRESENTA:
ALFREDO MELO ALCÁNTARA
ASESOR: M. C. JOSÉ DIONICIO ZACARIAS FLORES.
COASESOR: M. C. JOSÉ ANDRES VAZQUEZ FLORES.
PUEBLA, PUE.
2004
CONTENIDO
INTRODUCCIÓN
I
Capitulo 1. Planteamiento del Problema
1.1 Origen del problema.
1
1.2 |Delimitación de Objetivos.
2
1.2.1 Objetivo General.
2
1.2.2 Objetivo Particular.
2
1.3 Metodología.
3
Capitulo 2. Laboratorios Interactivos y Virtuales
2.1 Concepto de Laboratorio, Interactividad y Virtual.
5
2.2 Simulación.
6
2.3 Modelo.
7
2.4 ¿Qué es un laboratorio Interactivo Computacional?.
8
2.5 Conclusiones.
Unidad 3. Análisis y Diseño del Sistema LIP
3.1 Ciclo de Vida de Un Sistema.
10
3.1.1 Análisis del Sistema.
11
3.1.2 Requisitos del Sistema.
12
3.1.3 Diseño del Sistema.
13
3.1.4 Codificación del Sistema.
14
3.1.5 Pruebas del Sistema.
15
3.1.6 Mantenimiento del Sistema.
15
Capitulo 4. Herramientas para la Implementación
4.1 Aspectos importantes sobre las versiones de Visual Basic.
18
4.2 Como Desarrollar una aplicación Visual Basic.
19
4.3 El Entorno Visual Basic.
20
4.3.1 Barra de Títulos.
21
4.3.2 Barra de Menús.
22
4.3.3 Barra de herramientas.
23
4.3.4 Ventana de Formulario.
24
4.3.5 Ventana del Proyecto.
24
4.3.6 Ventana de propiedades.
25
4.3.7 Caja de Herramientas.
26
4.3.8 Ventana de Edición de Código.
29
4.4 Eventos Principales de Visual Basic 6.
30
4.5 Definición de Algunos Conceptos Básicos, con los que
trabaja Visual Basic 6.
31
Capitulo 5. Desarrollo de LIP.
5.1 Aspectos Generales para las formas.
34
5.2 Consideraciones de Diseño.
35
5.3 Aplicaciones y descripción de todas las interfaces
de LIP.
36
Apéndice A: Procedimientos y funciones mas importantes del Sistema.
53
Apéndice B: Definiciones y Conceptos Básicos de Distribuciones Discretas y
83
Continuas.
Conclusiones y Recomendaciones
95
Bibliografía
97
Benemérita Universidad Autónoma de Puebla
INTRODUCCION
Actualmente el uso de las computadoras han pasado a hacer algo importante en
nuestra vida, ya que son una herramienta que nos ayuda a diferentes actividades, por
ejemplo consultar información en Internet, realizar escritos, editar imágenes con ayuda de
software especializado en imágenes, etc. Pero uno de los usos mas importantes de la
computadora es sin duda que nos ayuda a complementar un mejor aprendizaje en la
escuela, por tal motivo se ha tenido la necesidad de integrar las nuevas tecnologías en la
educación y desarrollar nuevos métodos de enseñanza.
Un problema muy común de aprendizaje en el área de ciencias exactas, es el grado
de dificultad de las diversas materias, en particular en la materia de probabilidad, ya que la
mayor parte de las veces el concepto de incertidumbre o azar es difícil de entenderlo, lo
que se refleja en el estudiante al tratar de resolver problemas relacionados con el tema, así
como la forma en que puede llevar a cabo aplicaciones al mundo real, ante esta realidad, se
decidió el desarrollo de un sistema computacional que apoye el estudio y aprendizaje de la
probabilidad.
El propósito de este trabajo se basó fundamentalmente en ofrecer al usuario que
esté interesado en aprender probabilidad, un sistema computacional interactivo que le
permita comprenderla y aplicarla.
El usuario podrá estudiar problemas planteados en el curso de probabilidad, y en el
momento de modelarlos matemáticamente, hacer uso de las distribuciones típicas tanto
discretas como continuas. También se podrán ejecutar y experimentar algunas simulaciones
usuales en el estudio de la probabilidad.
El sistema computacional interactivo se denomina LIP, el cual se disfruta debido
a su entorno multimedia, complementándolo con definiciones básicas de las distribuciones
LIP
I
Benemérita Universidad Autónoma de Puebla
de probabilidad desarrolladas. LIP funciona a base de módulos, los cuales son
seleccionados en un menú principal.
Este documento esta organizado de la siguiente manera:
En el Capítulo 1, se describe el planteamiento del problema, así como los objetivos
generales, específicos y la metodología a seguir en el problema en estudio.
En el Capítulo 2, trata sobre la diferencia que existe entre un Laboratorio Interactivo y
Laboratorio Virtual, así como ejemplos existentes sobre los mismos .
En el Capitulo 3, trata sobre los aspectos que se tomaron en cuenta para el análisis y el
diseño del sistema LIP. Además de describir los pasos por los que todo software debe
pasar.
En el Capitulo 4, se da un recorrido rápido de las herramientas más elementales para la
implementación del software, esto para demostrar la facilidad con la que se puede diseñar
el mismo.
En el Capitulo 5, se muestra todo el desarrollo del Sistema LIP, esto en base a lo que se
comento con respecto a la información, recursos con los que se cuentan, y las necesidades
expuestas.
Al final se presentan :
El Apéndice A, contiene los procedimientos más importantes de este sistema.
El Apéndice B, contiene las definiciones de las distribuciones discretas y clásicas de
probabilidad mencionadas en este trabajo de tesis.
y por último se presentan las conclusiones y recomendaciones de este trabajo de tesis.
LIP
II
Benemérita Universidad Autónoma de Puebla
CAPITULO 1
PLANTEAMIENTO DEL PROBLEMA
1.1 ORIGEN DEL PROBLEMA
El problema que dio origen al proyecto nace ante la dificultad que presentan los
estudiantes del área de ciencias exactas, ya sea de nivel medio superior o superior en el
aprendizaje de diversas materias, entre ellas la de probabilidad y estadística.
En la mayoría de las instituciones, a nivel medio superior y superior, en las que se
imparte esta materia, todavía se enseña esta materia en forma tradicional, sin que tengan
como apoyo algún otro recurso didáctico, en particular una herramienta computacional.
Actualmente existen en el mercado diversos programas que servirían como apoyo
para la enseñanza, pero existen muchos inconvenientes en los mismos, como por ejemplo
que son muy costosos, algunos muy difíciles de aprender o de conseguir, no están en
español, y la bibliografía para poder usar estos programas es muy costosa. También existen
diferentes tutoriales en formato html, pero estos aún están muy pobres en contenido, pobres
en ejemplos y ayuda para poder entenderlos. Igualmente se encontró algunos programas ya
desarrollados1 pero para tener acceso a ellos, tiene uno que ser un usuario registrado, y
contar con requisitos específicos de configuración computacional, lo cual limita su uso.
1
La dirección de este sitio web es http://www.math.uah.edu/stat/ , en él se ofrece un Laboratorio Virtual en
Probabilidad y Estadística, el cual es soportado parcialmente por el Department of Mathematical Sciences
University of Alabama in Huntsville.
LIP
1
Benemérita Universidad Autónoma de Puebla
1.2 DELIMITACION DE OBJETIVOS
1.2.1
Objetivo General
El objetivo general de este trabajo es ofrecer un programa computacional de tipo
experimental, en donde se tendrá la oportunidad de analizar de modo interactivo cada uno
de los diversos modelos probabilísticos, tanto discretos como continuos que son estudiados
en un primer curso de probabilidad. Así como el poder experimentar con algunas
simulaciones clásicas de la probabilidad.
1.2.2
Objetivos Particulares
Para cumplir con el objetivo general, se propuso como objetivos particulares los
siguientes:
¾El sistema debe contribuir a la enseñanza y mejorar el aprendizaje en los alumnos con
un alto grado de interactividad.
¾Experimentar simulaciones típicas de probabilidad tales como: juego de cartas,
lanzamiento de una o dos monedas, lanzamiento de uno o dos dados, caminatas
aleatorias, problema del cumpleaños.
¾Estudiar las distribuciones más usuales, tales como la Binomial, Binomial Negativa,
Geométrica, Hipergeometrica, Poisson, Uniforme, Exponencial y Normal.
¾Contar con una utilería para calcular permutaciones y combinaciones.
LIP
2
Benemérita Universidad Autónoma de Puebla
1.3
METODOLOGIA
Con respecto a la metodología que se siguió, se procedió de la siguiente manera, se hizo
una investigación sobre los trabajos y artículos existentes en Internet, en la universidad y
podemos destacar los siguientes:
Hipertexto de Estadística Económica y Empresarial. Recurso de utilidad múltiple, en el
que pueden seguirse diferentes lecturas a distintos niveles de profundidad y distintos
ordenes, explotándose así las posibilidades de interactividad y textualidad propias del
hipertexto.
Virtual Laboratories in Probaility and Statics. Este proyecto provee interactividad, de
los recursos basados en web para estudiantes y profesores de probabilidad y estadística.
Este trabajo es desarrollado por Kyle siegrist, del Department of Mathematical Sciences
University of Alabama in Huntsville.
Modelación Computacional. Proyecto que tiene como finalidad apoyar el desarrollo de la
investigación a través de la identificación, traducción e implementación de los modelos
computacionales. Desarrollado por el departamento de visualización de la UNAM.
Aula Net. Aula virtual para la formación universitaria, proyecto desarrollado por la
Universidad de Oviedo.
Aplicación del Método de Poisson para el Cálculo de las Burbujas en los Autómatas
Celulares, con la finalidad de conocer si el proceso es eficiente o no. Desarrollado por
Sergio A. García Santana Escuela Nacional de estudios Profesionales UNAM, apoyado por
el Dr. Harold McIntosh, profesor investigador de la BUAP.
LIP
3
Benemérita Universidad Autónoma de Puebla
Igualmente se hizo una revisión a los conceptos matemáticos de las distribuciones
tanto discretas, como continuas, así como también a los conceptos matemáticos acerca del
tema de combinaciones y permutaciones, necesarios para desarrollar este sistema.
También se decidió desarrollar un sistema computacional en el cual algunas de las
principales características es ofrecer un mejor programa en cuanto a contenido, una mejor
calidad, que sea de gran utilidad para el interesado en aprender Probabilidad, y que sea más
amigable en la forma de acceder y manejar el sistema.
Con respecto al concepto computacional para desarrollar el software, se eligió
dentro de los lenguajes de programación existentes: Visual Basic 6.
LIP
4
Benemérita Universidad Autónoma de Puebla
CAPITULO 2
LABORATORIOS INTERACTIVOS Y
VIRTUALES
2.1
Concepto de Laboratorio, Interactividad y Virtual.
Laboratorio, es un lugar dispuesto y equipado con todo lo necesario
para la
investigación, con el fin de realizar experimentos o análisis.
Uno de los conceptos más escuchados en los últimos años es el de Interactividad en
los programas informáticos, la cual se puede definir como la participación y control que
puede llegar a tener el usuario sobre el programa. Su principal característica de estos
programas es que no llevan una secuencia lineal, gracias al hipertexto o hipervínculos.
Ejemplos de Interactividad
Muchas de las aplicaciones en la actualidad tienen un gran porcentaje de lo que
conocemos como interactividad. Una de las principales aplicaciones en el que incluyen este
término es en los manuales interactivos, programas educativos, en páginas web , en juegos
de computadoras, enciclopedias y en aplicaciones de investigación. Todos estos sistemas
tienen la capacidad de hacer participar al usuario durante la ejecución del mismo.
El concepto de virtual se refiere a que tiene existencia aparente y no real de
producir un efecto dado o requerido.
LIP
5
Benemérita Universidad Autónoma de Puebla
Ejemplos en los que se aplica el termino Virtual
El término virtual, hoy en día es muy mencionado en lo que hoy se conoce como Realidad
Virtual, la cual la podemos definir como una manera mediante la cual los humanos
visualizan, manipulan e interactúan con computadoras y datos que a veces pueden llegar a
ser demasiado complejos.
Algunas de las aplicaciones de la realidad virtual se dan en la música, química, ciencias
biológicas, matemáticas, astronomía, arte, juegos de computadora, medicina, etc.
Definición de Sistema
Colección de variables que interactúan entre sí dentro de ciertos límites para lograr
un objetivo.
Sistema Computacional:
Un sistema computacional es un sistema complejo que puede llegar a estar
constituido por muchos
componentes. Los principales componentes de un sistema
computacional son: hardware, software, base de datos, y su organización física en función
de los usuarios. El análisis empieza con las necesidades de información y de datos, después
de esto se examinan las opciones de hardware y software que cumplan con las exigencias
del modelado del procesamiento de datos y con la presentación de información.
2.2
Simulación
Uno de los términos que se mencionan en este trabajo de tesis es el de simulación
el cual lo definiremos como: “El conjunto de métodos y aplicaciones para imitar el
comportamiento de un sistema”
LIP
6
Benemérita Universidad Autónoma de Puebla
¿Cuál es el objetivo de la simulación computacional?
Llevar a cabo la experimentación de problemas reales, mediante el uso de un
sistema computacional, el cual nos permitirá entender el comportamiento del problema en
estudio.
2.3
Modelo
Representación de los objetos del sistema, refleja de manera sencilla las actividades
en las cuales esos objetivos se encuentran involucrados.
Tipos de Modelos Matemáticos
Modelos Causales y No Causales: El estado de un sistema causal depende sólo de las
condiciones presentes y pasadas, pero no de las futuras.
Modelos Estáticos y Dinámicos: Un sistema estático depende sólo de las condiciones
presentes, y no de las pasadas. El estado de un sistema dinámico depende de lo que haya
sucedido en el pasado.
Modelos Estocásticos y Determinísticos: Un modelo que incluya variables aleatorias es
un modelo estocástico, mientras que modelos exentos de aleatoriedad se denominan
modelos determinísticos.
Modelos de Parámetros Concentrados y Distribuidos:
Modelos Lineales y No Lineales: La linealidad es una propiedad que pueden tener o no las
funciones; realmente se trata de dos propiedades agrupadas bajo un mismo nombre.
LIP
7
Benemérita Universidad Autónoma de Puebla
Modelos Variantes e Invariantes en el Tiempo: Un modelo se dice invariante en el
tiempo cuando las propiedades del sistema modelado se consideran constantes en el tiempo.
Modelos Continuos y Discretos
2.4
¿ Que es un Laboratorio Interactivo computacional ?
De acuerdo con todo lo visto durante este capitulo, puedo definir a un Laboratorio
Interactivo Computacional, como el conjunto de herramientas de tipo computacional, tales
como la computadora, impresoras, papel, apuntes electrónicos disponibles para investigar,
programas computacionales, y cualquier otro dispositivo de cómputo, que nos permitan
experimentar, simular y comprender de una forma mucho más eficaz y directa problemas
que no son tan simples de comprender y resolver.
LIP
8
Benemérita Universidad Autónoma de Puebla
Ejemplos de algunos Laboratorios Interactivos Computacionales.
Entre los mas destacados tenemos los siguientes:
LabVis Laboratorio de Visualización el cual cuenta con Estaciones de Trabajo gráficas
para poder transformar esas grandes cantidades de datos en imágenes2.
Manual Interactivo: Manual computacional interactivo que modela
algunas
distribuciones de probabilidad y estadística, desarrollado por Juan Martínez de Lejarza e
Ignacio Martínez de Lejarza. Año de Publicación 22-Mayo-2001.
2.5
Conclusiones
Se decidió, desarrollar un Laboratorio Interactivo de Probabilidad, en vez de un
Laboratorio Virtual, porque muchas de las veces el aspecto virtual solamente nos permite
estar observando y no poder estar interactuando directamente con el programa. Además
como el objetivo principal es el de que el sistema sirva de apoyo para un primer curso de
Probabilidad, se implementó de tal forma que el usuario tenga la oportunidad de ir
modelando problemas y con el modelo proponer valores y experimentar tales
comportamientos de las diferentes distribuciones de Probabilidad, tales como:
Distribuciones Discretas ( Binomial , Binomial Negativa, Geométrica, Hipergeométrica,
Poisson ); Distribuciones Continuas (Uniforme, Normal, Exponencial). También como
complemento a estos temas, este programa tiene una sección dedicada a la simulación de
algunos de los problemas típicos en el estudio de la probabilidad, con el propósito de que el
estudiante experimente de modo interactivo; y como cualquier laboratorio, este programa
cuenta con una ayuda breve de la teoría referente a los temas ya mencionados en este
sistema.
2
Ladirección de este sitio web es http://www.labvis.unam.mx,aquí se ofrece un Laboratorio de visualización,
LabVis, en sus inicios estuvo muy enfocado a gráficos por computadora, para lograr visualizaciones
fenomenológicas, o representaciones directas de los fenómenos.
LIP
9
Benemérita Universidad Autónoma de Puebla
CAPITULO 3
ANÁLISIS Y DISEÑO DEL SISTEMA LIP
La implementación de todo sistema implica más que el simplemente crear una
aplicación la cual cumpla con ciertas necesidades; si no que esto debe iniciarse primero con
un análisis previo de todo lo que puede estar implícito en la creación del mismo (las
interfaces de usuario, los usuarios finales, la información, etc.), para que a partir de ello se
tome lo que mejor se adapte al sistema y a las necesidades presentes y futuras del mismo y
en base a esto desarrollar el sistema.
Por lo general los sistemas computacionales se desarrollan con diferentes
propósitos, los cuales dependen de las necesidades de la persona interesada en obtener este
software.
El análisis y diseño de sistemas sirve para analizar, diseñar y fomentar mejoras en
la operación de las organizaciones, lo cual pueda ser realizado mediante el uso de sistemas
de información sistematizados.
3.1
Ciclo de vida de Un Sistema
La figura 3.1 ilustra el paradigma del ciclo de vida clásico para el desarrollo de
software. Aunque cada fase se presenta de manera discreta, nunca se lleva a cabo como un
elemento independiente. En lugar de ello, se realizan al mismo tiempo diversas actividades.
Por ello es de mayor utilidad suponer que el ciclo de desarrollo de un sistema transcurre en
fases y no como elementos separados. A continuación se dará una breve definición de lo
que refiere cada fase.
LIP
10
Benemérita Universidad Autónoma de Puebla
Figura 3.1
Ciclo de Vida de un Sistema
3.1.1 Análisis del Sistema
El sistema LIP es un software que tiene como objetivo particular ofrecer un
programa computacional de tipo interactivo
con el cual se contribuye a una mejor
enseñanza y aprendizaje de los usuarios, principalmente estudiantes que estén interesados
en aprender un primer curso de probabilidad, pues en él, podrán estudiar y observar el
comportamiento de algunas distribuciones de probabilidad discretas y continuas. Así como
también se podrán experimentar con algunas simulaciones clásicas de problemas de
juegos de azar vistas en un primer curso de probabilidad, con el fin de poder tener un
LIP
11
Benemérita Universidad Autónoma de Puebla
mejor panorama acerca de estos juegos, ya que muchas veces no quedan muy claros para
los estudiantes con conceptos matemáticos vistos en clase.
3.1.2 Requisitos del Sistema
En lo que respecta a los requisitos del sistema LIP, se tomaron en cuenta tres aspectos
principales que se deben desarrollar:
1. Procedimiento
2. Análisis de los medios Actuales
3. Determinación de los Requerimientos.
1. Procedimiento: Primeramente se realizó una investigación y
recopilación de
información en Internet, bibliotecas y escuelas acerca del software que existe
actualmente y cuales son sus características principales.
2. Análisis de los medios Actuales: Podemos decir que los medios actuales que
existen
tales como libros, buscadores, enciclopedias, bibliotecas electrónicas,
software
e Internet nos sirven de mucho de apoyo en la educación, pero sin
embargo un problema que presentan estos medios es que no llegan a cubrir en su
totalidad todas nuestras necesidades para un buen aprendizaje de esta área, otro
problema
muy importante de los medios mencionados es el alto costo para
comprarlos o para tener acceso a ellos, también muchas veces se encuentran en otro
idioma diferente al español.
3. Determinación de los Requerimientos
Uno de las principales características de LIP es la forma en la que se van a capturar
los datos.
LIP
12
Benemérita Universidad Autónoma de Puebla
Requerimientos de captura. Son los datos con los que el sistema se alimentará
para poder realizar determinadas funciones, las directrices que se centran en la
entrada de los datos de este sistema son:
¾El mantener la consistencia entre la información visualizada y los datos de
entrada proporcionados por el usuario.
¾Permitir al usuario controlar el flujo de interacción.
¾Proporcionar ayuda en todas las acciones de entrada de datos.
Requerimientos de salida. Es la información que el usuario visualizará, las
directrices que se centran en la salida de datos de este sistema son:
¾Confiable. Que la información sea lo mas verídica posible.
¾Precisa. Que no genere confusión o dudas en el usuario.
¾Efectiva. Que la información sea la solución a su problema, y no abrumar al
usuario con datos sin importancia.
¾Completa. Que el usuario no requiera de usar otro software, para el mismo
fin.
3.1.3 Diseño del Sistema
Uno de los aspectos más importantes en cualquier sistema es el diseño de la interfaz,
el diseño tiene tanto que ver con el estudio de la gente como con aspectos de la tecnología.
¿Quién es el usuario? ¿Cómo aprende el usuario a interactuar con un sistema nuevo? ¿Qué
espera el usuario del sistema?.
El diseño de la interfaz no se refiere únicamente a los aspectos de programación, si
no que una de las principales exigencias que se pide al diseñar una interfaz es que esta
LIP
13
Benemérita Universidad Autónoma de Puebla
tenga la capacidad de adaptarse a las necesidades de distintos usuarios y no el usuario a la
interfaz. Es decir, una buena interfaz debe permitir que el usuario sea más productivo en su
trabajo.
Con respecto al aspecto del diseño del sistema LIP, funciona a base de módulos,
los cuales son: modulo de combinatoria, modulo de permutación, modulo de distribuciones
discretas, modulo de distribuciones continuas y un modulo de simulación seleccionados en
un menú principal con una interfaz interactiva en la cual se puede señalar y hacer clic
sobre un tema especifico que se quiera explorar o analizar, cada uno de estos módulos
cuenta con su sección de datos de entrada que serán a su vez proporcionados por el
usuario, cuenta con una ayuda de teoría
acerca del tema que se este analizando, al igual
como datos de salida de este programa tenemos los siguientes: nos proporciona una lista
numérica de las probabilidades requeridas por el usuario, nos proporciona la media y la
varianza de cada una de las distribuciones tanto discretas como continuas, así como
también tendremos la oportunidad de poder experimentar su comportamiento de las mismas
gracias a que este sistema nos grafica cada una de las distribuciones mencionadas
anteriormente, todas las interfaces de los módulos mencionados anteriormente cuenta con
un botón para regresar al menú anterior si así lo desea el usuario, en las interfaces de todos
los menús cuenta con un botón para salir por completo del programa en el momento en el
que lo desee el usuario, por último una parte muy importante es el modulo de simulación el
cual nos ayudara a comprender algunos conceptos y ejemplos clásicos de un primer curso
de probabilidad como son: (lanzamiento de dados, lanzamiento de monedas, problema del
cumpleaños, juego de cartas, caminatas aleatorias etc.).
3.1.4 Codificación del Sistema
Para el caso particular del sistema LIP se optó por utilizar el Lenguaje de
programación Visual Basic 6 empresarial, ya que las características de una programación
LIP
14
Benemérita Universidad Autónoma de Puebla
modular y multimedia con las que cuenta lo hacen ideal para el desarrollo del sistema
encomendado. Al igual se utilizo un software de diseño llamado Photoshop 6 para crear
todas las interfaces del sistema (pantallas, menús, botones, imágenes etc).
3.1.5 Pruebas del Sistema
Las pruebas se realizaron con dos tipos de datos diferentes datos ficticios, datos
erróneos, datos reales.
¾Datos Ficticios. Aquellos datos que se inventaron en su momento para
probar el sistema.
¾Datos Erróneos. Aquellos datos que se introducen de manera intencional
para probar el sistema y ver si los detecta.
¾Datos Reales. Aquellos con los que el sistema va a trabajar normalmente.
3.1.6 Mantenimiento del Sistema
El software, indudablemente sufrirá cambios después de que se entregue al cliente.
Los cambios no necesariamente deberán ser debido a que se hayan encontrado errores, sino
porque siempre es viable mejorar el sistema.
Una de las mejoras al sistema puede ser que se incluyan otras distribuciones de
probabilidad de una variable, tales como la distribución F, la distribución Ji Cuadrada,
Distribución Beta, Distribución Gamma. También podemos incluir y estudiar todo lo
referente a la Teoría de Bayes, así como también distribuciones de probabilidad que
LIP
15
Benemérita Universidad Autónoma de Puebla
manejen el caso conjunto al menos para dos variables (que se puedan resolver problemas
que traten de obtener distribuciones conjuntas y distribuciones marginales).
Por otra parte, con respecto al tema de simulación, incluir y trabajar con otros ejemplos de
simulación, por ejemplo:
Problema de Urnas: Sin duda este es uno de los mejores problemas que se pueden
implementar en lo que respecta al tema de simulación. Ya sea con sus diferentes variantes
del modelo de urnas, como lo es obtener elementos de la urna con reemplazo o sin
reemplazo ( tomar un elemento de la urna, y depositarlo nuevamente), con elementos
distinguibles o no distinguibles ( que se puedan numerar los elementos o que tengan ciertas
características).
Dígitos Aleatorios Repetidos: En este problema, se considera el siguiente experimento.
Tomar el directorio telefónico, abrirlo en cualquier pagina. Escoger 100 números
telefónicos de dicha pagina y cuente los números cuyos últimos cuatro dígitos sean todos
distintos.
Problema de Apareamientos: En este problema se supone que de un numero M de
personas, una de ellas es usted, cada una de las cuales ha puesto su sombrero en una caja.
Mas tarde, cada persona escoge al azar un sombrero de esa caja. Y se plantea uno la
siguiente pregunta, ¿ Cuál es la probabilidad de que usted escoja su propio sombrero?.
Juego del Disparejo: Este problema es muy interesante y consiste en lo siguiente: Sean N
personas que juegan al disparejo con monedas legales. ¿ Cuál es la probabilidad, para n =
1,2,...., de que se necesiten n jugadas para concluir el juego ( o sea, que la n-ésima jugada
es la primera en la que uno de los jugadores tendrá un resultado distinto al de todos los
demás jugadores)?.
LIP
16
Benemérita Universidad Autónoma de Puebla
Lanzamiento de un Dado, una Moneda cargada: Al igual que en las simulaciones que se
trabajaron en este trabajo de tesis, seria muy bueno pero ahora incluir las mismas
simulaciones, pero ahora con la moneda o el dado cargado, es decir que tengan mas
probabilidad de salir un resultado( cara o cruz, o cualquier cara del dado) que otro.
Juegos de apuestas: Incluir juego de apuestas, por ejemplo, desarrollar el juego del
tragamonedas, juego de barajas( juego del 21, poker, carta mayor, etc.). Seria un punto muy
bueno para una mejora de este sistema.
LIP
17
Benemérita Universidad Autónoma de Puebla
CAPITULO 4
HERRAMIENTAS PARA LA
IMPLEMENTACION
VISUAL BASIC 6
Las interfaces graficas de usuario o GUI (Graphical User Interface) han
revolucionado la industria de las microcomputadoras. Han demostrado que el proverbio
”vale más una imagen que mil palabras” no ha perdido su validez.
Antes de la existencia de Visual Basic, el desarrollo de aplicaciones era mucho mas
complicado. Los programadores tenían que preocuparse mas de la posición del mouse, de la
elección del usuario dentro del menú y si estaba realizando un clic en un punto
determinado. Ahora se pueden desarrollar aplicaciones en poco tiempo a comparación del
que se necesitaba anteriormente. Los errores de programación no se generan
frecuentemente, y si lo hacen son mucho más sencillos de detectar y resolver.
4.1
Aspectos importantes sobre las versiones de Visual Basic
Visual Basic 1.0 . Cuando se presento Visual Basic 1.0, Bill Gates, presidente y CEO de
Microsoft lo describió como algo maravilloso. Stewart Alsop declaró en el New York
Times que visual Basic era “entorno de programación perfecto para los noventa”.
Visual Basic 2.0. Esta nueva versión era mucho más rápida, más potente e incluso más
sencilla de utilizar que Visual Basic 1.0.
Visual Basic 3.0. Incluyó una forma más sencilla de tener acceso a las bases de datos más
potentes que existían en ese tiempo.
LIP
18
Benemérita Universidad Autónoma de Puebla
Visual Basic 4.0. Con esta nueva versión se incorporó soporte para el desarrollo en 32 bits
e inició el proceso de transformar Visual Basic en un lenguaje de programación orientada a
objetos.
Visual Basic 5.0. En esta versión se incorporó la posibilidad de crear auténticos programas
ejecutables e incluso la posibilidad de poder crear sus propios controles .
Visual Basic 6.0. Esta última versión ha añadido algunas de las características deseadas de
otros lenguajes, y nuevas características para Internet y bases de datos, además de las
múltiples mejoras en sus asistentes ( asistente para instalar, objetos de datos, formularios de
datos, aplicaciones, barra de herramientas). Por todas estas características este es el más
simple y potente de todos los Visual Basic desarrollados hasta este momento.
4.2
Como desarrollar una aplicación Visual Basic.
Lo primero que tenemos que hacer es planear lo que ve el usuario; en otras palabras,
diseñar las interfaces. ¿Qué menús se desean? ¿Cuántas ventanas debe haber? ¿Dónde se
colocaran los botones de ordenes? ¿ tendrá la aplicación sitios para introducir texto o
información?. En Visual Basic los objetos que sitúa el diseñador de un programa en una
ventana se denominan controles.
Lo que hace que Visual Basic sea diferente de otras herramientas de programación
es la facilidad con la que se puede diseñar una pantalla. Se puede diseñar literalmente la
interfaz de usuario, parecido a la forma de utilizar un programa de dibujo. Además, una vez
que se ha terminado de hacer la interfaz, los botones de ordenes, cajas de texto y otros
controles que se han colocado en una ventana en blanco reconocerán automáticamente
acciones del usuario, tales como el movimiento del mouse y los clic de los botones.
LIP
19
Benemérita Universidad Autónoma de Puebla
Tan sólo después de diseñar la interfaz de usuario es cuando se empieza a hacer algo
que se parezca a programar. Los objetos en visual Basic reconocerán eventos como los
clics del mouse; la forma en que los objetos responderán dependerá del código que se
escriba. Se necesitará escribir código para que los controles respondan a los eventos.
Los programas en los lenguajes de programación convencionales se ejecutan de
arriba-abajo, en los antiguos lenguajes de programación la ejecución comienza en la
primera línea y se desplaza con el flujo del problema a las distintas partes según se necesite.
Un programa Visual Basic funciona de un modo totalmente diferente ya que es un conjunto
de diferentes partes de código que solamente responden a los eventos que les ha indicado
que reconozcan. Ahora, en lugar de diseñar un programa que haga lo que el programador
piense que debe hacer, el usuario tiene el control ya que solamente se ejecutarán los eventos
asociados a la opción seleccionada por el usuario.
La mayor parte del código de programación Visual Basic indica al programa el
modo de responder a determinados eventos como el clic del mouse, en lo que en Visual
Basic se denominan procedimientos de evento. Esencialmente, cualquier cosa ejecutable en
visual Basic es, o bien un procedimiento de evento, o es utilizado por un procedimiento de
evento para ayudarlo a realizar su trabajo. De hecho un evento debe ocurrir para que Visual
Basic haga algo.
4.3
El Entorno de Visual Basic.
En este punto lo que se pretende es dar una idea general del entorno de la edición
estándar de Visual Basic.
LIP
20
Benemérita Universidad Autónoma de Puebla
Cuando se inicia Visual Basic se verá una pantalla de Copyright indicando la
persona para la cual es válida la licencia de la copia de Visual Basic. Después de un breve
retraso, automáticamente se muestra el entorno Visual Basic.( Ver Fig. 4.1)
Figura 4.1 Pantalla Principal de Visual Basic.
4.3.1
Barra de Títulos (Ver Fig. 4.2)
Es la barra horizontal situada en la parte superior de la pantalla, esta contiene el
nombre de la aplicación. En Visual Basic la barra de títulos se inicializa diciendo:
Microsoft Visual Basic (design). Cuando se ejecuta un programa dentro del entorno Visual
Basic, la barra de títulos cambia a. Microsoft Visual Basic (run). Y cuando se esté
depurando o haya interrumpido el programa temporalmente, la barra de títulos cambia a:
Microsoft Visual Basic (break).
LIP
21
Benemérita Universidad Autónoma de Puebla
Figura 4.2 Ventana principal de Visual Basic.
4.3.2 Barra de Menús. (ver Fig. 4.2)
Es la barra que proporciona las herramientas necesarias para desarrollar, probar y
archivar la aplicación.
Menú File (Archivo) contiene las órdenes para trabajar con archivos que incluye la
aplicación.
Menú Edit (Edición) contiene la mayoría de herramientas de edición que ayudan a escribir
el código, incluyendo las herramientas de edición de búsqueda y sustitución.
Menú View (Ver) proporciona acceso rápido a todas las partes del programa.
Menú Run (Ejecutar) permite verificar la aplicación según se va desarrollando.
Menú Debug. (Depurar) da acceso a las herramientas utilizadas para depurar el programa.
Menú options (opciones) permite controlar el entorno de Visual Basic.
Menú Windows (Ventana) proporciona acceso rápido a las diferentes ventanas que
configura el entorno visual Basic.
Menú Help (Ayuda) se utiliza para acceder al detallado sistema de ayuda en línea incluido
en Visual Basic.
LIP
22
Benemérita Universidad Autónoma de Puebla
4.3.3
Barra de herramientas.
Es la barra que cuenta con botones que permite activar las tareas más comunes sin
necesidad de utilizar los elementos de la barra de menús, cada elemento tiene una
combinación de teclas para la misma tarea.
New Form (Nuevo formulario). Este botón permite añadir un nuevo formulario a un
proyecto.
New modulo (Nuevo Modulo). Este botón permite abrir un nuevo modulo para código
especifico de información.
Open Project (Abrir Proyecto). Este botón permite abrir un proyecto existente.
Save Project (Archivar Proyecto). Permite grabar un proyecto.
Menú Design ( Diseño de Menú). Se utiliza para diseñar menús.
Activate Properties Windows (Activa Ventana de propiedades). Se utiliza para
modificar las propiedades de un objeto.
Run (Ejecutar). Este botón ejecuta las aplicaciones ya diseñadas.
Break (Pausa). Sirve para detener temporalmente un programa en ejecución.
End (Fin). Finaliza un programa en ejecución.
Breakpoint ( punto de pausa). Una herramienta de depuración. Esto coloca un punto
de detención temporal en un lugar especifico del programa.
Instant Wach ( observación instantánea). Una herramienta de depuración. Muestra
una lista de las llamadas a procedimientos actuales.
Calls Command (orden de llamada). Una herramienta de depuración. Muestra una
lista de las llamadas a procedimientos actuales.
Single step (paso a paso). Una herramienta de depuración. Sirve para desplazarse por
el programa en pasos de una línea.
LIP
23
Benemérita Universidad Autónoma de Puebla
Procedure Step (paso de procedimiento). Una herramienta de depuración. Sirve para
desplazarse por el programa paso a paso, pero considera a los procedimientos como un
solo paso.
4.3.4 Ventana de Formulario (ver Fig. 4.3)
Es la zona donde se desarrolla el diseño de un nuevo formulario o ventana (Form),
la cual se visualiza cuando la aplicación este funcionando. A medida que se diseña una
aplicación, el formulario sirve como lienzo en el que se diseñan las diversas partes de la
aplicación, siguiendo la metodología que se maneja hoy en día en los lenguajes de cuarta
generación “ lo que ves es lo que obtienes”.
Figura. 4.3 Ventana de Formulario
4.3.5 Ventana del Proyecto ( ver Fig. 4.4)
Cada proyecto puede tener varios formularios, la ventana de proyecto contiene un
listado de todos los formularios personalizables (archivos .FRM), de código general
(módulos, archivos .BAS) que contiene una aplicación y los programas de soporte de las
LIP
24
Benemérita Universidad Autónoma de Puebla
herramientas (archivos VBX). Cuando se crea un formulario se crea una ventana de edición
de código la cual se explicara más adelante.
Figura 4.4 Ventana del Proyecto
4.3.6 Ventana de propiedades ( Ver Fig. 4.5)
Son mecanismos formales que sirven para describir los atributos de un objeto. Todo
objeto de Visual Basic tiene propiedades especificas cuyos ajustes, controlan la apariencia
y comportamiento del objeto dentro de la aplicación. Por ejemplo el color, el tamaño, la
posición, el tipo de letra, así también algunas propiedades están restringidas a ciertos
valores, como los de visualizar, activo, etc.
LIP
25
Benemérita Universidad Autónoma de Puebla
Figura 4.5 Ventana de Propiedades
4.3.7 Caja de Herramientas ( Ver Fig. 4.6)
Aquí se encuentran los objetos o controles , (cuadros de diseño, botones de
comando, barras de desplazamiento, casillas de verificación, cajas de texto, etiquetas,
marcos, círculos, etc). Estos están representados por botones. La utilización de dichos
objetos resulta muy variada dependiendo si se está diseñando la aplicación o se está
ejecutando.
Figura 4.6 Caja de Herramientas.
LIP
26
Benemérita Universidad Autónoma de Puebla
Entre las herramientas de mayor uso están
Puntero. El apuntador es usado para manipular controles existentes. Con el apuntador
se puede seleccionar, mover y cambiar el tamaño de los controles.
Cajas de Imágenes. Las cajas de imágenes pueden contener iconos. Este control
también es un control grafico que puede desplegar una imagen.
Etiquetas. Son mensajes de texto desplegados que no pueden ser cambiados por el
usuario. El texto puede ser cambiado durante la ejecución de la aplicación en
respuesta a un evento.
Caja de Texto. Una caja de texto es el área en la cual el texto es dado por el usuario o
desplegado por la aplicación. Puede contener una o más líneas de texto y pueden ser
ubicadas con barras de desplazamiento (Scrooll bars).
Viñetas. Los marcos proporcionan una forma visual de resaltar y /o separar las partes
de un formulario simplemente dibujando una caja alrededor de controles específicos,
puede tener un encabezado.
Botón de Comando. Un botón de comando transmite una acción cuando el usuario lo
elige.
Caja de Verificación. Una caja de verificación es usada en una opción que puede ser
prendida o apagada. Cuando el usuario selecciona la opción, una ‘X’ es desplegada
en el botón de verificación.
Botones de Opción. A diferencia de las cajas de verificación, los botones de opción
trabajan en grupos. Cuando el usuario selecciona un botón, todos los demás se
desactivan. Lo que significa que los botones de opción se utilizan para selecciones
exclusivas.
LIP
27
Benemérita Universidad Autónoma de Puebla
Cajas Combinadas. Las cajas combinadas mezclan cajas de listado con cajas de
texto. Se utiliza este control cuando se desea dar a los usuarios la opción de
introducir sus propias elecciones además de las que proporciona el listado. Este
control también permite mostrar un tipo de listado especializado denominado caja de
listado desplegable. Combina caja de texto con caja de listado.
Cajas de listados. Se utilizan cuando se desea proporcionar a los usuarios una lista de
elementos de los que debe hacer una elección.
Barras de Desplazamientos Horizontales y Verticales. Los controles para las
barras de desplazamiento verticales y horizontales ofrecen otra forma de obtener
información del usuario.
Temporizadores. A diferencia de todos los controles de la edición estándar de Visual
Basic, los temporizadores siempre son invisibles para el usuario. Sólo se pueden ver
durante la fase de diseño del proyecto.
Caja de Drives. La caja drives encuentra y se cambia al drive o drives disponibles en
el momento de la ejecución. Despliega la lista de drives disponibles.
Caja de Directorios. La caja de directorios despliega los directorios y rutas del drive
actual en el momento de la ejecución. Se puede usar este control para desplegar una
lista jerárquica de directorios desde raíz hasta la ruta seleccionada.
Caja de Archivos. La caja de archivos despliega todos los archivos dados en un
directorio. Se puede desplegar una lista de archivos basados en atributos.
Formas. El control de formas despliega círculos, cuadrados, óvalos, rectángulos,
rectángulos o cuadrados redondeados.
Línea. El control de líneas despliega líneas horizontales, verticales o diagonales se
puede usar el control de líneas para dibujar formas.
LIP
28
Benemérita Universidad Autónoma de Puebla
Acceso de datos. El control de datos permite crear aplicaciones de despliegue, edición
y actualización de información de algunos tipos de bases de datos existentes. Se
pueden usar otros controles de reconocimiento de datos con el control de datos para
desplegar de información de esa base de datos. Visual Basic implementa acceso de
datos incorporando las mismas bases que ocupa y da de alta Microsoft Access.
Cliente OLE. El control OLE permite desplegar datos de otras aplicaciones bajo
Windows en aplicaciones Visual Basic, en el momento de la ejecución , se pueden
editar los datos sin la aplicación en la que fue creado. Cuando se termina de editar,
se cierra la aplicación, y los datos actualizados son desplegados en el formulario
mediante OLE.
.
Caja Común de Dialogo. La caja común de diálogo permite desplegar las cajas de
diálogo mas comúnmente usadas: Open, Save, Save As, Print, Color y Font, cuando se
dibuja una caja de dialogo común, automáticamente se rediseña el tamaño.
4.3.8 Ventana de Edición de Código. (Ver. Figura 4.7)
Aquí es donde se introduce el código que indica a Visual Basic cómo responder al
evento. En la parte superior de la ventana se encuentran dos cuadros marcados con Object
(objeto) y Proc (Procedimiento). El primero contiene una lista de objetos existentes en el
formulario y el segundo contiene una lista de procedimientos de eventos que puede
reconocer el objeto Visual Basic que se encuentra en el cuadro Object.
LIP
29
Benemérita Universidad Autónoma de Puebla
figura 4.7 Ventana de Edición de Código
4.4
Eventos Principales de Visual Basic 6.
Entre los principales eventos que le pueden ocurrir a diferentes objetos están:
Active: Ocurre cuando se seleccionan un objeto como el actual.
Change: Ocurre cuando se modifica algún valor dentro del objeto.
Clic: Ocurre cuando se realiza clic o Enter sobre el objeto.
DblClick: Ocurre cuando se realiza doble clic sobre el objeto.
GetFocus: Ocurre cuando el control recibe el “Foco”.
KeyPress: Ocurre cuando una tecla es presionada.
Load: Ocurre cuando una forma es cargada en memoria.
LostFocus: Ocurre cuando el control deja de estar en “Foco”.
MouseDown: Ocurre cuando el botón del mouse ha sido presionado.
LIP
30
Benemérita Universidad Autónoma de Puebla
MouseMove: Ocurre cuando es movido el mouse sobre el control.
MouseUp: Ocurre cuando el botón del mouse ha sido soltado.
Timer: Ocurre cuando el control “Timer” define que ha transcurrido el tiempo establecid o
en la propiedad “Interval”.
Unload: Ocurre cuando una ventana es descargada.
Nota: Estos eventos se generan o se pueden producir en tiempo de ejecución de la
aplicación y no en el tiempo de diseño.
4.5
Definición de Algunos Conceptos Básicos, con los que trabaja Visual Basic 6.
Procedimiento
Un procedimiento sub es un segmento de código independiente del resto, que una vez
llamado por el programa, ejecuta un número determinado de instrucciones, sin necesidad de
devolver ningún valor al mismo, mientras que una función siempre tendrá un valor de
retorno.
Función
Generalmente es utilizada en una expresión porque tiene un valor de retorno. El valor de
retorno ocupa el lugar de la llamada a la función donde aparece. Por ejemplo, si en una
expresión aparece sin(x) se calcula el seno de la variable x y el resultado es el valor de
retorno que sustituye a sin(x) en la expresión en la que aparecía.
Arreglos
Entre los arreglos de variables cabe distinguir dos tipos fundamentales, dependiendo de que
número de elementos sea constante o pueda variar durante la ejecución del programa.
LIP
31
Benemérita Universidad Autónoma de Puebla
Arreglos Estáticos: cuya dimensión es siempre la misma.
Arreglos Dinámicos: cuya dimensión se puede modificar durante la ejecución del
programa.
La declaración de un array a nivel del módulo o del formulario se hace en la sección de
declaraciones del módulo o del formulario utilizando la sentencia Dim o Private, por
ejemplo: Dim vector (19) as Double.
Arreglos de Controles
Un arreglo de controles esta formado por controles del mismo tipo que comparten el
nombre y los procedimientos o funciones para gestionar los eventos. Para identificar a cada
uno de los controles pertenecientes al arreglo se utiliza index o índice, que es una propiedad
mas de cada control. La utilidad principal de los arrays se presenta en aquellos casos en los
que el programa debe responder de forma semejante a un mismo evento sobre varios
controles del mismo tipo.
Matriz
Una colección ordenada de datos contenidos en una variable y a la que se hace referencia
mediante un único nombre de variable. Se puede hacer referencia a cada elemento de la
matriz mediante un subíndice numérico.
Formulario
En la terminología de Visual Basic 6.0 se llama formulario a una ventana. Un formulario
puede ser considerado como una especie de contenedor para los controles. Una aplicación
puede tener varios formularios, pero un único formulario puede ser suficiente para las
LIP
32
Benemérita Universidad Autónoma de Puebla
aplicaciones más sencillas. Los formularios deben también tener un nombre ,que puede
crearse siguiendo las mismas reglas que para los controles.
Eventos
Las acciones del usuario sobre el programa se llaman eventos. Son eventos típicos el clicar
sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo, el arrastrar
un icono, el pulsar una tecla, elegir una opción del menú o simplemente mover el ratón.
Métodos
Los métodos son funciones que también son llamadas desde el programa, pero a diferencia
de los procedimientos no son programadas por el usuario, sino que ya vienen ya pre –
programadas con el lenguaje.
Módulos Estándar (ficheros *.bas)
Contienen sólo código que, en general, puede ser utilizado por distintos formularios y/o
controles del proyecto e incluso por varios proyectos. Por ejemplo puede prepararse un
módulo estándar de funciones matemáticas que sea de utilidad general.
Módulos de Clase (ficheros *.cls)
Contienen clases definidas por el usuario. Las clases son como formularios o controles
complejos, sin interfase grafica de usuario.
LIP
33
Benemérita Universidad Autónoma de Puebla
CAPITULO 5
DESARROLLO DE LIP
Una vez que se tiene un análisis previo de toda la información, los recursos, las
necesidades, las interfaces de usuarios, etc. Es posible entonces integrar toda esa
información para que en base a esta obtener la codificación del sistema propuesto, que
consiste en un sistema por módulos, como se describió en el capitulo 1.
5.1
Aspectos Generales para las Formas.
Todas las pantallas se diseñaron de modo que resulten atractivas para el usuario, se
utilizaron colores ya que por lo general la percepción del color es otra forma de llamar la
atención de cualquier usuario; al igual se diseñaron los botones y etiquetaron
con
PhotoShop 6 con un color similar al del fondo de la aplicación en vez de usar los botones
estándar que proporciona Visual Basic, esto fue con el fin de pretender dar una idea más
visual de la función que dicho botón realiza y el usuario pueda identificar el tipo de
información que puede encontrar ahí.
En la mayoría de las pantallas que se presentan en este sistema se encuentran 2
objetos que son: dos botones (icono de teoría e icono de regreso), así como en las pantallas
de las distribuciones discretas cuenta con 5 objetos más, que son otros 5 botones para
calcular cualquiera de los 5 casos de probabilidad (mayor, menor, mayor o igual, menor o
igual, exactamente) que se requieran.
En cada botón que contiene cada pantalla del sistema, muestra pequeños mensajes
de texto al pasar el puntero del mouse sobre cada botón.
LIP
34
Benemérita Universidad Autónoma de Puebla
5.2
Consideraciones de Diseño.
A medida que uno se vaya moviendo por cada una de las pantallas propias del
sistema. Lo primero que hay que tomar en cuenta es describir el objetivo principal de las
pantallas y posteriormente los objetos utilizados a éstas. El código correspondiente a los
eventos, es descrito más adelante en un Apéndice A (Pseudocódigo de Procedimientos),
donde se da una idea general del procedimiento.
En algunas partes del pseudocódigo se hace mención de Objetos, Variables,
Procedimientos y Funciones Globales del Apéndice A. Y se hizo así porque las variables
son de tipo global; y los procedimientos y funciones son generales para los distintos
servicios. Noté que algunos procedimientos y funciones se mencionaron en la explicación
de el entorno de Visual Basic.
Ahora empezaremos a describir todas las pantallas de nuestro sistema.
LIP
35
Benemérita Universidad Autónoma de Puebla
5.3
Aplicaciones de LIP “Laboratorio Interactivo de Probabilidad”
Pantalla principal del Sistema (Ver. Fig. 5.1)
Nombre de la Pantalla: Presentación del Sistema
Descripción de la Interfaz: Esta es la primera pantalla que aparecerá al ejecutar el sistema.
Esta pantalla solamente nos muestra el nombre de la aplicación y un botón para entrar al
menú principal del sistema.
Figura 5.1 Presentación del Sistema
Objetos de la Interfaz.
Objeto: Fondo 1.
Nombre del Objeto: Pantalla principal.
Objeto: Botón de comando.
LIP
36
Benemérita Universidad Autónoma de Puebla
Eventos que ocurren: Form Load, Clic, MouseDown, Mouseup.
Pantalla del Menú Principal de LIP (Ver. Fig. 5.2)
Nombre de la Pantalla: Temas
Descripción de la Interfaz: Este es el menú principal de cada una de los temas que trata
este sistema. En esta pantalla se muestra el titulo Temas, y 6 objetos: que son 6 botones de
orden para acceder a cada tema deseado.
Figura 5.2 Menú Principal de la Aplicación
Objetos de la Interfaz.
Objeto: Fondo2
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: Botones de Comando.
LIP
37
Benemérita Universidad Autónoma de Puebla
Nombre: Ejecutar.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de Combinatoria (Ver. Fig. 5.3)
Nombre de la Forma: Combinatoria.
Descripción de la Interfaz: Esta pantalla es una herramienta que nos sirve como una
especie de calculadora, que nos sirve para hacer cálculos de combinatoria. Esta pantalla nos
muestra el titulo y 2 parámetros de entrada y uno de salida. Y un 2 botones de comando que
uno que hace los cálculos correspondientes, el segundo regresa al menú principal.
Figura. 5.3 Pantalla Combinaciones
Objetos de la Interfaz.
Objeto: Fondo3
Nombre del Objeto: Letrero
LIP
38
Benemérita Universidad Autónoma de Puebla
Función: Muestra Fondo y Letrero
Objeto: 3 Botones de Comando
Nombre: Ejecutar, Regresar, Teoría
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de Permutaciones (Ver. Fig. 5.4)
Nombre de la Pantalla: Permutaciones.
Descripción de la Interfaz: Esta pantalla es una herramienta que nos sirve como una
especie de calculadora, que nos sirve para hacer cálculos de Permutaciones. Esta pantalla
nos muestra un marco que contiene los diferentes tipo de permutaciones, los cuales se
pueden ir eligiendo conforme a unos botones de opción, el titulo y 2 parámetros uno de
entrada, el segundo que es el de salida. Y un 2 botones de comando que uno que hace los
cálculos correspondientes, el segundo regresa al menú principal.
Figura 5.4. Pantalla Permutaciones
LIP
39
Benemérita Universidad Autónoma de Puebla
Objetos de la Interfaz.
Objeto: Fondo4
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 3 Botones de Comando, y 5 Botones de Opción.
Nombre: Ejecutar, Regresar, y Teoría.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla del Menú Distribuciones Discretas (Ver. Fig. 5.5)
Nombre de la Pantalla: Distribuciones Discretas
Descripción de la Interfaz: Este es el menú que presenta las Diferentes distribuciones
discretas con las que puede trabajar, que son las siguientes: Distribución Binomial,
Distribución Binomial Negativa, Distribución Geométrica, Distribución Hipergeometrica,
Distribución de Poisson. Cuenta con 7 botones de orden, 5 son para acceder a cada una de
las distribuciones mencionadas y los otros son para regresar al menú principal y salir del
sistema.
LIP
40
Benemérita Universidad Autónoma de Puebla
Figura 5.5. Pantalla del Menú de las Distribuciones Discretas
Objetos de la Interfaz.
Objeto: Fondo5
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 7 Botones de Comando.
Nombre: Ejecutar y Regresar a menú principal.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla del Menú Distribuciones Continuas (Ver. Fig. 5.6)
Nombre de la Pantalla: Distribuciones Continuas
Descripción de la Interfaz: Este es el menú que presenta las Diferentes distribuciones
Continuas con las que puede trabajar, que son las siguientes: Distribución Uniforme.
LIP
41
Benemérita Universidad Autónoma de Puebla
Distribución Exponencial, Distribución Normal. Cuenta con 5 botones de orden, 3 son para
acceder a cada una de las distribuciones mencionadas y los otros son para regresar al menú
principal y salir del sistema.
Figura 5.6. Pantalla del Menú de las Distribuciones Continuas
Objetos de la Interfaz.
Objeto: Fondo 6
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 7 Botones de Comando.
Nombre: Ejecutar y Regresar a menú principal.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de Simulación (Ver. Fig. 5.7)
Nombre de la Pantalla: Simulaciones
LIP
42
Benemérita Universidad Autónoma de Puebla
Descripción de la Interfaz: Este es el menú que presenta las Diferentes Simulaciones as
con las que puede trabajar y analizar, que son las siguientes: Lanzamiento de un dado,
lanzamiento de una Moneda, Problema del Cumpleaños, Juego de Cartas, Problema de las
Caminatas Aleatorias. Cuenta con 7 botones de orden, 5 son para acceder a cada una de las
Simulaciones mencionadas y los otros son para regresar al menú principal y salir del
sistema.
Figura 5.7. Pantalla del Menú de las Simulaciones
Objetos de la Interfaz.
Objeto: Fondo 7
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
LIP
43
Benemérita Universidad Autónoma de Puebla
Objeto: 7 Botones de Comando son los siguientes: 5 para acceder a las diferentes
Simulaciones y 2 para salir y regresar al menú principal .
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de La Distribución Binomial (Ver. Fig. 5.8)
Nombre de la Pantalla: Distribución Binomial
Descripción de la Interfaz: Este es el menú que presenta la Distribución Binomial con la
que puede trabajar y analizar, en esta pantalla se pueden hacer los cálculos correspondientes
de cualquiera de los 5 casos de probabilidad que se requiera y que ya se han mencionado
anteriormente. Cuenta con 7 botones de orden, 5 son para calcular cualquier probabilidad
requerida, otros son para regresar al menú principal y teoría de la distribución.
Figura 5.8 Pantalla de la Distribución Binomial
LIP
44
Benemérita Universidad Autónoma de Puebla
Objetos de la Interfaz.
Objeto: Fondo 8
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 7 Botones de Comando
5 Cajas de texto, 3 para datos de entrada y 2 para datos de salida.
4 Botones de Opción, para seleccionar los 4 tipos de grafica (Barras, Barras 3D,
Áreas, de Polígono.)
2 Controles de etiqueta, para presentar los resultados de Media y varianza.
1 Control Grafico, para poder representar gráficamente los resultados obtenidos y
así poder analizar su comportamiento.
Eventos que ocurren. Clic, MouseDown, Mouseup,SetFocus, validate.
Nombre: Ejecutar y Regresar a menú principal.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de La Distribución Binomial Negativa (Ver. Fig. 5.9)
Nombre de la Pantalla: Distribución Binomial Negativa
Descripción de la Interfaz: Este es el menú que presenta la Distribución Binomial
Negativa con la que puede trabajar y analizar, en esta pantalla se pueden hacer los cálculos
correspondientes de cualquiera de los 5 casos de probabilidad como en la Distribución
Binomial que anteriormente se mostró. Como se puede apreciar en esta pantalla se muestra
el cuadro de dialogo de ayuda al hacer clic sobre el botón de orden Teoría, a su vez este
cuenta con un botón de orden para poder imprimir la teoría si así se desea.
LIP
45
Benemérita Universidad Autónoma de Puebla
Figura 5.9 Cuadro de Teoría de la Distribución Binomial Negativa
Objetos de la Interfaz.
Objeto: Fondo 9
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 7 Botones de Comando
5 Cajas de texto, 3 para datos de entrada y 2 para datos de salida.
4 Botones de Opción, para seleccionar los 4 tipos de grafica (Barras, Barras 3D,
Áreas, de Polígono.)
2 Controles de etiqueta, para presentar los resultados de Media y varianza.
1 Control Grafico, para poder representar gráficamente los resultados obtenidos y
así poder analizar su comportamiento.
Eventos que ocurren. Clic, MouseDown, Mouseup,SetFocus, validate.
LIP
46
Benemérita Universidad Autónoma de Puebla
Nombre: Ejecutar y Regresar a menú principal.
Eventos que ocurren. Clic, MouseDown, Mouseup.
NOTA: Las pantallas restantes de las demás distribuciones discretas mencionadas
anteriormente, tienen un diseño similar a la distribuciones Binomial y Binomial Negativa.
Pantalla de La Distribución Exponencial (Ver. Fig. 5.10)
Nombre de la Pantalla: Distribución Exponencial
Descripción de la Interfaz: Esta pantalla presenta la Distribución Exponencial con la que
puede trabajar y analizar, en esta pantalla se pueden hacer los cálculos correspondientes de
cualquiera de los 3 casos de probabilidad (mayor, menor, intervalo) como se realizó con las
distribuciones discretas.
Figura. 5.10 Pantalla de la Distribución Exponencial
LIP
47
Benemérita Universidad Autónoma de Puebla
Objetos de la Interfaz.
Objeto: Fondo 10
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 3 Botones de Comando
4 Cajas de texto, 3 para datos de entrada y 1 para datos de salida.
3 Botones de Opción, para seleccionar la probabilidad requerida (menor, mayor,
intervalo).
2 Controles de etiqueta, para presentar los resultados de Media y varianza.
1 Caja de Imagen, para poder representar los resultados obtenidos y así poder
analizar su comportamiento de la distribución exponencial.
Eventos que ocurren. Clic, MouseDown, Mouseup,SetFocus, validate.
Nombre: Ejecutar y Regresar a menú principal.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla de La Distribución Normal (Ver. Fig. 5.11)
Nombre de la Pantalla: Distribución Normal.
Descripción de la Interfaz: Esta pantalla presenta la Distribución Exponencial con la que
puede trabajar y analizar, en esta pantalla se pueden hacer los cálculos correspondientes de
cualquiera de los 3 casos de probabilidad (mayor, menor, intervalo), tanto para el caso de
datos no estandarizados, así como también para el caso de datos ya estandarizados. Cuenta
con 3 botones de comando, que son los siguientes: calcular datos, teoría y regresar.
LIP
48
Benemérita Universidad Autónoma de Puebla
Figura. 5.11 Pantalla de la Distribución Normal.
Objetos de la Interfaz.
Objeto: Fondo 11
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 7 Cajas de texto, 6 para datos de entrada y 1 para datos de salida.
2 Controles de Marco para tener agrupados los 2 distintos tipos de datos:
estandarizados y no estandarizados
6 Botones de Opción, para seleccionar la probabilidad requerida (menor, mayor,
intervalo) para datos estandarizados y no estandarizados.
2 Controles de etiqueta, para presentar los resultados de Media y varianza.
1 Caja de Imagen, para poder representar gráficamente los resultados obtenidos y
así poder analizar su comportamiento de la distribución normal.
Eventos que ocurren. Clic, MouseDown, Mouseup,SetFocus, validate.
LIP
49
Benemérita Universidad Autónoma de Puebla
3 Botones de Comando
Nombre: Ejecutar, Regresar y Teoría.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla del Problema del Lanzamiento de un Dado (Ver. Fig. 5.12)
Nombre de la Pantalla: Lanzamiento de un Dado.
Descripción de la Interfaz: Esta pantalla presenta la simulación del lanzamiento de un
dado y calcula el numero de veces que cae cada cara del dado y su frecuencia
correspondiente, en esta simulación nos muestra todas las imágenes de las caras del dado en
las cuales cayo después de haber sido lanzado. Cuenta con 3 botones de comando, que son
los siguientes: Lanzar dado, teoría y regresar.
Figura. 5.12 Simulación del Lanzamiento de un Dado .
LIP
50
Benemérita Universidad Autónoma de Puebla
Objetos de la Interfaz.
Objeto: Fondo 12
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 13 Cajas de texto, 12 para datos de entrada y 1 para datos de salida.
1 Matriz unidimensional de controles de Imagen, para poder representar
gráficamente los resultados obtenidos del lanzamiento del dado.
1 Timer (Temporizador ) para controlar el tiempo que gira el dado.
Eventos que ocurren. Clic, MouseDown, Mouseup,SetFocus, validate.
3 Botones de Comando
Nombre: Ejecutar, Regresar y Teoría.
Eventos que ocurren. Clic, MouseDown, Mouseup.
Pantalla del Problema de las Caminatas Aleatorias (Ver. Fig. 5.13)
Nombre de la Pantalla: Caminatas Aleatorias.
Descripción de la Interfaz: Esta pantalla presenta la simulación de las Caminatas
Aleatorias, en esta simulación nos muestra el recorrido que hace una persona moviéndose
en forma aleatoria en un plano, y termina hasta llegar al mismo lugar o después de haber
dado 200 pasos. Cuenta con 4 botones de comando, que son los siguientes: empezar
recorrido, limpiar recorrido, teoría y regresar.
LIP
51
Benemérita Universidad Autónoma de Puebla
Figura. 5.13 Simulación de las Caminatas Aleatorias.
Objetos de la Interfaz.
Objeto: Fondo 13
Nombre del Objeto: Letrero
Función: Muestra Fondo y Letrero
Objeto: 3 Cajas de texto.
1 caja de imagen, para poder graficar el plano y el recorrido aleatorio que hace la persona.
4 Botones de Comando
Nombre: empezar recorrido, limpiar recorrido, regresar y teoría.
Eventos que ocurren. Clic, MouseDown, Mouseup.
LIP
52
Benemérita Universidad Autónoma de Puebla
Apéndice A
Código de los Procedimientos más importantes del Sistema
Interfaz de Presentación del Sistema (Ver Fig. 5.1)
Private Sub Form_Load()
picFondo.Left = (Screen.Width / 2) - (picFondo.Width / 2)
picFondo.Top = (Screen.Height / 2) - (picFondo.Height / 2)
lblTitulo.Visible = False
End Sub
Private Sub imgentrar_MouseDown(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgentrarsp.Visible = False
imgentrarp.Visible = True
End Sub
Private Sub imgentrar_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgentrarp.Visible = False
imgentrarsp.Visible = True
End Sub
Private Sub imgentrar_Click()
frmIndice.Show
Unload frmPantalla
End Sub
Interfaz del Menú Principal del Sistema (Ver Fig. 6.2)
Private Sub imgcombi_MouseDown(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgcombip.Visible = True
imgcombisp.Visible = False
End Sub
Private Sub imgcombi_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgcombip.Visible = False
imgcombisp.Visible = True
End Sub
Private Sub imgpermuta_MouseDown(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgpermutap.Visible = True
imgpermutasp.Visible = False
End Sub
LIP
53
Benemérita Universidad Autónoma de Puebla
Private Sub imgpermuta_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgpermutap.Visible = False
imgpermutasp.Visible = True
End Sub
Private Sub imgdiscre_MouseDown(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgdiscrep.Visible = True
imgdiscresp.Visible = False
End Sub
Private Sub imgdiscre_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgdiscrep.Visible = False
imgdiscresp.Visible = True
End Sub
Private Sub imgContinua_MouseDown(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgcontinuap.Visible = True
imgcontinuasp.Visible = False
End Sub
Private Sub imgcontinua_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgcontinuap.Visible = False
imgcontinuasp.Visible = True
End Sub
Private Sub imgSimulacion_MouseDown(Button As Integer, Shift As Integer, x As Single,
y As Single)
imgsimulacionp.Visible = True
imgsimulacionsp.Visible = False
End Sub
Private Sub imgSimulacion_MouseUp(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgsimulacionp.Visible = False
imgsimulacionsp.Visible = True
End Sub
Private Sub imgSalir_MouseDown(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgsalirp.Visible = True
imgsalirsp.Visible = False
End Sub
Private Sub imgSalir_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
imgsalirp.Visible = False
imgsalirsp.Visible = True
End Sub
Private Sub imgSalir_Click()
End
LIP
54
Benemérita Universidad Autónoma de Puebla
End Sub
Private Sub imgpermuta_Click()
frmPermutaciones.Show
Me.Hide
End Sub
Private Sub imgcombi_Click()
frmCombinaciones.Show
Me.Hide
End Sub
Private Sub imgdiscre_Click()
frmDdiscretas.Show
Me.Hide
End Sub
Private Sub imgcontinua_Click()
frmDcontinuas.Show
Me.Hide
End Sub
Private Sub imgsimulacion_Click()
frmSimulacion.Visible = True
Me.Hide
End Sub
Interfaz del Menú Principal de las Distribuciones Discretas
Private Sub imgSalida_MouseMove(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgSalida_e.Visible = True
End Sub
Private Sub imgSalida_Click()
End
End Sub
Private Sub imgBinomial_MouseDown(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgBinomialp.Visible = True
imgBinomialsp.Visible = False
End Sub
Private Sub imgBinomial_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgBinomialp.Visible = False
imgBinomialsp.Visible = True
End Sub
Private Sub imgBnegativa_MouseDown(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgBnegativap.Visible = True
LIP
55
Benemérita Universidad Autónoma de Puebla
imgBnegativasp.Visible = False
End Sub
Private Sub imgBnegativa_MouseUp(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgBnegativap.Visible = False
imgBnegativasp.Visible = True
End Sub
Private Sub imgGeometrica_MouseDown(Button As Integer, Shift As Integer, x As Single,
y As Single)
imgGeometricap.Visible = True
imgGeometricasp.Visible = False
End Sub
Private Sub imgGeometrica_MouseUp(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgGeometricap.Visible = False
imgGeometricasp.Visible = True
End Sub
Private Sub imgHipergeometrica_MouseDown(Button As Integer, Shift As Integer, x As
Single, y As Single)
imgHipergeometricap.Visible = True
imgHipergeometricasp.Visible = False
End Sub
Private Sub imgHipergeometrica_MouseUp(Button As Integer, Shift As Integer, x As
Single, y As Single)
imgHipergeometricap.Visible = False
imgHipergeometricasp.Visible = True
End Sub
Private Sub imgPoisson_MouseDown(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgPoissonp.Visible = True
imgPoissonsp.Visible = False
End Sub
Private Sub imgPoisson_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgPoissonp.Visible = False
imgPoissonsp.Visible = True
End Sub
Private Sub imgSalir_MouseDown(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgSalirp.Visible = True
imgSalirsp.Visible = False
End Sub
Private Sub imgSalir_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
imgSalirp.Visible = False
imgSalirsp.Visible = True
End Sub
LIP
56
Benemérita Universidad Autónoma de Puebla
Private Sub imgMenu_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
imgMenup.Visible = True
imgMenusp.Visible = False
End Sub
Private Sub imgMenu_MouseUp(Button As Integer, Shift As Integer, x As Single, y As
Single)
imgMenup.Visible = False
imgMenusp.Visible = True
End Sub
Private Sub imgMenu_Click()
frmIndice.Show
Unload frmDdiscretas
End Sub
Private Sub imgSalir_Click()
End
End Sub
Private Sub imgBinomial_Click()
frmbinomial.Show
Unload frmDdiscretas
End Sub
Private Sub imgBnegativa_Click()
frmBinomial_Negativa.Show
Unload frmDdiscretas
End Sub
Private Sub imgGeometrica_Click()
FrmGeometrica.Show
Unload frmDdiscretas
End Sub
Private Sub imgHipergeometrica_Click()
frmHipergeometrica.Show
Unload frmDdiscretas
End Sub
Private Sub imgPoisson_Click()
frmPoisson.Visible = True
Unload frmDdiscretas
End Sub
Interfaz de la Distribución Binomial
Option Explicit
'Este procedimiento calcula la probabilidad de X = K
'eventos sucedan
LIP
57
Benemérita Universidad Autónoma de Puebla
'****************************************
********************************
Private Sub imgcalcular_Click()
Dim Amt As Integer, n2 As Single, j As Integer
Dim resultado As Double, resul_bino As Single, temporal As Integer
If (txtDato1.Text <> "") And (txtDato2.Text <> "") And _
(txtDato3.Text <> "") And (IsNumeric(txtDato1.Text)) And _
(IsNumeric(txtDato2.Text)) And (IsNumeric(txtDato3.Text)) Then
If (IsNumeric(txtDato3.Text)) Then
Amt = CInt(txtDato1.Text): j = CInt(txtDato2.Text)
n2 = CSng(txtDato3.Text): Graph1.DrawMode = 1
If (Amt > 0) And (Amt <= 170) Then
If (n2 >= 0) And (n2 <= 1) Then
If (j >= 0) And (j <= Amt) Then
' variable que sirve como ayuda para enmascarar la grafica y
'poder graficar de
sde el punto 0 en el eje de las accisas
lblMedia2.Caption = media(Amt, n2)
lblvar2.Caption = varianza(Amt, n2)
temporal = j + 1
'************************************************************************
' inicializa toda la grafica en valor cero
inicializar_grafica Amt
'************************************************************************
numerar_eje Amt
Select Case j
Case Is = 0
D_Binomial (Amt), j, n2, resul_bino
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
txtResultado.Text = Format(resul_bino, formato)
txtResfinal.Text = Format(resul_bino, formato)
Graph1.DrawMode = 2: Graph1.Visible = True
Case Is = 1
D_Binomial (Amt), j, n2, resul_bino
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
txtResultado.Text = Format(resul_bino, formato)
LIP
58
Benemérita Universidad Autónoma de Puebla
txtResfinal.Text = Format(resul_bino, formato)
Graph1.DrawMode = 2: Graph1.Visible = True
Case 2 To Amt
D_Binomial Amt, j, n2, resul_bino
txtResultado.Text = Format(resul_bino, formato)
txtResfinal.Text = Format(resul_bino, formato)
Graph1.ThisPoint = j + 1
Graph1.GraphData = resul_bino
Graph1.DrawMode = 2: Graph1.Visible = True
End Select
Else
MsgBox " Recuerde que el Numero de exitos debe estar es un rango de 0 - N" _
, vbExclamation
txtDato2.Text = ""
txtDato2.SetFocus
End If
Else
MsgBox "Recuerde que La probabilidad Debe estar en un rango de 0 a 1" _
, vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox "¡ ERROR ! El Número de Pruebas Debe estar en el intervalo de ( 0 a 170) ", vbExclamation
txtDato1 = ""
txtDato1.SetFocus
End If
Else
MsgBox "El dato que proporciono en el campo probabilidad no es un número ", vbExclamation
txtDato3 = ""
txtDato3.SetFocus
End If
Else
MsgBox " ¡ ERROR no se han proporcionado todos los datos de Entrada !", vbExclamation
End If
End Sub
'************************************************************************
'***********************************************
*************************
' Este procedimiento calcula la probabilidad x >= K o sea
' que calcula la probabilidad de que al menos x exitos sucedan
Private Sub imgcalcular2_Click()
Dim j As Integer, resultado As Single, resul_bino As Single
Dim Amt As Integer, n2 As Single, t$, temporal As Integer
LIP
59
Benemérita Universidad Autónoma de Puebla
If (txtDato1.Text <> "") And (txtDato2.Text <> "") And _
(txtDato3.Text <> "") And (IsNumeric(txtDato1.Text)) And _
(IsNumeric(txtDato2.Text)) And (IsNumeric(txtDato3.Text)) Then
If (IsNumeric(txtDato3.Text)) Then
Amt = CInt(txtDato1.Text): j = CInt(txtDato2.Text)
n2 = CSng(txtDato3.Text): resultado = 0
lblMedia2.Caption = media(Amt, n2)
lblvar2.Caption = varianza(Amt, n2)
If (Amt > 0) And (Amt <= 170) Then
If (n2 >= 0) And (n2 <= 1) Then
If (j >= 0) And (j <= Amt) Then
temporal = j + 1
Graph1.DrawMode = 1
' Set the GraphType property, grafica de abrras 3D
'Graph1.GraphType = 4
'************************************************************************
' codigo que limpia la grafica e inicializa la grafica en valor cero
inicializar_grafica Amt
'************************************************************************
numerar_eje Amt
Do While j <= Amt
D_Binomial (Amt), j, n2, resul_bino
'If temporal <= Graph1.NumP
oints Then
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
'End If
temporal = temporal + 1
resultado = resultado + resul_bino
t$ = t$ + "Probabilidad ( " + Trim$(Str(j)) + ") : " + Format$(resul_bino, formato)
+ vbCrLf
j=j+1
Loop
txtResultado.Text = t$
txtResfinal.Text = Format$(resultado, formato)
Graph1.DrawMode = 2
Graph1.Visible = True
Else
MsgBox " Recuerde que el Numero de exitos debe estar es un rango de 0 - N", vbExclamation
txtDato2.Text = ""
LIP
60
Benemérita Universidad Autónoma de Puebla
txtDato2.SetFocus
End If
Else
MsgBox " Recuerde que la Probabilidad Debe estar es un rango de 0 - 1", vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox "¡ ERROR ! El Numero de Pruebas Debe estar en el intervalo de ( 0 a 170) ", vbExclamation
txtDato1 = ""
txtDato1.SetFocus
End If
Else
MsgBox "El dato que proporciono en el campo probabilidad no es un numero ", vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox "¡ ERROR verifique los Datos de Entrada !", vbExclamation
End If
End Sub
'************************************************************************
'************************************************************************
' Este procedimiento calcula la probabilidad x =
< K o sea
' que calcula la probabilidad de que a lo mas x exitos sucedan
Private Sub imgcalcular3_Click()
Dim j As Integer, resultado As Single, resul_bino As Single
Dim Amt As Integer, n2 As Single, t$, temporal As Integer
If (txtDato1.Text <> "") And (txtDato2.Text <> "") And _
(txtDato3.Text <> "") And (IsNumeric(txtDato1.Text)) And _
(IsNumeric(txtDato2.Text)) And (IsNumeric(txtDato3.Text)) Then
If (IsNumeric(txtDato3.Text)) Then
Amt = CInt(txtDato1.Text): j = CInt(txtDato2.Text)
n2 = CSng(txtDato3.Text): resultado = 0
lblMedia2.Caption = media(Amt, n2)
lblvar2.Caption = varianza(Amt, n2)
If (Amt > 0) And (Amt <= 170) Then
If (n2 >= 0) And (n2 <= 1) Then
If (j >= 0) And (j <= Amt) Then
temporal = j + 1
LIP
61
Benemérita Universidad Autónoma de Puebla
Graph1.DrawMode = 1
' Set the GraphType property
' Graph1.GraphType = 4
'**********
**************************************************************
' codigo que limpia la grafica e inicializa la grafica en valor cero
inicializar_grafica Amt
'*******************************************************************
*****
numerar_eje Amt
Do While j >= 0
D_Binomial (Amt), j, n2, resul_bino
'If temporal > 0 Then
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
'Graph1.LabelText = Contador$
'End If
temporal = temporal - 1
resultado = resultado + resul_bino
t$ = t$ + "Probabilidad ( " + Trim(Str(j)) + ") : " + Format$(resul_bino, formato)
+ vbCrLf
j=j-1
Loop
txtResultado.Text = t$
txtResfinal.Text = Format$(resultado, formato)
Graph1.DrawMode = 2
Graph1.Visible = True
Else
MsgBox " Recuerde que el Numero de exitos debe estar es un rango de 0 - N",
vbExclamation
End If
Else
MsgBox " Recuerde que la Probabilidad Debe estar es un rango de 0 - 1",
vbExclamation
End If
Else
MsgBox "¡ ERROR ! El Numero de Pruebas Debe estar en el intervalo de ( 0 a 170) ",
vbExclamation
txtDato1 = ""
txtDato1.SetFocus
End If
Else
MsgBox "El dato que proporciono en el campo probabilidad no es un numero ",
vbExclamation
txtDato3 = ""
End If
Else
LIP
62
Benemérita Universidad Autónoma de Puebla
MsgBox " ¡ ERROR verifique los Datos de Entrada !", vbExclamation
End If
End Sub
'************************************************************************
'************************************************************************
' Este procedimiento calcula la probabilidad x < K o sea
' que calcula la probabilida
d de que MENOS DE x exitos sucedan
Private Sub imgcalcular4_Click()
Dim j As Integer, resultado As Single, resul_bino As Single
Dim Amt As Integer, n2 As Single, t$, temporal As Integer
If (txtDato1.Text <> "") And (txtDato2.Text <> "") And _
(txtDato3.Text <> "") And (IsNumeric(txtDato1.Text)) And _
(IsNumeric(txtDato2.Text)) And (IsNumeric(txtDato3.Text)) Then
If (IsNumeric(txtDato3.Text)) Then
Amt = CInt(txtDato1.Text): j = CInt(txtDato2.Text)
n2 = CSng(txtDato3.Text): resultado = 0
lblMedia2.Caption = media(Amt, n2)
lblvar2.Caption = varianza(Amt, n2)
If (Amt > 0) And (Amt <= 170) Then
If (n2 >= 0) And (n2 <= 1) Then
If (j >= 0) And (j <= Amt) Then
j=j-1
temporal = j + 1
Graph1.DrawMode = 1
'************************************************************************
' codigo que limpia la grafica e inicializa la grafic
a en valor cero
inicializar_grafica Amt
'************************************************************************
numerar_eje Amt
Do While j >= 0
D_Binomial (Amt), j, n2, resul_bino
'If temporal > 0 Then
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
'End If
temporal = temporal - 1
resultado = resultado + resul_bino
t$ = t$ + "Probabilidad ( " + Str(j) + ") : " + Format$(resul_bino, formato) + vbCrLf
j=j–1
LIP
63
Benemérita Universidad Autónoma de Puebla
Loop
txtResultado.Text = t$
txtResfinal.Text = Format$(resultado, formato)
Graph1.DrawMode = 2
Graph1.Visible = True
Else
MsgBox " Recuerde que el Numero de exitos debe estar es un rango de 0 - N",
vbExclamation
txtDato2.Text = ""
txtDato2.SetFocus
End If
Else
MsgBox " Recuerde que la Probabilidad Debe estar es un rango de 0 - 1",
vbExclamation
txtDato1.Text = ""
txtDato1.SetFocus
End If
Else
MsgBox "¡ ERROR ! El Numero de Pruebas Debe estar en el intervalo de ( 0 a 170) ",
vbExclamation
txtDato1 = ""
txtDato1.SetFocus
End If
Else
MsgBox "El dato que proporciono en el campo probabilidad no es un numero ",
vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox " ¡ ERROR, verifique los Datos de Entrada !", vbExclamation
End If
End Sub
'************************************************************************
'*****************************************
*******************************
' Este procedimiento calcula la probabilidad x > K o sea
' que calcula la probabilidad de que MAS DE x exitos sucedan
Private Sub imgcalcular5_Click()
Dim j As Integer, resultado As Single, resul_bino As Single
Dim Amt As Integer, n2 As Single, t$, temporal As Integer
If (txtDato1.Text <> "") And (txtDato2.Text <> "") And _
(txtDato3.Text <> "") And (IsNumeric(txtDato1.Text)) And _
(IsNumeric(txtDato2.Text)) And (IsNumeric(txtDato3.Text)) Then
If (IsNumeric(txtDato3.Text)) Then
Amt = CInt(txtDato1.Text): j = CInt(txtDato2.Text)
LIP
64
Benemérita Universidad Autónoma de Puebla
n2 = CSng(txtDato3.Text): resultado = 0
lblMedia2.Caption = media(Amt, n2)
lblvar2.Caption = varianza(Amt, n2)
If (Amt > 0) And (Amt <= 170) Then
If (n2 >= 0) And (n2 <= 1) Then
If (j >= 0) And (j <= Amt) Then
j = j + 1:
temporal = j + 1
Graph1.DrawMode = 1
' Set theGraphType property
'Graph1.GraphType = 4
'************************************************************************
' codigo que limpia la grafica e inicializa la grafica en valor cero
inicializar_grafica Amt
'************************************************************************
numerar_eje Amt
Do While j <= Amt
D_Binomial (Amt), j, n2, resul_bino
'if temporal
Graph1.ThisPoint = temporal
Graph1.GraphData = resul_bino
resultado = resultado + resul_bino
t$ = t$ + "Probabilidad ( " + Str(j) + ") : " + Format$(resul_bino, formato) + vbCrLf
j=j+1
temporal = temporal + 1
Loop
txtResultado.Text = t$
txtResfinal.Text = Format$(resultado, formato)
Graph1.DrawMode = 2
Graph1.Visible = True
Else
MsgBox " Recuerde que el Numero de exitos debe estar es un rango de 0 - N",
vbExclamation
txtDato2.Text = ""
txtDato2.SetFocus
End If
Else
MsgBox " Recuerde que la Probabilidad Debe estar es un rango de 0 - 1",
vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox "¡ ERROR ! El Numero de Pruebas Debe estar en el intervalo de ( 0 a 170) ",
LIP
65
Benemérita Universidad Autónoma de Puebla
vbExclamation
txtDato1 = ""
txtDato1.SetFocus
End If
Else
MsgBox "El dato que proporciono en el campo probabilidad no es un numero ",
vbExclamation
txtDato3.Text = ""
txtDato3.SetFocus
End If
Else
MsgBox " ¡ ERROR verifique los Datos de Entrada !", vbExclamation
End If
End Sub
'************************************************************************
'************************************************************************
‘Función que calcula los valores probabilisticos de la distribución binomial, este modulo es ‘importante ya
que cuando requerimos de el nada mas lo mandamos a llamar desde ‘cualquier parte de este formulario
Public Sub D_Binomial(K As Integer, x As Integer, p As Single, binomial As Single)
Dim f7 As Double, f8 As Double, f9 As Double, w As Integer, q As Single
w=K-x
q=1-p
Combinacion K, (x), f7
potencia p, (x), f8
potencia q, w, f9
binomial = f7 * f8 * f9
End Sub
'******************************************************************
******
Private Sub cmdGrafica_Click()
Graph1.GraphData = 0
Graph1.NumPoints = 2
End Sub
'************************************************************************
‘Procedimiento que inicializa toda la grafica en Valor cero
Private Sub inicializar_grafica(Amt As Integer)
Dim M As Integer
' Asigna el numero de puntos a graficar en el eje " X "
' que va del numero 0 a Graph1.NumPoints
Graph1.NumPoints = Amt + 1
For M = 1 To Graph1.NumPoints
Graph1.ThisPoint = M
LIP
66
Benemérita Universidad Autónoma de Puebla
Graph1.GraphData = 0
Next M
End Sub
'************************************************************************
'************************************************************************
‘Procedimiento que numera todos los valores de la grafica
Private Sub numerar_eje(Amt As Integer)
Dim s As Integer
' Asigna el numero de puntos a graficar en el eje " X "
' que va del numero 0 a Graph1.NumPoints
Graph1.NumPoints = Amt + 1
For s = 1 To Graph1.NumPoints
Graph1.ThisPoint = s
Graph1.LabelText = (s - 1)
Next s
End Sub
'************************************************************************
'************************************************************************
' Procedimientos que eligen el modo de grafico con los que se desea que aparezca en la grafica,odos
t
estos
procedimientos son Botones de Opción.
Private Sub optAreas_Click()
Graph1.GraphType = gphArea
End Sub
Private Sub optBarras_Click()
Graph1.GraphType = gphBar2D
End Sub
Private Sub optbarras2_Click()
Graph1.GraphType = gphBar3D
End Sub
Private Sub optLineas_Click()
Graph1.GraphType = gphLine
End Sub
'************************************************************************
'************************************************************************
' A continuación se crearan todos los métod
os de validación para los datos de entrada
Private Sub txtDato1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = Asc(" ") Then
Beep
KeyAscii = 0
txtDato1 = ""
LIP
67
Benemérita Universidad Autónoma de Puebla
MsgBox " Introducir exclusivamente números enteros positivos ", vbExclamation
End If
End Sub
Private Sub txtDato2_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = Asc(" ") Then
Beep
KeyAscii = 0
txtDato2 = ""
MsgBox "Introducir exclusivamente Números enteros positivos,no se permiten espacios
", vbExclamation
End If
End Sub
'************************************************************************
'***********************************************************************
*
‘ funciones que devuelven el valor de la media y la varianza de los valores de la
‘ distribución binomial
Private Function media(N As Integer, p As Single) As Single
media = Format((N * p), formato)
End Function
Private Function varianza(N As Integer, p As Single) As Single
Dim q As Single
q=1-p
varianza = Format((N * p * q), formato)
End Function
'************************************************************************
'******************************************************
******************
'Todos los procedimientos que se listan a continuación, son los que hacen el efecto de los 'botones gráficos,
que haga la apariencia de que se presiona cualquiera de los botones
Private Sub imgcalcular_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
imgcalcularp.Visible = True
imgcalcularsp.Visible = False
End Sub
Private Sub imgcalcular_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
imgcalcularp.Visible = False
imgcalcularsp.Visible = True
End Sub
'************************************************************************
Interfaz de la Distribución Exponencial
LIP
68
Benemérita Universidad Autónoma de Puebla
Option Explicit
‘ Sección de Variables
Dim F_Funcion As Double, RESUL_INTEGRACION As Single
Const N = 26
'********
****************************************************************
‘ función que calcula el argumento de la distribución exponencial
Function Funcion(alfa As Single, x As Single) As Double
Funcion = (Exp(-alfa * x)) * alfa
End Function
'*****************
*******************************************************
‘procedimiento que carga una caja de imagen donde se graficara el eje “X” y eje “Y” del ‘plano y así poder
graficar la curva de la distribución exponencial
Private Sub Form_Load()
PctExponencial.Scale (-2, 2)-(12, -1)
PctExponencial.Line (-12, -0.15)-(12, -0.15) ' ejex
PctExponencial.Line (0, 2)-(0, -0.147), vbRed ' ejey
End Sub
'************************************************************************
‘ procedimiento que dibuja la grafica de la distribución exponencial
Private Sub grafica_Exponencial(alfa1 As Single)
Dim x As Single, final As Double
For x = 0 To 12 Step 0.001
final = alfa1 * Exp(-alfa1 * x)
PctExponencial.DrawWidth = 1
PctExponencial.PSet (x, final), vbBlue
Next x
PctExponencial.Line (-12, -0.15)-(12, -0.15) ' ejex
PctExponencial.Line (0, 2)-(0, -0.147), vbRed ' ejey
' divisiones
End Sub
'************************************************************************
‘función que devuelve la ordenada, para poder graficar la curva de la distribución binomial
Public Function obtener_ordenada(x As Single, alfa1 As Single) As Single
Dim final As Single
final = alfa1 * Exp(-alfa1 * x)
obtener_ordenada = (final)
LIP
69
Benemérita Universidad Autónoma de Puebla
End Function
'*****************
*******************************************************
'procedimiento que rellena el área bajo la curva de
'izquierda a derecha
'Este procedimiento se utilizara para cuando se quiera calcular
' la probabilidad Z > ?
Private Sub rellena_areaDerecha(x As Single, lambda As Single)
Dim ordenaday As Single, t As Single
For t = x To 12 Step 0.01
' la siguiente función: obtener_ordenada, nos da la ordena “y” para poder
' graficar
ordenaday = obtener_ordenada(t, lambda)
PctExponencial.DrawWidth = 1
PctExponencial.Line (t, -0.145)-(t, ordenaday), vbGreen
Next t
End Sub
'************************************************************************
'El siguiente procedimiento que rellena el área bajo la curva de
'izquierda a derecha
'Este proced
imiento se utilizara para cuando se quiera calcular
' la probabilidad X < a?
Private Sub rellena_areaIzquierda(x As Single, lambda As Single)
Dim ordenaday As Single, t As Single
For t = 0 To x Step 0.01
' la siguiente funcion: obtener_ordenada, ons da la ordena y para poder
' graficar
ordenaday = obtener_ordenada(t, lambda)
PctExponencial.DrawWidth = 1
PctExponencial.Line (t, -0.145)-(t, ordenaday), vbGreen
Next t
End Sub
'**********************************************************
**************
'El siguiente procedimiento que rellena el área bajo la curva de
'un intervalo dado
'Este procedimiento se utilizara para cuando se quiera calcular
' la probabilidad " ? a < X < b ?"
Private Sub rellena_areaIntervalo(A As Single, B As Single, lambda As Single)
Dim ordenaday As Single, t As Single
For t = A To B Step 0.01
' la siguiente función: obtener_ordenada, nos da la ordena "y" para poder
' graficar
ordenaday = obtener_ordenada(t, lambda)
PctExponencial.DrawWidth = 1
LIP
70
Benemérita Universidad Autónoma de Puebla
PctExponencial.Line (t, -0.145)-(t, ordenaday), vbGreen
Next t
End Sub
'************************************************************************
‘Este algoritmo de integración llama Integración de Simpson, es muy útil para poder calcular el valor de la
integral ‘requerida para poder obtener el valor requerido de la distribución exponencial
Function Integracion_Simpson(A As Single, B As Single, lambda As Single) As Single
Dim H As Single, SUM As Single, x As Single
Dim I As Integer
H = (B - A) / N
SUM = 0
For I = 1 To N / 2 Step 1
x=A-H+2*H*I
SUM = SUM + 4 * Funcion(lambda, x)
If I <> N / 2 Then
SUM = SUM + 2 * Funcion(lambda, x + H)
End If
Next I
SUM = SUM + Funcion(lambda, A) + Funcion(lambda, B)
Integracion_Simpson = SUM * H / 3
End Function
'************************************************************************
‘procedimiento que calcula la probabilidad deseada de la distribución exponencial, una vez ‘ ingresado todos
los datos de entrada
Private Sub imgExponencial_Click()
Dim A As Single, B As Single, lambda As Single, area_a As Single, area_b As Single
If (txta.Text <> "") And (txtLambda.Text <> "") Then
If (IsNumeric(txta.Text)) Then
If (IsNumeric(txtLambda.Text)) Then
A = CSng(txta.Text)
lambda = CSng(txtLambda.Text)
PctExponencial.Cls
If Option1 = True Then
RESUL_INTEGRACION = 1 - Integracion_Simpson(0, A, lambda)
txtResultado = Format(Abs(RESUL_INTEGRACION), formato)
rellena_areaDerecha A, lambda
End If
If Option2 = True Then
RESUL_INTEGRACION = Integracion_Simpson(0, A, lambda)
txtResultado = Format(Abs(RESUL_INTEGRACION), formato)
LIP
71
Benemérita Universidad Autónoma de Puebla
rellena_areaIzquierda A, lambda
End If
If Option3 = True Then
If (IsNumeric(txtb.Text)) Then
B = CSng(txtb.Text)
area_a = Integracion_Simpson(0, A, lambda)
area_b = Integracion_Simpson(0, B, lambda)
RESUL_INTEGRACION = area_a - area_b
txtResultado = Format(Abs(RESUL_INTEGRACION), formato)
rellena_areaIntervalo A, B, lambda
Else
MsgBox " ¡ Error ! No es un Valor Numérico", vbExclamation
txtb.Text = ""
txtb.SetFocus
End If
End If
grafica_Exponencial (lambda)
lblRE.Caption = ((1 / lambda))
lblRV.Caption = (1 / ((lambda) ^ 2))
Else
MsgBox " ¡ Error ! No es un Valor Numérico", vbExclamation
txtLambda.Text = ""
txtLambda.SetFocus
End If
Else
MsgBox " ¡ Error ! No es un Valor Numérico", vbExclamation
txta.Text = ""
txta.SetFocus
End If
Else
MsgBox " ¡ Error ! Falta Completar Información de Datos", vbExclamation
End If
End Sub
'************************************************************************
Private Sub limpia_valores()
txta.Text = "":
txtb.Text = "":
txtResultado = "": txtLambda.Text = ""
End Sub
'**********
**************************************************************
Private Sub Option1_Click()
LIP
72
Benemérita Universidad Autónoma de Puebla
limpia_valores
lblb.Visible = False
txtb.Visible = False
caso2.Visible = False
caso3.Visible = False
End Sub
Private Sub Option2_Click()
limpia_valores
lblb.Visible = False
txtb.Visible = False
Caso1.Visible = False
caso3.Visible = False
End Sub
Private Sub Option3_Click()
limpia_valores
lblb.Visible = True
txtb.Visible = True
End Sub
'**********************************************
**************************
Private Sub imgExponencial_MouseDown(Button As Integer, Shift As Integer, x As
Single, y As Single)
imgExponencialp.Visible = True
imgExponencialsp.Visible = False
End Sub
Private Sub imgExponencial_MouseUp(Button As Integer, Shift As Integer, x As Single, y
As Single)
imgExponencialp.Visible = False
imgExponencialsp.Visible = True
End Sub
Private Sub imgregresar_Click()
frmDcontinuas.Show
Unload frmDExponencial
End Sub
A continuación se listara una serie de procedimientos globales o públicos que se pueden usar en cualquier
formulario del proyecto. Todos estos procedimientos fueron muy importantes ya que se usaron ,as de una vez
en el desarrollo de este sistema.
Estos procedimiento están incluidos en un modulo estándar.
Option Explicit
Public Sub Factorial(N As Integer, F As Double)
If N = 0 Then
F=1
LIP
73
Benemérita Universidad Autónoma de Puebla
Else
F=1
Do While N > 0
F=N*F
N=N-1
Loop
End If
End Sub
Public Sub potencia(N As Single, P As Integer, resul As Double)
resul = 1
Do While P > 0
resul = resul * N
P=P-1
Loop
End Sub
Public Sub potencia2(N As Integer, P As Integer, resul As Double)
resul = 1
Do While P > 0
resul = resul * N
P=P-1
Loop
End Sub
Public Sub Permutacion(N As Integer, r As Integer, result As Double)
Dim K As Integer
Dim f3 As Double, f4 As Double
K=N-r
Factorial N, f3
Factorial K, f4
result = f3 / f4
End Sub
Public Sub Combinacion(N As Integer, r As Integer, resulta As Double)
Dim K As Integer
Dim f5 As Double, f6 As Double
Permutacion N, r, f5
Factorial r, f6
resulta = f5 / f6
End Sub
Código de la Simulación de 2 dados
Option Explicit
Dim contador1 As Integer, contador2 As Integer, contador3 As Integer
Dim contador4 As Integer, contador5 As Integer, contador6 As Integer
LIP
74
Benemérita Universidad Autónoma de Puebla
Dim contadortimer As Integer, cuadro As Integer, veces As Integer, i As Integer
Dim pasada As Integer, detener As Boolean
Const TotalCuadros = 72 'Total de cuadros de la animacion
Const Xs = 72
'Xs ancho decada cuadro
Const Ys = 72
'Altura de cada cuadro
Private Sub imglimpiar_Click()
Text1.Text = " ": Text2.Text = " ": Text3.Text = " ":
Text4.Text = " ": Text5.Text = " ": Text6.Text = " ":
Text7.Text = " ": Text8.Text = " ": Text9.Text = " ":
Text10.Text = " ": Text11.Text = " ": Text12.Text = " ":
Text13.Text = " ": Text14.Text = " ":
caja1.Text = " ":
caja4.Text = " ":
caja7.Text = " ":
caja10.Text = " ":
caja13.Text = " ":
caja16.Text = " ":
caja19.Text = " ":
caja22.Text = " ":
caja2.Text = " ": caja3.Text = " ":
caja5.Text = " ": caja6.Text = " ":
caja8.Text = " ": caja9.Text = " ":
caja11.Text = " ": caja12.Text = " ":
caja14.Text = " ": caja15.Text = " ":
caja17.Text = " ": caja18.Text = " ":
caja20.Text = " ": caja21.Text = " ":
caja23.Text = " ": caja24.Text = " ":
imglimpiar.Enabled = False
imglanzar.Visible = True
End Sub
Private Sub lbldetener_Click()
detener = True
contadortimer = 2
pasada = 0
Timer1.Enabled = False
i = veces
End Sub
Private Sub imglanzar_Click()
'Dim i As Integer,
Dim dado As Integer, dado2 As Integer
Dim contador_1 As Integer, contador_2 As Integer, contador_3 As Integer
Dim contador_4 As Integer, contador_5 As Integer, contador_6 As Integer
Dim contador_7 As Integer, contador_8 As Integer, contador_9 As Integer
Dim contador_10 As Integer, contador_11 As Integer, contador_12 As Integer
Dim contador_13 As Integer, contador_14 As Integer, contador_15 As Integer
Dim contador_16 As Integer, contador_17 As Integer, contador_18 As Integer
Dim contador_19 As Integer, contador_20 As Integer, contador_21 As Integer
Dim contador_22 As Integer, contador_23 As Integer, contador_24 As Integer
Dim contador_25 As Integer, contador_26 As Integer, contador_27 As Integer
Dim contador_28 As Integer, contador_29 As Integer, contador_30 As Integer
Dim contador_31 As Integer, contador_32 As Integer, contador_33 As Integer
Dim contador_34 As Integer, contador_35 As Integer, contador_36 As Integer
Dim t$, K$
LIP
75
Benemérita Universidad Autónoma de Puebla
If (txtVeces.Text <> "") And (txtVeces.Text <> "") Then
If txtVeces.Text <= 300 Then
veces = 0
veces = CInt(txtVeces.Text)
i=1
imglanzar.Visible = False
imgregresar.Enabled = False
contador_1 = 0: contador_2 = 0: contador_3 = 0:
contador_4 = 0: contador_5 = 0: contador_6 = 0:
contador_7 = 0: contador_8 = 0: contador_9 = 0:
contador_10 = 0: contador_11 = 0: contador_12 = 0:
While i <= veces
detener = False
contadortimer = 0
pasada = 0
Timer1.Enabled = True
Animar
Randomize
dado = Fix(6 * Rnd) + 1
dado2 = Fix(6 * Rnd) + 1
t$ = t$ + Trim$(Str(dado)) + vbCrLf
K$ = K$ + Trim$(Str(dado2)) + vbCrLf
Text13.Text = t$:
Text14.Text = K$
If (dado = 1) And (dado2 = 1) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_1 = contador_1 + 1
Text1.Text = Format((contador_1 / veces), formato2)
ElseIf (dado = 1) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_2 = contador_2 + 1
Text2.Text = Format((contador_2 / veces), formato2)
ElseIf (dado = 1) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_3 = contador_3 + 1
Text3.Text = Format((contador_3 / veces), formato2)
ElseIf (dado = 1) And (dado2 = 4) Then
LIP
76
Benemérita Universidad Autónoma de Puebla
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_4 = contador_4 + 1
Text4.Text = Format((contador_4 / veces), formato2)
ElseIf (dado = 1) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_5 = contador_5 + 1
Text5.Text = Format((contador_5 / veces), formato2)
ElseIf (dado = 1) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_6 = contador_6 + 1
Text6.Text = Format((contador_6 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 1) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_7 = contador_7 + 1
Text7.Text = Format((contador_7 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_8 = contador_8 + 1
Text8.Text = Format((contador_8 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_9 = contador_9 + 1
Text9.Text = Format((contador_9 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 4) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_10 = contador_10 + 1
Text10.Text = Format((contador_10 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_11 = contador_11 + 1
Text11.Text = Format((contador_11 / veces), formato2)
ElseIf (dado = 2) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_12 = contador_12 + 1
Text12.Text = Format((contador_12 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 1) Then
LIP
77
Benemérita Universidad Autónoma de Puebla
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_13 = contador_13 + 1
caja1.Text = Format((contador_13 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_14 = contador_14 + 1
caja2.Text = Format((contador_14 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_15 = contador_15 + 1
caja3.Text = Format((contador_15 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 4) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_16 = contador_16 + 1
caja4.Text = Format((contador_16 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_17 = contador_17 + 1
caja5.Text = Format((contador_17 / veces), formato2)
ElseIf (dado = 3) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_18 = contador_18 + 1
caja6.Text = Format((contador_18 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 1) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_19 = contador_19 + 1
caja7.Text = Format((contador_19 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_20 = contador_20 + 1
caja8.Text = Format((contador_20 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_21 = contador_21 + 1
caja9.Text = Format((contador_21 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 4) Then
LIP
78
Benemérita Universidad Autónoma de Puebla
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_22 = contador_22 + 1
caja10.Text = Format((contador_22 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_23 = contador_23 + 1
caja11.Text = Format((contador_23 / veces), formato2)
ElseIf (dado = 4) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_24 = contador_24 + 1
caja12.Text = Format((contador_24 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 1) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_25 = contador_25 + 1
caja13.Text = Format((contador_25 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_26 = contador_26 + 1
caja14.Text = Format((contador_26 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_27 = contador_27 + 1
caja15.Text = Format((contador_27 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 4) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_28 = contador_28 + 1
caja16.Text = Format((contador_28 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_29 = contador_29 + 1
caja17.Text = Format((contador_29 / veces), formato2)
ElseIf (dado = 5) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_30 = contador_30 + 1
caja18.Text = Format((contador_30 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 1) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
LIP
79
Benemérita Universidad Autónoma de Puebla
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
contador_31 = contador_31 + 1
caja19.Text = Format((contador_31 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 2) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_2.gif")
contador_32 = contador_32 + 1
caja20.Text = Format((contador_32 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 3) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_3.gif")
contador_33 = contador_33 + 1
caja21.Text = Format((contador_33 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 4) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_4.gif")
contador_34 = contador_34 + 1
caja22.Text = Format((contador_34 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 5) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_5.gif")
contador_35 = contador_35 + 1
caja23.Text = Format((contador_35 / veces), formato2)
ElseIf (dado = 6) And (dado2 = 6) Then
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_6.gif")
contador_36 = contador_36 + 1
caja24.Text = Format((contador_36 / veces), formato2)
End If
i=i+1
Sleep (2500) ' funcion de retardo que es de medio segundo
Wend
'cmdTirar_dado.Visible = False
imglimpiar.Enabled = True
imgregresar.Enabled = True
Else
MsgBox "¡ ERROR ! El número de veces debe ser Maximo 300", vbExclamation
txtVeces.SetFocus
txtVeces.Text = ""
End If
Else
MsgBox "¡ ERROR ! Falta proporcionar el Dato de Entrada", vbExclamation
txtVeces.SetFocus
End If
LIP
80
Benemérita Universidad Autónoma de Puebla
End Sub
Private Sub Form_Load()
picAnima(0).Visible = True
picAnima(0).Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
PicAnima2.Picture = LoadPicture("C:\Archivos de programa\LIP\cara_1.gif")
End Sub
Private Sub Timer1_Timer()
Static contadortimer As Integer
contadortimer = contadortimer + 1
If contadortimer = 2 Then
detener = True
contadortimer = 0
Timer1.Enabled = False
Else
Exit Sub
End If
End Sub
Private Sub cmdRmenu_Click()
frmSimulacion.Show
Unload frmDado2
End Sub
Private Sub Animar()
Do
pasada = pasada + 1
If pasada = 60 Then
pasada = 0
cuadro = cuadro + 1
If cuadro > TotalCuadros - 1 Then
cuadro = 0
End If
End If
Select Case cuadro
Case 1 To 10
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, cuadro * Xs, 0, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, cuadro * Xs, 0, vbSrcCopy
Case 13 To 22
contador1 = cuadro - 12
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador1 * Xs, 72, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador1 * Xs, 72, vbSrcCopy
Case 25 To 34
LIP
81
Benemérita Universidad Autónoma de Puebla
contador2 = cuadro - 24
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador2 * Xs, 144, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador2 * Xs, 144, vbSrcCopy
Case 37 To 46
contador3 = cuadro - 36
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador3 * Xs, 216, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador3 * Xs, 216, vbSrcCopy
Case 49 To 58
contador4 = cuadro - 48
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador4 * Xs, 288, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador4 * Xs, 288, vbSrcCopy
Case 61 To 70
contador5 = cuadro - 60
BitBlt picAnima(0).hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador5 * Xs, 360, vbSrcCopy
BitBlt PicAnima2.hDC, 0, 0, Xs, Ys, piccuadros.hDC, contador5 * Xs, 360, vbSrcCopy
End Select
DoEvents
Loop Until detener
Timer1.Enabled = False
End Sub
Private Sub txtveces_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Or KeyAscii = Asc(" ") Then
Beep
KeyAscii = 0
txtVeces = ""
MsgBox " introducir exclusivamente numeros enteros "
End If
End Sub
Private Sub txtveces_Validate(cancel As Boolean)
If Len(txtVeces.Text) = 0 Then
MsgBox "Antes tiene que introducir un dato en este campo"
cancel = True
End If
End Sub
LIP
82
Benemérita Universidad Autónoma de Puebla
APÉNDICE B
DISTRIBUCIONES DE PROBABILIDAD
¿ Que se entiende por Probabilidad?
Según la definición clásica es el cociente entre los casos favorables sobre los casos
posibles.
¿ Que se entiende por Distribución de Probabilidad?
La distribución de Probabilidad de una variable aleatoria X es una descripción del
conjunto de valores posibles de X (rango de X), junto con la probabilidad asociada con
cada uno de estos valores.
DISTRIBUCION DISCRETA
¿ Que se entiende por Distribución Discreta?
La distribución discreta de probabilidad es aquella en la que la variable tiene
permitido tomar solamente un número limitado de valores.
La Distribución Binomial.
La Distribución Binomial parte de la distribución de Bernouilli:
La Distribución de Bernouilli se aplica cuando se realiza una sola vez un experimento que
tiene únicamente dos posibles resultados (éxito o fracaso), por lo que la variable sólo puede
tomar dos valores: el 1 y el 0
LIP
83
Benemérita Universidad Autónoma de Puebla
La Distribución Binomial se aplica cuando se realizan un número "n" de veces el
experimento de Bernouilli, siendo cada ensayo independiente del anterior. La variable
puede tomar valores entre:
0: si todos los experimentos han sido fracaso
n: si todos los experimentos han sido éxitos
Ejemplo: se tira una moneda 10 veces: ¿cuantas caras salen? Si no ha salido ninguna la
variable toma el valor 0; si han salido dos caras la variable toma el valor 2; si todas han
sido cara la variable toma el valor 10
La distribución de probabilidad de este tipo de distribución sigue el siguiente modelo:
n
p ( y ) =   p y q n − y
 y
Ejemplo 1: ¿Cuál es la probabilidad de obtener 6 caras al lanzar una moneda 10 veces?
" y " es el número de aciertos. En este ejemplo " y " igual a 6 (en cada acierto decíamos
que la variable toma el valor 1: como son 6 aciertos, entonces y = 6)
" n" es el número de ensayos. En nuestro ejemplo son 10
" p " es la probabilidad de éxito, es decir, que salga "cara" al lanzar la moneda. Por lo
tanto p = 0,5
La fórmula quedaría:
LIP
84
Benemérita Universidad Autónoma de Puebla
10 
6
p(6) =   (.5) (.5)10−6
6
 
Luego,
P (y = 6) = 0,205
Es decir, se tiene una probabilidad del 20.5 % de obtener 6 caras al lanzar 10 veces una
moneda.
p = probabilidad característica o probabilidad de tener éxito
q = 1 - p = probabilidad de fracaso
y = número de éxitos deseados
n = número de intentos hechos
Generalizaciones:
Cuando p es pequeña (0,1), la distribución binomial está sesgada hacia la derecha.
Cuando p aumenta (0,3 por ejemplo), el sesgo es menos notable.
Cuando p = 0,5, la distribución binomial es simétrica.
Cuando p es mayor que 0,5, la distribución está sesgada hacia la izquierda.
Las probabilidades para 0,3, por ejemplo, son las mismas para 0,7, excepto que los valores
de p y q están invertidos. Esto es cierto para cualquier pareja de valores p y q
complementarios.
LIP
85
Benemérita Universidad Autónoma de Puebla
Medidas de tendencia central y de dispersión para la distribución binomial.
La distribución binomial tiene un valor esperado o media y una desviación estándar.
Valor esperado o media: µ = np
Desviación estándar: σ = √ npq
Distribución de Probabilidad Bernoulli
Una variable aleatoria de Bernoulli y se define como el resultado numérico de una prueba
de Bernoulli, donde Y =1 si hay éxito y y = 0 si se fracasa.
Considere una prueba de Bernoulli donde
1 si ocurre un éxito (S)
y=
0 si ocurre un fracaso (F)
La distribución de probabilidad de la variable aleatoria de Bernoulli y esta dada por
p( y ) = p y q 1− y ( y = 0,1)
donde
p = Pr obabilidad de un éxito para una prueba de Bernoulli
q = 1− p
La media y la var ianza aleatoria de Bernoulli son, respectivamente
µ = P y σ 2 = pq
LIP
86
Benemérita Universidad Autónoma de Puebla
Distribución Geométrica
p( y) = pq y −1 ( y = 1,2,....)
donde
y = Número de pruebas hasta que se observa el primer éxito
µ=
1
p
σ2 =
q
p2
Distribución Hipergeométrica
La distribución de probabilidad hipergeométrica esta dada por
 r  N − r 
 

y  n − y 

p( y ) =
N
 
n 
y = Maximo[0, n − (N − r )],....,
Minimo(r , n )
donde
N = Número total de elementos
r = Número de resultados S en los N elementos
n = Número de elementos extraidos
y = Número de resultados S en los n elementos
la media y la var ianza de una var iable aleatoria hipergeométrica son respectivamente
µ=
nr
N
σ2 =
r (N − r )n(N − n )
N 2 (N − 1)
LIP
87
Benemérita Universidad Autónoma de Puebla
Distribución de Probabilidad de Poisson
Es llamada así en honor del matemático francés S. D . Poisson (1781-1840), proporciona un
modelo para la frecuencia relativa del numero de “eventos poco comunes” que ocurren en
una unidad de tiempo, área, volumen, etc.
La distribución de Poisson puede ser una razonable aproximación a la binomial, pero sólo
bajo ciertas condiciones. Tales condiciones se presentan cuando n es grande y p es pequeña,
esto es, cuando el número de ensayos es grande y la probabilidad binomial de tener éxito es
pequeña. La regla que utilizan con más frecuencia los estadísticos es que la distribución de
Poisson es una buena aproximación de la distribución binomial cuando n es igual o mayor
que 20 y p es igual o menor que 0,05. En los casos en que se cumplen estas condiciones,
podemos sustituir la media de la distribución binomial (np) en lugar de la media de la
distribución de Poisson .
SUGERENCIA:
El uso de una distribución para aproximar a otra es una práctica bastante común en
probabilidad y estadística. La idea consiste en buscar situaciones en las que una
distribución (como la de Poisson), cuyas probabilidades son relativamente fáciles de
calcular, tiene valores que se encuentran razonablemente cercanos a las de otra distribución
(como la binomial) cuyas probabilidades implican cálculos más complicados.
RECOMENDACIONES PRÁCTICAS:
Frente a un problema concreto, analice detenidamente todas sus características, y al elegir
el modelo apropiado, verifique que se cumplan todos los supuestos del mismo.
LIP
88
Benemérita Universidad Autónoma de Puebla
Habitúese a utilizar las tablas provistas por la bibliografía para calcular probabilidades.
Ahorrará tiempo y evitará errores de cálculo.
No olvide emplear la distribución de Poisson a la binomial en aquellos casos en que p es
pequeño y n es grande.
Para calcular probabilidades acumuladas, del tipo P(X > x), P(X < x) o P(x < X < x),
también existen valores tabulados en textos especializados.
En el caso de variables aleatorias discretas, es importante diferenciar si la probabilidad
deseada incluye o no el valor particular de la variable. Es decir, que P(X > x) no es lo
mismo que P(X > x) y P (X < x) es distinto de P(X < x).
La distribución de probabilidad para una variable aleatoria de Poisson esta dada por
p( y ) =
λye−y
y!
(y = 0,1,2,....)
donde
λ = Número medio de eventos en una unidad de tiempo, área o volumen
e = 2.71828
la media y la var ianza de una var iable aleatoria de poisson, respectivamente,
µ=λ
σ2 =λ
LIP
89
Benemérita Universidad Autónoma de Puebla
DISTRIBUCIÓN CONTINUA
¿ Que se entiende por Distribución Continua?
La distribución continua de probabilidad es aquella en la que la variable tiene
permitido tomar cualquier valor dentro de un intervalo dado.
Distribución de probabilidad Uniforme
Suponga que selecciona al azar un numero y representado por un punto en el
intervalo a< y <b. La función de densidad de y se representa gráficamente mediante un
rectángulo, como se muestra en la siguiente figura.
.f(y)
1
b-a
.a
b
y
Su función de densidad, media y varianza se muestran a continuación:
LIP
90
Benemérita Universidad Autónoma de Puebla


 1
f (y ) = 
b − a
 0
µ=
2.3.1
a+b
2
si a ≤ y ≤ b, y 0 en en cualquier otro punto.
σ2 =
(b − a )2
12
Distribución de Probabilidad Exponencial
Esta relacionada con la distribución de probabilidad de Poisson.
Procesos donde se estudian fenómenos como tiempo entre o distancia entre dos eventos
cualquiera, se pueden modelar mediante la distribución exponencial, que tiene la siguiente
función de densidad:
Una distribución exponencial es una función de densidad gamma con α = 1
fx(x; y ) = λ e −λx (0 ≤ x ≤ ∞)
con media y varianza
µ=
1
1
y V (X ) = 2
λ
λ
Distribución de Probabilidad Normal
La función de densidad normal ( o gaussiana) fue propuesta por C.F Gauss (1777-1855)
como modelo para la distribución de frecuencia relativa de errores, como los errores de
medición.
LIP
91
Benemérita Universidad Autónoma de Puebla
La variable aleatoria normal posee una función de densidad caracterizada por dos
parámetros. Esta función de densidad, su media y sui varianza se muestran a continuación
f (y ) =
1
e
σ 2π
 − y − µ 2 

−
2σ 2
−∞ < y < ∞
Los parametros µ yσ 2 son la media y la var ianza, respectivamente, de la
var iable aleatoria normal y.
La variable puede tomar cualquier valor que esté en un intervalo de valores dado, y la
distribución de probabilidad es continua.
Las razones básicas de la importancia de la distribución normal son:
Tiene algunas propiedades que la hacen aplicable a un gran número de situaciones en las
que es necesario hacer inferencias mediante la toma de muestras. La distribución normal es
una útil distribución de muestreo.
La distribución normal casi se ajusta a las distribuciones de frecuencias reales observadas
en muchos fenómenos, incluyendo características humanas (pesos, alturas), resultados de
procesos físicos (dimensiones y rendimientos) y muchas otras medidas de interés para los
administradores.
Características de la distribución normal de probabilidad.
La curva tiene un solo pico; por tanto, es unimodal. Tiene forma de campana.
La media de una población distribuida normalmente cae en el centro de su curva normal.
LIP
92
Benemérita Universidad Autónoma de Puebla
Debido a la simetría de la distribución normal de probabilidad, la mediana y la moda se
encuentran también en el centro; en consecuencia, para una curva normal, la media, la
mediana y la moda tienen el mismo valor.
Los dos extremos de la distribución normal de probabilidad se extienden indefinidamente y
nunca tocan el eje horizontal.
La mayor parte de las poblaciones reales no se extienden de manera indefinida en ambas
direcciones; pero en estas poblaciones, la distribución normal es una aproximación
conveniente. No hay una sola distribución normal, sino una familia de curvas normales.
Para definir una distribución normal de probabilidad necesitamos definir sólo dos
parámetros: la media y la desviación estándar.
La curva normal puede describir un gran número de poblaciones, diferenciadas solamente
por la media, la desviación estándar o por ambas.
Áreas bajo la curva normal.
No importa cuáles sean los valores de m y s para una distribución de probabilidad normal,
el área bajo la curva es 1,00, de manera que podemos pensar en áreas bajo la curva como si
fueran probabilidades. Matemáticamente:
Aproximadamente el 68% de todos los valores de una población normalmente distribuida
se encuentran dentro + 1 desviación estándar de la media.
Aproximadamente 95,5% de todos los valores de una población normalmente distribuida se
encuentran dentro de + 2 desviaciones estándar de la media.
Aproximadamente 99,7% de todos los valores de una población normalmente distribuida se
encuentran dentro de + 3 desviaciones estándar de la media.
LIP
93
Benemérita Universidad Autónoma de Puebla
Las tablas estadísticas indican porciones del área bajo la curva normal que están contenidas
dentro de cualquier número de desviaciones estándar (más, menos) a partir de la media.
No es posible ni necesario tener una tabla distinta para cada curva normal posible. En lugar
de ello, podemos utilizar una distribución de probabilidad normal estándar para encontrar
áreas bajo cualquier curva normal. Con esta tabla podemos determinar el área o la
probabilidad de que la variable aleatoria distribuida normalmente esté dentro de ciertas
distancias a partir de la media. Estas distancias están definidas en términos de desviaciones
estándar.
Para cualquier distribución normal de probabilidad, todos los intervalos que contienen el
mismo número de desviaciones estándar a partir de la media contendrán la misma fracción
del área total bajo la curva para cualquier distribución de probabilidad normal.
Uso de la tabla de distribución de probabilidad normal estándar.
En esta tabla, el valor z está derivado de la fórmula:
z = (x - m ) / s
en la que:
x = valor de la variable aleatoria que nos preocupa
m = media de la distribución de la variable aleatoria
s = desviación estándar de la distribución
z = número de desviaciones estándar que hay desde x a la media de la distribución.
LIP
94
Benemérita Universidad Autónoma de Puebla
CONCLUSIONES
El presente trabajo, es un sistema que será de gran utilidad y apoyo para todos
aquellos usuarios que estén interesados en aprender un primer curso de probabilidad.
La metodología que se siguió en el desarrollo de este sistema, fue trabajar por
módulos cada parte del sistema. Ya que es mejor y mucho mas fácil trabajar de esta forma,
como lo menciona la frase “Divide y Vencerás”.
Cada una de las estructuras de datos que se utilizaron en el desarrollo y culminación
de este sistema fueron las siguientes:
Procedimientos y funciones
Arreglo unidimensionales.
Arreglo de Controles.
Matrices.
Formularios.
Eventos
Métodos
Módulos Estándar.
LIP es un sistema que como se ha podido observar, se encuentra en un nivel
aceptable, fácil de instalar y usar debido a su interfaz grafica, gracias a sus diferentes
menús interactivos con los que cuenta que harán que el usuario se sienta guiado para saber
que acciones realizará o ejecutará en cada momento, y a su fácil acceso que tienen los
usuarios para analizar cada uno de los temas propuestos en él.
Este sistema trabaja con distribuciones discretas y continuas, grafica todos lo
resultados obtenidos de cada una de ellas con 4 diferentes tipos de graficas, según sea el
LIP
95
Benemérita Universidad Autónoma de Puebla
caso. También se obtuvieron buenos resultados acerca de las simulaciones desarrolladas en
este sistema como estaba contemplado en el análisis del mismo.
Es un laboratorio todavía modesto, que puede mejorarse todavía más, agregando
algunas o todas las mejoras mencionadas en el capítulo 3, u otras que más adelante se
quisieran incorporar.
Finalmente podemos concluir, que las nuevas herramientas de programación como
lo fue en este caso Visual Basic 6 son de gran utilidad para lograr concluir con éxito el
objetivo principal acerca de todas las funciones que realiza este sistema.
Recomendaciones
Se recomienda que los datos de entrada para los temas de permutación,
combinatoria, así como también en el caso de las distribuciones discretas no sean mayor a
170 , y el campo de probabilidad sea menor o igual a 1, para que la realización de
operaciones no existan conflictos y se provoque un aborto en el sistema.
También se recomienda que el software sea instalado en computadoras con
monitores de 14 pulgadas o superiores, ya que de otra manera podría no tener óptimas
interfaces del software. Además también se recomienda procesador Pentium II a 460 Mhz o
superior para tener un mejor desempeño en el tema de simulaciones.
LIP
96
Benemérita Universidad Autónoma de Puebla
BIBLIOGRAFÍA
Libros
¾William Mendenhall. “ Estadística Matemática con aplicaciones, 2ª Edición.”
Grupo Editorial Iberoamericana.
¾William Mendenhall. “ Probabilidad y Estadística para Ingeniería y Ciencias,
4ª Edición.” Prentice Hall Hispanoamericana.
¾Paul L Meyer. “Probabilidad Y Aplicaciones Estadísticas.” Editorial
Addisson Wesley.
¾Deitel and Deitel. “ Como Programar en C/C++, 2ª Edición.” Editorial:
Prentice Hall.
¾Nathan Gurewich, Ori Gurewich. “Master Visual Basic 4, 2ª Edition.”
Editorial: Sams Publishing.
¾José Domínguez Alconchel. “Super Utilidades para Visual Basic, 1ª
Edición.” Editorial Mc Graw Hill.
¾Baltazar B. Birnios, Mariano N. Birnios. “ Creación de Aplicaciones
Multimedia con Visual Basic, 2ª Edición.” MP Ediciones.
LIP
97
Benemérita Universidad Autónoma de Puebla
Otras Referencias:
¾Douglas C. Montgomery. “ Probabilidad y Estadística aplicadas a la
Ingeniería.” Mc. Graw Hill
¾Murray R Spiegel “ Probabilidad y Estadística, 1ª Edición.”Editorial Mc Graw
Hill.
Artículos en Internet
http://delta.cs.cinvestav.mx/~mcintosh/oldweb/s1998/alejandro/node4.html
aplicación del método de Poisson para el calculo de las burbujas en los autómatas celulares
http://www.aulanet.uniovi.es/publicaciones/documentos/XIVAsepeltOviedo/LosRetos.htm
AULANET pagina sobre un aula virtual.
ftp://ftp.uv.es/mirror4/lejarza/hipestat2.exe
Software que modela algunas distribuciones de probabilidad y estadística.
http://www.math.uah.edu/stat/index.html
Modelado de funciones de probabilidad y experimentos aleatorios.
LIP
98
Descargar