implementaciÓn de una calculadora …148.206.53.84/tesiuami/uami14436.pdf · siempre que sea...

83
UNIDAD IZTAPALAPA CIENCIAS BÁSICAS E INGENIERÍA IMPLEMENTACIÓN DE UNA CALCULADORA INTERVALAR EN EL LENGUAJE DE PROGRAMACIÓN VISUALBASIC .NET QUE PARA OBTENER EL GRADO DE LICENCIADO EN COMPUTACIÓN PRESENTAN: MIREYA GUTIÉRREZ BENITEZ MARIA EUGENIA LEÓN MONDRAGÓN ASESOR: DR. BALTAZAR AGUIRRE HERNÁNDEZ México, D.F., Enero 2008

Upload: trandang

Post on 08-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

U N I D A D I Z T A P A L A P A

C I E N C I A S B Aacute S I C A S E I N G E N I E R Iacute A

IMPLEMENTACIOacuteN DE UNA CALCULADORA INTERVALAR EN EL LENGUAJE

DE PROGRAMACIOacuteN VISUALBASIC NET

QUE PARA OBTENER EL GRADO DE LICENCIADO EN COMPUTACIOacuteN

PRESENTAN

MIREYA GUTIEacuteRREZ BENITEZ MARIA EUGENIA LEOacuteN MONDRAGOacuteN

ASESOR

DR BALTAZAR AGUIRRE HERNAacuteNDEZ

Meacutexico DF Enero 2008

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

1

I N D I C E

Paacuteg

Introduccioacuten 2 Capiacutetulo 1 Anaacutelisis Intervalar

11 Resentildea Histoacuterica 3 12 Aplicaciones de Anaacutelisis Intervalar 4 13 Necesidad de los Intervalos 4

Capiacutetulo 2 Lenguaje de Programacioacuten Utilizado en el Proyecto

21 Especificacioacuten del lenguaje Visual BasicNet 6 22 Porque usar Visual BasicNet 6 23 Punto Flotante en Visual BasicNet 8

Capiacutetulo 3 Desarrollo 31 Esquema Funcional Baacutesico 10 32 Rutinas Funcionales 10 33 Funciones Auxiliares 12

Capiacutetulo 4 41 Coacutedigo Fuente de la Calculadora Intervalar en

Lenguaje de Programacioacuten Visual BasicNet

13 Apeacutendice

I Instructivo de Instalacioacuten y Operacioacuten de la Calculadora Intervalar

II Ejemplos de las Pantallas de la Calculadora Intervalar

51 73

Conclusiones 79 Referencias 80

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

2

INTRODUCCIOacuteN El objetivo de este trabajo es disentildear e implementar una calculadora intervalar que funcione para resolver operaciones aritmeacuteticas intervalares Es por ello que su desarrollo se llevaraacute a cabo en un modo graacutefico amigable para el usuario como lo es el lenguaje de programacioacuten Visual BasicNet

Esta calculadora se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones baacutesicas con intervalos reales

Es bien conocido que los resultados numeacutericos son en general resultados estimados procedentes de alguna medida o computacioacuten y los simples nuacutemeros reales si bien ofrecen un soporte loacutegico para la construccioacuten de modelos de sistemas fiacutesicos son incapaces de representar alguacuten tipo de informacioacuten numeacuterica

En la cultura popular se acostumbra decir ldquoLa computadora no se equivoca si fue hecho por una computadora esta correctordquo Este pensamiento es totalmente erroacuteneo puesto que caacutelculos sencillos realizados en computadoras pueden contener errores que comprometen los resultados por lo tanto caacutelculos sencillos pueden mostrar los errores en los caacutelculos efectuados en una computadora Si observamos la siguiente suma 1050 +812 -1050 +1035 +511 -1035 El valor exacto obtenido por simplificacioacuten es 1323 Pero estos nuacutemeros cuando sumados en una calculadora sencilla producen como resultado el valor cero Este error surge porque la unidad de punto flotante de las calculadoras maacutes simples no es capaz de operar con el gran intervalo de diacutegitos requeridos para ese caacutelculo [2 5] Cuando las matemaacuteticas dejan de estudiar un problema a nivel teoacuterico y pasan a su ejecucioacuten praacutectica el sistema de los nuacutemeros reales pierde gran parte del atractivo que teoacutericamente poseiacutea Al tratar un problema teoacuterico podemos admitir cualquier nuacutemero real tenga o no una cantidad ilimitada de cifras pero al descender al terreno praacutectico dicho valor deberaacute plasmarse en alguna cantidad concreta Como resulta imposible trabajar con un conjunto de infinitas cifras la realidad obliga a trabajar con nuacutemeros codificados con un nuacutemero finito de ellas Los sistemas de nuacutemeros codificados que se utilizan en la praacutectica constituyen la escala digital El problema se mantiene cuando buscamos nuacutemeros reales resultado de aplicar operaciones aritmeacuteticas a valores numeacutericos en una escala digital Lo que resulta evidente es que todo nuacutemero real siempre que esteacute dentro de unos liacutemites adecuados puede acotarse superior e inferiormente por medio de marcas de una escala digital

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

3

CAPIacuteTULO 1

ANAacuteLISIS INTERVALAR

1 Resentildea Histoacuterica En 1914 Norbert Wiener fue una de las primeras personas a utilizar intervalos para describir resultados de mediciones de distancias y de tiempo Tambien Burkill en 1924 y Young en 1931 describen una forma aritmeacutetica intervalar No obstante los primeros registros de trabajos independientes se deben a publicaciones de PS Dwyer en 1951 M Warmus en 1956 T Sunaga en 1958 y R E Moore en 1959 [Ver paacutegina Web httpimaudgedu~sainzdoctor_int1pdf] Pero fueron los artiacuteculos de Moore y en particular su monografiacutea de 1966 donde introduce la matemaacutetica intervalar por lo tanto Moore es asiacute justificadamente llamado el padre de la matemaacutetica intervalar no obstante han sido publicados mas de 2000 artiacuteculos e informes sobre el anaacutelisis intervalar Esta rama de la matemaacutetica que se ha desarrollado desde entonces fue propuesta en 1974 por Leslie Fox combinando diferentes aacutereas como aritmeacutetica intervalar anaacutelisis intervalar topologiacutea intervalar y aacutelgebra intervalar entre otras El uso de la matemaacutetica intervalar sufrioacute criacuteticas en funcioacuten de dos problemas principales los cuales se resumen en que muchas veces pueden resultar intervalos pesimistas o sea demasiado grandes que no poseen mucha informacioacuten sobre el resultado gastaacutendose mucho tiempo de maacutequina en su proceso Estas dos criacuteticas fueron faacutecilmente refutadas una vez que con la aritmeacutetica avanzada los resultados son producidos con maacutexima exactitud Y en cuanto al tiempo de procesamiento esto depende de la forma en que es hecha la implementacioacuten El Anaacutelisis Intervalar elabora una aritmeacutetica intervalar garantizando que las operaciones intervalares esteacuten definidas de modo consistente tanto si las cotas de los resultados deben redondearse en una determinada escala digital como si pueden tomar un valor real cualquiera El redondeo de las operaciones intervalares es siempre un redondeo externo Se denota por I(R) el conjunto de los intervalos que tienen como extremos a nuacutemeros reales Sin embargo I(R) tiene deficiencias muy significativas no solo desde el punto de vista loacutegico-semaacutentico sino cuando se trata de resolver problemas que llevan asociados modos de seleccioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

4

La representacioacuten de incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma semaacutentica representando las magnitudes o paraacutemetros desconocidos mediante intervalos 12 Aplicaciones del Anaacutelisis Intervalar El acceso a la tecnologiacutea de intervalos posibilita el desarrollo de metodologiacuteas que permiten acometer nuevos problemas en praacutecticamente todos los aacutembitos del Disentildeo y la Produccioacuten Industrial Concretamente como campos de aplicacioacuten inmediata podemos destacar Desarrollo de sistemas de control desarrollo de sistemas CAD herramientas para la simulacioacuten virtual de medios y liacuteneas de produccioacuten procesamiento de la informacioacuten para la monitorizacioacuten diagnoacutestico de fallos y mantenimiento en liacutenea automatizacioacuten avanzada etc La representacioacuten de la incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma sistemaacutetica representando las magnitudes o paraacutemetros desconocidos mediante intervalos Las herramientas basadas en el anaacutelisis de intervalos permiten la resolucioacuten de problemas de optimizacioacuten y satisfaccioacuten de restricciones en el aacutembito de la estimacioacuten de estados y paraacutemetros el disentildeo de controladores robustos y el guiado y planificacioacuten de trayectorias de robots Otras aplicaciones del anaacutelisis intervalar son El control robusto de sistemas intervalares disentildeo de controladores robustos con intervalos control digital robusto con incertidumbre control predictivo robusto con intervalos 13 Necesidad de los Intervalos Lo que siacute ofrece el conjunto R de los nuacutemeros reales es un soporte loacutegico a los modelos sobre fenoacutemenos reales que tratan con medidas supuestamente objetivas de magnitudes supuestamente contiacutenuas Sin embargo las operaciones praacutecticas de medida o de caacutelculo de magnitudes de R soacutelo pueden acotar un intervalo que daacute la maacutexima identificacioacuten operacional posible del valor medido o calculado La utilizacioacuten del conjunto de intervalos sobre la recta real I (R) permitiraacute manejar los sistemas fiacutesicos con modelos numeacutericos sin necesidad de hacer abstraccioacuten del hecho inevitable de la indeterminacioacuten asociada a los procesos de medida y caacutelculo Los intervalos permiten 1 La manipulacioacuten de errores de truncamiento

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 2: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

1

I N D I C E

Paacuteg

Introduccioacuten 2 Capiacutetulo 1 Anaacutelisis Intervalar

11 Resentildea Histoacuterica 3 12 Aplicaciones de Anaacutelisis Intervalar 4 13 Necesidad de los Intervalos 4

Capiacutetulo 2 Lenguaje de Programacioacuten Utilizado en el Proyecto

21 Especificacioacuten del lenguaje Visual BasicNet 6 22 Porque usar Visual BasicNet 6 23 Punto Flotante en Visual BasicNet 8

Capiacutetulo 3 Desarrollo 31 Esquema Funcional Baacutesico 10 32 Rutinas Funcionales 10 33 Funciones Auxiliares 12

Capiacutetulo 4 41 Coacutedigo Fuente de la Calculadora Intervalar en

Lenguaje de Programacioacuten Visual BasicNet

13 Apeacutendice

I Instructivo de Instalacioacuten y Operacioacuten de la Calculadora Intervalar

II Ejemplos de las Pantallas de la Calculadora Intervalar

51 73

Conclusiones 79 Referencias 80

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

2

INTRODUCCIOacuteN El objetivo de este trabajo es disentildear e implementar una calculadora intervalar que funcione para resolver operaciones aritmeacuteticas intervalares Es por ello que su desarrollo se llevaraacute a cabo en un modo graacutefico amigable para el usuario como lo es el lenguaje de programacioacuten Visual BasicNet

Esta calculadora se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones baacutesicas con intervalos reales

Es bien conocido que los resultados numeacutericos son en general resultados estimados procedentes de alguna medida o computacioacuten y los simples nuacutemeros reales si bien ofrecen un soporte loacutegico para la construccioacuten de modelos de sistemas fiacutesicos son incapaces de representar alguacuten tipo de informacioacuten numeacuterica

En la cultura popular se acostumbra decir ldquoLa computadora no se equivoca si fue hecho por una computadora esta correctordquo Este pensamiento es totalmente erroacuteneo puesto que caacutelculos sencillos realizados en computadoras pueden contener errores que comprometen los resultados por lo tanto caacutelculos sencillos pueden mostrar los errores en los caacutelculos efectuados en una computadora Si observamos la siguiente suma 1050 +812 -1050 +1035 +511 -1035 El valor exacto obtenido por simplificacioacuten es 1323 Pero estos nuacutemeros cuando sumados en una calculadora sencilla producen como resultado el valor cero Este error surge porque la unidad de punto flotante de las calculadoras maacutes simples no es capaz de operar con el gran intervalo de diacutegitos requeridos para ese caacutelculo [2 5] Cuando las matemaacuteticas dejan de estudiar un problema a nivel teoacuterico y pasan a su ejecucioacuten praacutectica el sistema de los nuacutemeros reales pierde gran parte del atractivo que teoacutericamente poseiacutea Al tratar un problema teoacuterico podemos admitir cualquier nuacutemero real tenga o no una cantidad ilimitada de cifras pero al descender al terreno praacutectico dicho valor deberaacute plasmarse en alguna cantidad concreta Como resulta imposible trabajar con un conjunto de infinitas cifras la realidad obliga a trabajar con nuacutemeros codificados con un nuacutemero finito de ellas Los sistemas de nuacutemeros codificados que se utilizan en la praacutectica constituyen la escala digital El problema se mantiene cuando buscamos nuacutemeros reales resultado de aplicar operaciones aritmeacuteticas a valores numeacutericos en una escala digital Lo que resulta evidente es que todo nuacutemero real siempre que esteacute dentro de unos liacutemites adecuados puede acotarse superior e inferiormente por medio de marcas de una escala digital

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

3

CAPIacuteTULO 1

ANAacuteLISIS INTERVALAR

1 Resentildea Histoacuterica En 1914 Norbert Wiener fue una de las primeras personas a utilizar intervalos para describir resultados de mediciones de distancias y de tiempo Tambien Burkill en 1924 y Young en 1931 describen una forma aritmeacutetica intervalar No obstante los primeros registros de trabajos independientes se deben a publicaciones de PS Dwyer en 1951 M Warmus en 1956 T Sunaga en 1958 y R E Moore en 1959 [Ver paacutegina Web httpimaudgedu~sainzdoctor_int1pdf] Pero fueron los artiacuteculos de Moore y en particular su monografiacutea de 1966 donde introduce la matemaacutetica intervalar por lo tanto Moore es asiacute justificadamente llamado el padre de la matemaacutetica intervalar no obstante han sido publicados mas de 2000 artiacuteculos e informes sobre el anaacutelisis intervalar Esta rama de la matemaacutetica que se ha desarrollado desde entonces fue propuesta en 1974 por Leslie Fox combinando diferentes aacutereas como aritmeacutetica intervalar anaacutelisis intervalar topologiacutea intervalar y aacutelgebra intervalar entre otras El uso de la matemaacutetica intervalar sufrioacute criacuteticas en funcioacuten de dos problemas principales los cuales se resumen en que muchas veces pueden resultar intervalos pesimistas o sea demasiado grandes que no poseen mucha informacioacuten sobre el resultado gastaacutendose mucho tiempo de maacutequina en su proceso Estas dos criacuteticas fueron faacutecilmente refutadas una vez que con la aritmeacutetica avanzada los resultados son producidos con maacutexima exactitud Y en cuanto al tiempo de procesamiento esto depende de la forma en que es hecha la implementacioacuten El Anaacutelisis Intervalar elabora una aritmeacutetica intervalar garantizando que las operaciones intervalares esteacuten definidas de modo consistente tanto si las cotas de los resultados deben redondearse en una determinada escala digital como si pueden tomar un valor real cualquiera El redondeo de las operaciones intervalares es siempre un redondeo externo Se denota por I(R) el conjunto de los intervalos que tienen como extremos a nuacutemeros reales Sin embargo I(R) tiene deficiencias muy significativas no solo desde el punto de vista loacutegico-semaacutentico sino cuando se trata de resolver problemas que llevan asociados modos de seleccioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

4

La representacioacuten de incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma semaacutentica representando las magnitudes o paraacutemetros desconocidos mediante intervalos 12 Aplicaciones del Anaacutelisis Intervalar El acceso a la tecnologiacutea de intervalos posibilita el desarrollo de metodologiacuteas que permiten acometer nuevos problemas en praacutecticamente todos los aacutembitos del Disentildeo y la Produccioacuten Industrial Concretamente como campos de aplicacioacuten inmediata podemos destacar Desarrollo de sistemas de control desarrollo de sistemas CAD herramientas para la simulacioacuten virtual de medios y liacuteneas de produccioacuten procesamiento de la informacioacuten para la monitorizacioacuten diagnoacutestico de fallos y mantenimiento en liacutenea automatizacioacuten avanzada etc La representacioacuten de la incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma sistemaacutetica representando las magnitudes o paraacutemetros desconocidos mediante intervalos Las herramientas basadas en el anaacutelisis de intervalos permiten la resolucioacuten de problemas de optimizacioacuten y satisfaccioacuten de restricciones en el aacutembito de la estimacioacuten de estados y paraacutemetros el disentildeo de controladores robustos y el guiado y planificacioacuten de trayectorias de robots Otras aplicaciones del anaacutelisis intervalar son El control robusto de sistemas intervalares disentildeo de controladores robustos con intervalos control digital robusto con incertidumbre control predictivo robusto con intervalos 13 Necesidad de los Intervalos Lo que siacute ofrece el conjunto R de los nuacutemeros reales es un soporte loacutegico a los modelos sobre fenoacutemenos reales que tratan con medidas supuestamente objetivas de magnitudes supuestamente contiacutenuas Sin embargo las operaciones praacutecticas de medida o de caacutelculo de magnitudes de R soacutelo pueden acotar un intervalo que daacute la maacutexima identificacioacuten operacional posible del valor medido o calculado La utilizacioacuten del conjunto de intervalos sobre la recta real I (R) permitiraacute manejar los sistemas fiacutesicos con modelos numeacutericos sin necesidad de hacer abstraccioacuten del hecho inevitable de la indeterminacioacuten asociada a los procesos de medida y caacutelculo Los intervalos permiten 1 La manipulacioacuten de errores de truncamiento

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 3: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

2

INTRODUCCIOacuteN El objetivo de este trabajo es disentildear e implementar una calculadora intervalar que funcione para resolver operaciones aritmeacuteticas intervalares Es por ello que su desarrollo se llevaraacute a cabo en un modo graacutefico amigable para el usuario como lo es el lenguaje de programacioacuten Visual BasicNet

Esta calculadora se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones baacutesicas con intervalos reales

Es bien conocido que los resultados numeacutericos son en general resultados estimados procedentes de alguna medida o computacioacuten y los simples nuacutemeros reales si bien ofrecen un soporte loacutegico para la construccioacuten de modelos de sistemas fiacutesicos son incapaces de representar alguacuten tipo de informacioacuten numeacuterica

En la cultura popular se acostumbra decir ldquoLa computadora no se equivoca si fue hecho por una computadora esta correctordquo Este pensamiento es totalmente erroacuteneo puesto que caacutelculos sencillos realizados en computadoras pueden contener errores que comprometen los resultados por lo tanto caacutelculos sencillos pueden mostrar los errores en los caacutelculos efectuados en una computadora Si observamos la siguiente suma 1050 +812 -1050 +1035 +511 -1035 El valor exacto obtenido por simplificacioacuten es 1323 Pero estos nuacutemeros cuando sumados en una calculadora sencilla producen como resultado el valor cero Este error surge porque la unidad de punto flotante de las calculadoras maacutes simples no es capaz de operar con el gran intervalo de diacutegitos requeridos para ese caacutelculo [2 5] Cuando las matemaacuteticas dejan de estudiar un problema a nivel teoacuterico y pasan a su ejecucioacuten praacutectica el sistema de los nuacutemeros reales pierde gran parte del atractivo que teoacutericamente poseiacutea Al tratar un problema teoacuterico podemos admitir cualquier nuacutemero real tenga o no una cantidad ilimitada de cifras pero al descender al terreno praacutectico dicho valor deberaacute plasmarse en alguna cantidad concreta Como resulta imposible trabajar con un conjunto de infinitas cifras la realidad obliga a trabajar con nuacutemeros codificados con un nuacutemero finito de ellas Los sistemas de nuacutemeros codificados que se utilizan en la praacutectica constituyen la escala digital El problema se mantiene cuando buscamos nuacutemeros reales resultado de aplicar operaciones aritmeacuteticas a valores numeacutericos en una escala digital Lo que resulta evidente es que todo nuacutemero real siempre que esteacute dentro de unos liacutemites adecuados puede acotarse superior e inferiormente por medio de marcas de una escala digital

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

3

CAPIacuteTULO 1

ANAacuteLISIS INTERVALAR

1 Resentildea Histoacuterica En 1914 Norbert Wiener fue una de las primeras personas a utilizar intervalos para describir resultados de mediciones de distancias y de tiempo Tambien Burkill en 1924 y Young en 1931 describen una forma aritmeacutetica intervalar No obstante los primeros registros de trabajos independientes se deben a publicaciones de PS Dwyer en 1951 M Warmus en 1956 T Sunaga en 1958 y R E Moore en 1959 [Ver paacutegina Web httpimaudgedu~sainzdoctor_int1pdf] Pero fueron los artiacuteculos de Moore y en particular su monografiacutea de 1966 donde introduce la matemaacutetica intervalar por lo tanto Moore es asiacute justificadamente llamado el padre de la matemaacutetica intervalar no obstante han sido publicados mas de 2000 artiacuteculos e informes sobre el anaacutelisis intervalar Esta rama de la matemaacutetica que se ha desarrollado desde entonces fue propuesta en 1974 por Leslie Fox combinando diferentes aacutereas como aritmeacutetica intervalar anaacutelisis intervalar topologiacutea intervalar y aacutelgebra intervalar entre otras El uso de la matemaacutetica intervalar sufrioacute criacuteticas en funcioacuten de dos problemas principales los cuales se resumen en que muchas veces pueden resultar intervalos pesimistas o sea demasiado grandes que no poseen mucha informacioacuten sobre el resultado gastaacutendose mucho tiempo de maacutequina en su proceso Estas dos criacuteticas fueron faacutecilmente refutadas una vez que con la aritmeacutetica avanzada los resultados son producidos con maacutexima exactitud Y en cuanto al tiempo de procesamiento esto depende de la forma en que es hecha la implementacioacuten El Anaacutelisis Intervalar elabora una aritmeacutetica intervalar garantizando que las operaciones intervalares esteacuten definidas de modo consistente tanto si las cotas de los resultados deben redondearse en una determinada escala digital como si pueden tomar un valor real cualquiera El redondeo de las operaciones intervalares es siempre un redondeo externo Se denota por I(R) el conjunto de los intervalos que tienen como extremos a nuacutemeros reales Sin embargo I(R) tiene deficiencias muy significativas no solo desde el punto de vista loacutegico-semaacutentico sino cuando se trata de resolver problemas que llevan asociados modos de seleccioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

4

La representacioacuten de incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma semaacutentica representando las magnitudes o paraacutemetros desconocidos mediante intervalos 12 Aplicaciones del Anaacutelisis Intervalar El acceso a la tecnologiacutea de intervalos posibilita el desarrollo de metodologiacuteas que permiten acometer nuevos problemas en praacutecticamente todos los aacutembitos del Disentildeo y la Produccioacuten Industrial Concretamente como campos de aplicacioacuten inmediata podemos destacar Desarrollo de sistemas de control desarrollo de sistemas CAD herramientas para la simulacioacuten virtual de medios y liacuteneas de produccioacuten procesamiento de la informacioacuten para la monitorizacioacuten diagnoacutestico de fallos y mantenimiento en liacutenea automatizacioacuten avanzada etc La representacioacuten de la incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma sistemaacutetica representando las magnitudes o paraacutemetros desconocidos mediante intervalos Las herramientas basadas en el anaacutelisis de intervalos permiten la resolucioacuten de problemas de optimizacioacuten y satisfaccioacuten de restricciones en el aacutembito de la estimacioacuten de estados y paraacutemetros el disentildeo de controladores robustos y el guiado y planificacioacuten de trayectorias de robots Otras aplicaciones del anaacutelisis intervalar son El control robusto de sistemas intervalares disentildeo de controladores robustos con intervalos control digital robusto con incertidumbre control predictivo robusto con intervalos 13 Necesidad de los Intervalos Lo que siacute ofrece el conjunto R de los nuacutemeros reales es un soporte loacutegico a los modelos sobre fenoacutemenos reales que tratan con medidas supuestamente objetivas de magnitudes supuestamente contiacutenuas Sin embargo las operaciones praacutecticas de medida o de caacutelculo de magnitudes de R soacutelo pueden acotar un intervalo que daacute la maacutexima identificacioacuten operacional posible del valor medido o calculado La utilizacioacuten del conjunto de intervalos sobre la recta real I (R) permitiraacute manejar los sistemas fiacutesicos con modelos numeacutericos sin necesidad de hacer abstraccioacuten del hecho inevitable de la indeterminacioacuten asociada a los procesos de medida y caacutelculo Los intervalos permiten 1 La manipulacioacuten de errores de truncamiento

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 4: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

3

CAPIacuteTULO 1

ANAacuteLISIS INTERVALAR

1 Resentildea Histoacuterica En 1914 Norbert Wiener fue una de las primeras personas a utilizar intervalos para describir resultados de mediciones de distancias y de tiempo Tambien Burkill en 1924 y Young en 1931 describen una forma aritmeacutetica intervalar No obstante los primeros registros de trabajos independientes se deben a publicaciones de PS Dwyer en 1951 M Warmus en 1956 T Sunaga en 1958 y R E Moore en 1959 [Ver paacutegina Web httpimaudgedu~sainzdoctor_int1pdf] Pero fueron los artiacuteculos de Moore y en particular su monografiacutea de 1966 donde introduce la matemaacutetica intervalar por lo tanto Moore es asiacute justificadamente llamado el padre de la matemaacutetica intervalar no obstante han sido publicados mas de 2000 artiacuteculos e informes sobre el anaacutelisis intervalar Esta rama de la matemaacutetica que se ha desarrollado desde entonces fue propuesta en 1974 por Leslie Fox combinando diferentes aacutereas como aritmeacutetica intervalar anaacutelisis intervalar topologiacutea intervalar y aacutelgebra intervalar entre otras El uso de la matemaacutetica intervalar sufrioacute criacuteticas en funcioacuten de dos problemas principales los cuales se resumen en que muchas veces pueden resultar intervalos pesimistas o sea demasiado grandes que no poseen mucha informacioacuten sobre el resultado gastaacutendose mucho tiempo de maacutequina en su proceso Estas dos criacuteticas fueron faacutecilmente refutadas una vez que con la aritmeacutetica avanzada los resultados son producidos con maacutexima exactitud Y en cuanto al tiempo de procesamiento esto depende de la forma en que es hecha la implementacioacuten El Anaacutelisis Intervalar elabora una aritmeacutetica intervalar garantizando que las operaciones intervalares esteacuten definidas de modo consistente tanto si las cotas de los resultados deben redondearse en una determinada escala digital como si pueden tomar un valor real cualquiera El redondeo de las operaciones intervalares es siempre un redondeo externo Se denota por I(R) el conjunto de los intervalos que tienen como extremos a nuacutemeros reales Sin embargo I(R) tiene deficiencias muy significativas no solo desde el punto de vista loacutegico-semaacutentico sino cuando se trata de resolver problemas que llevan asociados modos de seleccioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

4

La representacioacuten de incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma semaacutentica representando las magnitudes o paraacutemetros desconocidos mediante intervalos 12 Aplicaciones del Anaacutelisis Intervalar El acceso a la tecnologiacutea de intervalos posibilita el desarrollo de metodologiacuteas que permiten acometer nuevos problemas en praacutecticamente todos los aacutembitos del Disentildeo y la Produccioacuten Industrial Concretamente como campos de aplicacioacuten inmediata podemos destacar Desarrollo de sistemas de control desarrollo de sistemas CAD herramientas para la simulacioacuten virtual de medios y liacuteneas de produccioacuten procesamiento de la informacioacuten para la monitorizacioacuten diagnoacutestico de fallos y mantenimiento en liacutenea automatizacioacuten avanzada etc La representacioacuten de la incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma sistemaacutetica representando las magnitudes o paraacutemetros desconocidos mediante intervalos Las herramientas basadas en el anaacutelisis de intervalos permiten la resolucioacuten de problemas de optimizacioacuten y satisfaccioacuten de restricciones en el aacutembito de la estimacioacuten de estados y paraacutemetros el disentildeo de controladores robustos y el guiado y planificacioacuten de trayectorias de robots Otras aplicaciones del anaacutelisis intervalar son El control robusto de sistemas intervalares disentildeo de controladores robustos con intervalos control digital robusto con incertidumbre control predictivo robusto con intervalos 13 Necesidad de los Intervalos Lo que siacute ofrece el conjunto R de los nuacutemeros reales es un soporte loacutegico a los modelos sobre fenoacutemenos reales que tratan con medidas supuestamente objetivas de magnitudes supuestamente contiacutenuas Sin embargo las operaciones praacutecticas de medida o de caacutelculo de magnitudes de R soacutelo pueden acotar un intervalo que daacute la maacutexima identificacioacuten operacional posible del valor medido o calculado La utilizacioacuten del conjunto de intervalos sobre la recta real I (R) permitiraacute manejar los sistemas fiacutesicos con modelos numeacutericos sin necesidad de hacer abstraccioacuten del hecho inevitable de la indeterminacioacuten asociada a los procesos de medida y caacutelculo Los intervalos permiten 1 La manipulacioacuten de errores de truncamiento

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 5: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

4

La representacioacuten de incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma semaacutentica representando las magnitudes o paraacutemetros desconocidos mediante intervalos 12 Aplicaciones del Anaacutelisis Intervalar El acceso a la tecnologiacutea de intervalos posibilita el desarrollo de metodologiacuteas que permiten acometer nuevos problemas en praacutecticamente todos los aacutembitos del Disentildeo y la Produccioacuten Industrial Concretamente como campos de aplicacioacuten inmediata podemos destacar Desarrollo de sistemas de control desarrollo de sistemas CAD herramientas para la simulacioacuten virtual de medios y liacuteneas de produccioacuten procesamiento de la informacioacuten para la monitorizacioacuten diagnoacutestico de fallos y mantenimiento en liacutenea automatizacioacuten avanzada etc La representacioacuten de la incertidumbre presente en la mayoriacutea de sistemas se puede tratar de una forma sistemaacutetica representando las magnitudes o paraacutemetros desconocidos mediante intervalos Las herramientas basadas en el anaacutelisis de intervalos permiten la resolucioacuten de problemas de optimizacioacuten y satisfaccioacuten de restricciones en el aacutembito de la estimacioacuten de estados y paraacutemetros el disentildeo de controladores robustos y el guiado y planificacioacuten de trayectorias de robots Otras aplicaciones del anaacutelisis intervalar son El control robusto de sistemas intervalares disentildeo de controladores robustos con intervalos control digital robusto con incertidumbre control predictivo robusto con intervalos 13 Necesidad de los Intervalos Lo que siacute ofrece el conjunto R de los nuacutemeros reales es un soporte loacutegico a los modelos sobre fenoacutemenos reales que tratan con medidas supuestamente objetivas de magnitudes supuestamente contiacutenuas Sin embargo las operaciones praacutecticas de medida o de caacutelculo de magnitudes de R soacutelo pueden acotar un intervalo que daacute la maacutexima identificacioacuten operacional posible del valor medido o calculado La utilizacioacuten del conjunto de intervalos sobre la recta real I (R) permitiraacute manejar los sistemas fiacutesicos con modelos numeacutericos sin necesidad de hacer abstraccioacuten del hecho inevitable de la indeterminacioacuten asociada a los procesos de medida y caacutelculo Los intervalos permiten 1 La manipulacioacuten de errores de truncamiento

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 6: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

5

Por ejemplo el nuacutemero π = 3141592265 hellip isin [314 315] 2 El control automaacutetico de errores operacionales en el caacutelculo digital 3 El manejo de errores de datos fiacutesicos que provienen de medidas experimentales

Por ejemplo la constante gravitatoria g = 9807 plusmn 0027ms2 hellip isin [9780 9834] 4 La utilizacioacuten de variables de indeterminacioacuten o de variacioacuten

Por ejemplo la temperatura de una habitacioacuten durante las 24 horas del diacutea variacutea entre 18 y 25 grados entonces T= [18 25]

En la construccioacuten de I(R) propiedades esenciales se perderaacuten (por ejemplo distributividad del producto respecto la suma) y ganaraacuten (relacioacuten de inclusioacuten) de modo que la estructura numeacuterica de I(R) no seraacute en absoluto una simple completacioacuten de un conjunto numeacuterico con conservacioacuten de propiedades

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 7: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

6

CAPIacuteTULO 2

LENGUAJE DE PROGRAMACIOacuteN UTILIZADO EN EL PROYECTO

21 Especificacioacuten del lenguaje Visual BasicNet El lenguaje de programacioacuten Microsoft Visual Basic NET es un lenguaje de programacioacuten de alto nivel para Microsoft NET Framework Estaacute disentildeado para ser un lenguaje accesible y faacutecil de aprender El lenguaje de programacioacuten Visual Basic NET estaacute estrechamente relacionado con el lenguaje de programacioacuten Visual Basic pero ambos lenguajes no son exactamente iguales El lenguaje de programacioacuten Visual Basic NET posee una sintaxis similar al ingleacutes que favorece la claridad y legibilidad del coacutedigo de Visual Basic NET Siempre que sea posible se utilizan palabras o frases significativas en lugar de abreviaturas acroacutenimos o caracteres especiales Por lo general se admite una sintaxis extrantildea o innecesaria pero no es obligatoria En el lenguaje de programacioacuten Visual BasicNET es posible determinar si es necesario establecer expliacutecitamente los tipos de datos o no El establecimiento flexible de tipos aplaza una gran cantidad de la carga de comprobacioacuten de tipos hasta que haya un programa en ejecucioacuten Esto no soacutelo incluye la comprobacioacuten de tipos de las conversiones sino tambieacuten de las llamadas a meacutetodos de modo que el enlace de una llamada a un meacutetodo puede aplazarse hasta el tiempo de ejecucioacuten Puede resultar uacutetil a la hora de generar prototipos u otros programas en los que la velocidad de desarrollo tiene maacutes importancia que la velocidad de ejecucioacuten El lenguaje de programacioacuten Visual Basic NET tambieacuten proporciona una semaacutentica de establecimiento inflexible de tipos que realiza toda la comprobacioacuten de tipos en tiempo de compilacioacuten e impide el enlace en tiempo de ejecucioacuten de las llamadas a meacutetodos Esto asegura el maacuteximo rendimiento y ayuda a garantizar que las conversiones de tipos son correctas Resulta uacutetil a la hora de generar aplicaciones de produccioacuten en las que son importantes la velocidad y la correccioacuten de la ejecucioacuten 22 Porque usar Visual BasicNet

Visual BasicNET ofrece numerosas caracteriacutesticas nuevas y mejoradas como herencia interfaces y sobrecarga que lo convierten en un eficaz lenguaje de programacioacuten orientado a objetos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 8: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

7

Herencia Visual Basic NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas Las clases derivadas heredan y pueden extender las propiedades y los meacutetodos de la clase base Tambieacuten pueden reemplazar meacutetodos heredados con nuevas implementaciones De forma predeterminada todas las clases creadas con Visual Basic NET son heredables Puesto que los formularios que disentildea son realmente clases puede utilizar la herencia para definir nuevos formularios basados en formularios existentes

Sobrecarga La sobrecarga es la capacidad de definir propiedades meacutetodos o procedimientos que tengan el mismo nombre pero utilicen diferentes tipos de datos Los procedimientos sobrecargados permiten proporcionar tantas implementaciones como sean necesarias para controlar diferentes tipos de datos a la vez que se da el aspecto de un uacutenico procedimiento versaacutetil

Interfaces

Las interfaces describen las propiedades y los meacutetodos de las clases pero a diferencia de las clases no proporcionan implementaciones La instruccioacuten Interface permite declarar interfaces mientras que la instruccioacuten Implements permite escribir coacutedigo que ponga en praacutectica los elementos descritos en la interfaz

Es un lenguaje orientado a objetos y eventos que soporta encapsulacioacuten herencia y

polimorfismo

Visual Basic NET es un lenguaje para la creacioacuten de aplicaciones NET como muchos otros como C++ o C (y algunos maacutes en el futuro) Sin embargo Visual Basic NET es el lenguaje maacutes sencillo de aprender y el maacutes productivo

Visual Basic NET soporta la Programacioacuten Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos

Visual Basic permite al desarrollador crear sus propios tipos de datos

Visual BasicNET permite el control estructurado de excepciones

utilizando una versioacuten mejorada de la sintaxis TryCatchFinally compatible con otros lenguajes como C++ El control estructurado de excepciones combina una estructura de control moderna (similar a

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 9: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

8

Select Case o While) con excepciones bloques de coacutedigo protegidos y filtros El control estructurado de excepciones facilita la tarea de crear y mantener programas mediante controladores de errores soacutelidos y exhaustivos

23 Punto Flotante En Visual BasicNet

Las variables de tipo Double se almacenan como nuacutemeros IEEE de punto flotante de doble precisioacuten de 64 bits (8 bytes) con valores de ndash179769313486231570E+308 a ndash494065645841246544E-324 para nuacutemeros negativos y de 494065645841246544E-324 a 179769313486231570E+308 para nuacutemeros positivos

Nota El tipo de datos Double puede convertirse al tipo Decimal sin que se produzca un error de tipo SystemOverflowException

Si se agrega el caraacutecter de tipo R a un literal se convierte el tipo de datos del literal al tipo de datos Double Si se agrega el caraacutecter de declaracioacuten de tipo a cualquier identificador se convierte su tipo de datos al tipo Double

El tipo de datos de NET equivalente es SystemDouble

Para representar nuacutemeros de punto flotante Visual BasicNet ofrece dos tipos single y double

Tipo de Dato Tamantildeo

Rango

Desde Hasta

Double (punto flotante de doble precisioacuten)

8 bytes

-179769313486231570E+308 -494065645841246544E-324

494065645841246544E-324 179769313486231570E+308

Single (punto decimal de precision simple)

4 bytes

-34028235E+38 -1401298E-45

1401298E-45 34028235E+38

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 10: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

9

CAPIacuteTULO 3

DESARROLLO El objetivo primordial de este trabajo es implementar una aplicacioacuten que nos permita realizar operaciones entre intervalos Se trata de una Calculadora Intervalar que ayude a la solucioacuten de operaciones aritmeacuteticas entre intervalos reales La Calculadora Intervalar tiene la finalidad de dar solucioacuten a operaciones aritmeacuteticas como la Suma Resta Multiplicacioacuten y Divisioacuten para nuacutemeros reales Ademaacutes se agregoacute a la Calculadora la posibilidad de hallar el Supremo y el Infimo de acuerdo a las propiedades Reticulares del anaacutelisis Intervalar La presente aplicacioacuten fue Desarrollada en Lenguaje de Programacioacuten VisualBasic Net sobre plataforma Windows xp A continuacioacuten se muestra la Pantalla principal de nuestra Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 11: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

10

31 Esquema Funcional Baacutesico

itiraacute que el proceso del flujo ormal de los datos se lleve a cabo mediante el siguiente esquema

entre n-intervalos Y iquestCoacutemo realizar una misma operacioacuten entre n-intervalos apeacutendice I)

e cuenta con la opcioacuten de realizar operaciones aritmeacuteticas y propiedades reticulares

Muestra el resultado

2 Rutinas Funcionales

a calculadora estaacute conformada por 9 rutinas

a) Adicioacuten Intervalar

Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Se ha partido de la idea de un esquema funcional baacutesico que permn

bull Ingreso de los Datos de uno o maacutes Intervalos Para el ingreso de los datos el programa tiene la funcionalidad de ingresar 2 o mas intervalos con los cuales puede realizar operaciones entre dos intervalos n-intervalos y realizar una misma operacioacuten entre n-intervalos abriendo un archivo de Excel (Para maacutes informacioacuten veacutease iquestCoacutemo realizar una operacioacuten entre 2 intervalos iquestCoacutemo realizar varias operaciones

bull Selecciona la operacioacuten aritmeacutetica o propiedad de intervalos Para Seleccionar una

operacioacuten s

bull

3 L

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 12: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

11

b) Sustraccioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

c) Multiplicacioacuten Intervalar

Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 rArr AB = [a1 b1 a2 b2] Si a1 ge 0 y b1lt 0 le 0 rArr AB = [a2b1 a2 b2] Si a1 ge 0 y b2lt 0 rArr AB = [a2b1 a1 b2] Si a1 lt 0 le a2 y b1 ge 0 rArr AB = [a1b2 a2 b2] Si a1 lt 0 le a2 y b1 le 0 le b2 rArr AB = [min[a1b2 a2 b1] max [a1b1 a2 b2] Si a1 lt 0 le a2 y b2 lt 0 rArr AB = [a2b1 a2 b1] Si a2 lt 0 b1 ge 0 rArr AB = [a1b2 a2 b1] Si a1 lt 0 y b1 lt 0 le b2 rArr AB = [a1b2 a1 b1] Si a2 lt 0 y b2 lt 0 rArr AB = [a2b2 a1 b1]

d) Divisioacuten Intervalar

Sean A y B dos intervalos de Ireg donde A= [a1a2] y B = [b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 gt 0 y b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a1 gt 0 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b2lt 0 rArr A B = [a2 b2 a1 b1] Si a1 lt 0 lt a2 y b1 gt 0 rArr A B = [a1 b1 a2 b1] Si a1 lt 0 lt a2 y 0 isin [b1 b2] rArr A B = no definido Si a1 gt 0 y b1 lt 0 rArr A B = [a2 b2 a1 b1] Si a2 lt 0 b1 gt 0 rArr A B = [a1 b1 a2 b2] Si a2 lt 0 y 0 isin [b1 b2] rArr A B = no definido Si a2 lt 0 y b2 lt 0 rArr A B = [a2 b1 a1 b2]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 13: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

12

e) Supremo

Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior A ν B= sup(AB) = [iacutenf (a1b1) sup(a2b2)]

f) Iacutenfimo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2)

g) Propiedad Reticular

Sea M un conjunto y sea le una relacioacuten de orden parcial o total en M El sistema (M le) se llama un conjunto parcial o totalmente ordenado Un conjunto parcialmente ordenado se llama retiacuteculo si para cada par de elementos ab isin M entonces sup(ab) e iacutenf(ab) existen La definicioacuten de intervalo es vaacutelida en M Si a1 a2 isin M un intervalo A es

y designamos I(M) el conjunto de intervalos en M

h) Propiedad Reticular para el Supremo

i) Propiedad Reticular para el Iacutenfimo 33 Funciones Auxiliares Para el buen funcionamiento de las mismas se han disentildeado funciones auxiliares a las rutinas funcionales minus SolicitaIntervalo minus Miacutenimo minus Maacuteximo minus Imprime Intervalo

A= [a1a2]= x isin M | a1 le x le a2

Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 14: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

13

CAPIacuteTULO 4 41 Coacutedigo Fuente de la Calculadora Intervalar en Visual Basic Net Baacutesicamente la aplicacioacuten esta conformada por Clases Las clases son plantillas programadas que nos ayuda a definir la funcionalidad que tendraacute un objeto un objeto es el resultado de instanciar una clase entendiendo por instanciar a la accioacuten propia de crear el objeto a traveacutes de dicha clase o plantilla Asiacute dentro de la clase se definioacute las Propiedades y meacutetodos que tendraacute un objeto

Nuestra Aplicacioacuten fue construida y dividida en 4 clases principales

Clase Calculadora Intervalar Atiende la parte graacutefica y eventos desencadenados a partir de botones y menuacutes graacuteficos

Clase Anaacutelisis Intervalar En esta clase se encuentran las funciones de las operaciones intervalares a las que hemos hecho referencia anteriormente

Clase Importar Datos de Excel En esta clase se procesan datos provenientes de una hoja de Caacutelculo

Clase Configuracioacuten Se encarga de la configuracioacuten de herramientas habilitadas por el usuario como son la Deteccioacuten de errores y Recarga de resultados (ver apeacutendice I)

CLASE CALCULADORA INTERVALAR

Public Class CalculadoraIntervalar Dim ultimo_foco As Boolean Dim ax ay bx by As Boolean Dim signo_ax signo_ay signo_bx signo_by As Boolean Dim cadena_anterior As String Public dgv As New DataGridView Public CargarValor As Boolean = False Public DetErrorCoor As Boolean = False Public errores As String = Subrutina que inicializa los controles al iniciarse el programa Private Sub CalculadoraIntervalar_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeSumaChecked = True MeCE_Click(sender e) ax = False ay = False bx = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 15: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

14

by = False signo_ax = False signo_ay = False signo_bx = False signo_by = False CargarValor = False DetErrorCoor = False MyFormsConfiguracionCheckBox1Checked = True End Sub Subrutina del evento click en el boton cero que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cero_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CeroClick If ax Then MeMtb_Cor_AxAppendText(0) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(0) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(0) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(0) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton uno que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Uno_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles UnoClick If ax Then MeMtb_Cor_AxAppendText(1) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(1) MeMtb_Cor_AyFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 16: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

15

End If If bx Then MeMtb_Cor_BxAppendText(1) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(1) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton dos que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Dos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles DosClick If ax Then MeMtb_Cor_AxAppendText(2) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(2) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(2) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(2) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton tres que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Tres_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles TresClick If ax Then MeMtb_Cor_AxAppendText(3) MeMtb_Cor_AxFocus() End If If ay Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 17: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

16

MeMtb_Cor_AyAppendText(3) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(3) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(3) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cuatro que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cuatro_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CuatroClick If ax Then MeMtb_Cor_AxAppendText(4) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(4) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(4) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(4) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton cinco que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Cinco_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CincoClick If ax Then MeMtb_Cor_AxAppendText(5) MeMtb_Cor_AxFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 18: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

17

If ay Then MeMtb_Cor_AyAppendText(5) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(5) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(5) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton seis que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Seis_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles SeisClick If ax Then MeMtb_Cor_AxAppendText(6) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(6) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(6) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(6) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton siete que carga un cero en un texbox AxBx Ay By correspondiente Private Sub siete_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles sieteClick If ax Then MeMtb_Cor_AxAppendText(7)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 19: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

18

MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(7) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(7) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(7) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton ocho que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Ocho_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles OchoClick If ax Then MeMtb_Cor_AxAppendText(8) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(8) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(8) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(8) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton nueve que carga un cero en un texbox AxBx Ay By correspondiente Private Sub Nueve_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles NueveClick

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 20: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

19

If ax Then MeMtb_Cor_AxAppendText(9) MeMtb_Cor_AxFocus() End If If ay Then MeMtb_Cor_AyAppendText(9) MeMtb_Cor_AyFocus() End If If bx Then MeMtb_Cor_BxAppendText(9) MeMtb_Cor_BxFocus() End If If by Then MeMtb_Cor_ByAppendText(9) MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton punto Controla la existencia de las variantes del punto en los en los texbox Ax Ay Bx By Private Sub Punto_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles PuntoClick If ax Then If MeMtb_Cor_AxText = Then MeMtb_Cor_AxAppendText(0) Else If Not MeMtb_Cor_AxTextContains() Then MeMtb_Cor_AxAppendText() End If End If MeMtb_Cor_AxFocus() End If If ay Then If MeMtb_Cor_AyText = Then MeMtb_Cor_AyAppendText(0) Else If Not MeMtb_Cor_AyTextContains() Then MeMtb_Cor_AyAppendText() End If End If MeMtb_Cor_AyFocus() End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 21: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

20

If bx Then If MeMtb_Cor_BxText = Then MeMtb_Cor_BxAppendText(0) Else If Not MeMtb_Cor_BxTextContains() Then MeMtb_Cor_BxAppendText() End If End If MeMtb_Cor_BxFocus() End If If by Then If MeMtb_Cor_ByText = Then MeMtb_Cor_ByAppendText(0) Else If Not MeMtb_Cor_ByTextContains() Then MeMtb_Cor_ByAppendText() End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton menos Controla la existencia de las variantes del signo menos en los en los texbox Ax Ay Bx By Private Sub MasMenos_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MasMenosClick If ax Then If Not MeMtb_Cor_AxText = Then If signo_ax = True Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = False Else MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength signo_ax = True End If End If MeMtb_Cor_AxFocus() End If If ay Then If Not MeMtb_Cor_AyText = Then If signo_ay = True Then

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 22: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

21

MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = False Else MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength signo_ay = True End If End If MeMtb_Cor_AyFocus() End If If bx Then If Not MeMtb_Cor_BxText = Then If signo_bx = True Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = False Else MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength signo_bx = True End If End If MeMtb_Cor_BxFocus() End If If by Then If Not MeMtb_Cor_ByText = Then If signo_by = True Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = False Else MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength signo_by = True End If End If MeMtb_Cor_ByFocus() End If End Sub Subrutina del evento click en el boton retroceso Borra la existencia de numeros de derecha a izquierdalas en los

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 23: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

22

en los texbox Ax Ay Bx By Private Sub Retroceso_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles RetrocesoClick If ax Then If Not MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(MeMtb_Cor_AxTextLength - 1 1) End If MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End If If ay Then If Not MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(MeMtb_Cor_AyTextLength - 1 1) End If MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End If If bx Then If Not MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(MeMtb_Cor_BxTextLength - 1 1) End If MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End If If by Then If Not MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(MeMtb_Cor_ByTextLength - 1 1) End If MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End If End Sub Subrutina del evento click en el boton CE borra el contenido de los texbox Ax Ay Bx By Private Sub CE_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CEClick MeMtb_Cor_AxText = MeMtb_Cor_AxFocus() MeMtb_Cor_AyText =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 24: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

23

MeMtb_Cor_BxText = MeMtb_Cor_ByText = End Sub Subrutina del evento click en el boton cerrar cierra la ventana principal Private Sub Cerrar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CerrarClick MeClose() End Sub Subrutina del evento click en el boton aceptar Procesa la opcion seleccionada en los radiobutton de las diferentes operaciones a realizar Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick MeMtb_Cor_AxCausesValidation = True MeMtb_Cor_AyCausesValidation = True MeMtb_Cor_BxCausesValidation = True MeMtb_Cor_ByCausesValidation = True Dim error1 As Boolean = False If Compara(Val(MeMtb_Cor_AxTextToString) Val(MeMtb_Cor_AyTextToString)) Then MessageBoxShow(Ax debe ser Menor igual a Ay MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() error1 = True End If If Compara(Val(MeMtb_Cor_BxTextToString) Val(MeMtb_Cor_ByTextToString)) Then MessageBoxShow(Bx debe ser Menor igual a By MessageBoxButtonsOK MessageBoxIconError MessageBoxDefaultButtonButton1) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() error1 = True End If If Not error1 Then If MeValidateChildren() Then Dim analisis As New Analisis_Intervalar Dim x1 As Double = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 25: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

24

Dim y1 As Double = 0 Dim x2 As Double = 0 Dim y2 As Double = 0 MeLabel1ForeColor = ColorRed x1 = MeMtb_Cor_AxText y1 = MeMtb_Cor_BxText x2 = MeMtb_Cor_AyText y2 = MeMtb_Cor_ByText If MeSumaChecked Then MeLabel1Text = A+B analisisAdicion_Intervalar(x1 y1 x2 y2) End If If MeRestaChecked Then MeLabel1Text = A-B analisisSub_Intervalar(x1 y1 x2 y2) End If If MeMultiplicacionChecked Then MeLabel1Text = AB analisisMult_Intervalar(x1 y1 x2 y2) End If If MeDivisionChecked Then MeLabel1Text = AB analisisDiv_Intervalar(x1 y1 x2 y2) End If If MeSupremoeChecked Then MeLabel1Text = Supremo analisisSupremo(x1 y1 x2 y2) End If If MeInfimoChecked Then MeLabel1Text = Infimo analisisInfimo(x1 y1 x2 y2) End If If MeSemireticuloSuperiorChecked Then MeLabel1Text = SemireticuloSup analisissemiret_supremo(x1 y1 x2 y2) End If If MeSemireticuloInferiosChecked Then MeLabel1Text = SemireticuloInf analisissemiret_infimo(x1 y1 x2 y2) End If MeResulatado_xText = analisisXr MeResulatado_yText = analisisYr IF que se encarga de verificar la opcioacuten cargar resultado en intervalo A If MeCargarValor = True Then MeMtb_Cor_AxText = MeResulatado_xText MeMtb_Cor_AyText = MeResulatado_yText

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 26: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

25

MeMtb_Cor_BxText = 0 MeMtb_Cor_ByText = 0 MeMtb_Cor_BxSelectAll() MeMtb_Cor_BxFocus() Else MeMtb_Cor_AxSelectAll() MeMtb_Cor_AxFocus() End If If Meerrores = Division sobre cero Then If MeMtb_Cor_BxText = 0 Then MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelect() End If If MeMtb_Cor_ByText = 0 Then MeMtb_Cor_ByFocus() MeMtb_Cor_BySelect() End If End If End If End If MeMtb_Cor_AxCausesValidation = False MeMtb_Cor_AyCausesValidation = False MeMtb_Cor_BxCausesValidation = False MeMtb_Cor_ByCausesValidation = False End Sub Subrutina que controla el click de la opcion del menu importar archivo de excel Private Sub ImportarArchivoDeExcelToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ImportarArchivoDeExcelToolStripMenuItemClick MyFormsImportar_Datos_de_ExcelShowDialog() End Sub Subrutina que controla el click de la opcion del menu configuracion Private Sub ConfiguracioacutenToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ConfiguracioacutenToolStripMenuItemClick MyFormsConfiguracionShowDialog() End Sub Subrutina que maneja el evento hacer click en el texbox

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 27: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

26

de la coordenada Ax Private Sub Mtb_Cor_Ax_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxClick MeMtb_Cor_AxSelectionStart = MeMtb_Cor_AxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyClick MeMtb_Cor_AySelectionStart = MeMtb_Cor_AyTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada Bx Private Sub Mtb_Cor_Bx_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxClick MeMtb_Cor_BxSelectionStart = MeMtb_Cor_BxTextLength End Sub Subrutina que maneja el evento hacer click en el texbox de la coordenada By Private Sub Mtb_Cor_By_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByClick MeMtb_Cor_BySelectionStart = MeMtb_Cor_ByTextLength End Sub Subrutina que maneja el evento hacer click Private Sub ContenidoToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ContenidoToolStripMenuItemClick MyFormsAcerca_de_la_calculadoraShowDialog() End Sub Subrutina que maneja el evento hacer click Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AcercaDeToolStripMenuItemClick MyFormsAboutBox1ShowDialog() End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 28: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

27

Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ax Private Sub Mtb_Cor_Ax_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AxValidating If Not IsNumeric(MeMtb_Cor_AxText) Then If MeMtb_Cor_AxTextLength = 0 Then MessageBoxShow(Coordenada Ax no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ax contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AxFocus() MeMtb_Cor_AxSelectAll() End If eCancel = True Else MeMtb_Cor_AxText = Valida_Caracter_Al_final(MeMtb_Cor_AxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Ay Private Sub Mtb_Cor_Ay_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_AyValidating If Not IsNumeric(MeMtb_Cor_AyText) Then If MeMtb_Cor_AyTextLength = 0 Then MessageBoxShow(Coordenada Ay no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Ay contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_AyFocus() MeMtb_Cor_AySelectAll() End If eCancel = True Else MeMtb_Cor_AyText = Valida_Caracter_Al_final(MeMtb_Cor_AyText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada Bx

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 29: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

28

Private Sub Mtb_Cor_Bx_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_BxValidating If Not IsNumeric(MeMtb_Cor_BxText) Then If MeMtb_Cor_BxTextLength = 0 Then MessageBoxShow(Coordenada Bx no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada Bx contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_BxFocus() MeMtb_Cor_BxSelectAll() End If eCancel = True Else MeMtb_Cor_BxText = Valida_Caracter_Al_final(MeMtb_Cor_BxText) End If End Sub Subrutina que controla la validacion de caracteres validos (numeros) del texbox de la coordenada By Private Sub Mtb_Cor_By_Validating(ByVal sender As SystemObject ByVal e As SystemComponentModelCancelEventArgs) Handles Mtb_Cor_ByValidating If Not IsNumeric(MeMtb_Cor_ByText) Then If MeMtb_Cor_ByTextLength = 0 Then MessageBoxShow(Coordenada By no puede ser vacia MessageBoxButtonsOK MessageBoxIconStop) Else MessageBoxShow(La Coordenada By contiene caracteres no validos MessageBoxButtonsOK MessageBoxIconExclamation) MeMtb_Cor_ByFocus() MeMtb_Cor_BySelectAll() End If eCancel = True Else MeMtb_Cor_ByText = Valida_Caracter_Al_final(MeMtb_Cor_ByText) End If End Sub Subrutina que quita los caracteres + - Private Function Valida_Caracter_Al_final(ByVal cadena As String) As String Dim Tam_Cadena As Integer Dim aux_Cadena As String Tam_Cadena = cadenaLength - 1 aux_Cadena = cadenaSubstring(Tam_Cadena)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 30: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

29

If = aux_Cadena Or + = aux_Cadena Or - = aux_Cadena Then cadena = cadenaTrim(aux_Cadena) End If Return cadena End Function Subrutina que elimina ceros al inicio de cada texbox AxAyBxBy Private Function Elimina_Cero_Al_Inicio(ByVal cero As Integer) As Integer If MeIntervalosFocused Then If MeMtb_Cor_AxText = 0 Then End If End If End Function Subrutina del evento tecla oprimida en el texbox Ax checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ax_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyDown If MeMtb_Cor_AxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AxText = 0 Else MeMtb_Cor_AxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_AyFocus() End If Mecadena_anterior = MeMtb_Cor_AxText End Sub Subrutina del evento tecla oprimida en el texbox Ay checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Ay_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyDown If MeMtb_Cor_AyText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_AyText = 0

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 31: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

30

Else MeMtb_Cor_AyText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_BxFocus() End If Mecadena_anterior = MeMtb_Cor_AyText End Sub Subrutina del evento tecla oprimida en el texbox Bx checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_Bx_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyDown If MeMtb_Cor_BxText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_BxText = 0 Else MeMtb_Cor_BxText = End If End If If eKeyCode = KeysEnter Then MeMtb_Cor_ByFocus() End If Mecadena_anterior = MeMtb_Cor_BxText End Sub Subrutina del evento tecla oprimida en el texbox By checa si se oprime cero varias veces valida la entrada de multiples ceros Private Sub Mtb_Cor_By_KeyDown(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyDown If MeMtb_Cor_ByText = 0 Then If eKeyCode = KeysOemPeriod Or eKeyCode = 110 Then MeMtb_Cor_ByText = 0 Else MeMtb_Cor_ByText = End If End If If eKeyCode = KeysEnter Then MeSumaFocus() End If Mecadena_anterior = MeMtb_Cor_ByText End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 32: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

31

Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ax_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AxLeave ax = True ay = False bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Ay_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_AyLeave ax = False ay = True bx = False by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_Bx_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_BxLeave ax = False ay = False bx = True by = False End Sub Subrutina que controla el evento que se desencadena cuando el control Ax ya no tiene el foco guardando en una variable que fue el anterior en tener el foco Private Sub Mtb_Cor_By_Leave(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles Mtb_Cor_ByLeave ax = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 33: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

32

ay = False bx = False by = True End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ax comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ax_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AxText = Then MeMtb_Cor_AxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AxText = Mecadena_anterior End If End If MeMtb_Cor_AxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ax = True Then MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextRemove(0 1) signo_ax = False Else MeMtb_Cor_AxText = Mecadena_anterior MeMtb_Cor_AxText = MeMtb_Cor_AxTextInsert(0 -) signo_ax = True MeMtb_Cor_AxText = Val(MeMtb_Cor_AxTextToString) End If Else MeMtb_Cor_AxText = End If MeMtb_Cor_AxFocus()

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 34: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

33

End Select MeMtb_Cor_AxSelectionStart() = MeMtb_Cor_AxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Ay comprobando validacion para el punto flotante Private Sub Mtb_Cor_Ay_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_AyKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_AyText = Then MeMtb_Cor_AyText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_AyText = Mecadena_anterior End If End If MeMtb_Cor_AyFocus() Case 107 106 111 65 To 90 MeMtb_Cor_AyText = Val(MeMtb_Cor_AyTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_ay = True Then MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextRemove(0 1) signo_ay = False Else MeMtb_Cor_AyText = Mecadena_anterior MeMtb_Cor_AyText = MeMtb_Cor_AyTextInsert(0 -) signo_ay = True End If Else MeMtb_Cor_AyText = End If MeMtb_Cor_AyFocus() End Select MeMtb_Cor_AySelectionStart() = MeMtb_Cor_AyTextLength End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 35: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

34

Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox Bx comprobando validacion para el punto flotante Private Sub Mtb_Cor_Bx_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_BxKeyUp Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_BxText = Then MeMtb_Cor_BxText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_BxText = Mecadena_anterior End If End If MeMtb_Cor_BxFocus() Case 107 106 111 65 To 90 MeMtb_Cor_BxText = Val(MeMtb_Cor_BxTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_bx = True Then MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextRemove(0 1) signo_bx = False Else MeMtb_Cor_BxText = Mecadena_anterior MeMtb_Cor_BxText = MeMtb_Cor_BxTextInsert(0 -) signo_bx = True End If Else MeMtb_Cor_BxText = End If MeMtb_Cor_BxFocus() End Select MeMtb_Cor_BxSelectionStart() = MeMtb_Cor_BxTextLength End Sub Subrutina del evento que se desencadena cuando la tecla deja de oprimirse en el texbox By comprobando validacion para el punto flotante Private Sub Mtb_Cor_By_KeyUp(ByVal sender As SystemObject ByVal e As SystemWindowsFormsKeyEventArgs) Handles Mtb_Cor_ByKeyUp

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 36: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

35

Select Case eKeyCode Case 110 eHandled = True If MeMtb_Cor_ByText = Then MeMtb_Cor_ByText = 0 Else If Mecadena_anteriorContains() Then MeMtb_Cor_ByText = Mecadena_anterior End If End If MeMtb_Cor_ByFocus() Case 107 106 111 65 To 90 MeMtb_Cor_ByText = Val(MeMtb_Cor_ByTextToString) Case 109 MENOS If Not Mecadena_anterior = Then If signo_by = True Then MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextRemove(0 1) signo_by = False Else MeMtb_Cor_ByText = Mecadena_anterior MeMtb_Cor_ByText = MeMtb_Cor_ByTextInsert(0 -) signo_by = True End If Else MeMtb_Cor_ByText = End If MeMtb_Cor_ByFocus() End Select MeMtb_Cor_BySelectionStart() = MeMtb_Cor_ByTextLength End Sub Private Function Compara(ByVal x As Double ByVal y As Double) If x gt y Then Return True End If Return False End Function End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 37: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

36

CLASE ANALISIS INTERVALAR Public Class Analisis_Intervalar VARIABLES GLOBALES Dim opcion As Integer = 0 Public Intervalo(1) Intervalo2(1) As Double Public Xr Yr As Double Variables de resultado Public errores As String = Dim A2 As Double Dim a As Double Dim B2 As Double Dim b As Double Dim Inf As Double Dim Sup As Double M A X I M O Private Function Maximo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x gt y) Then aux = x Else aux = y End If Return (aux) End Function M I N I M O Private Function Minimo(ByVal x As Double ByVal y As Double) As Double Dim aux As Double If (x lt y) Then aux = x Else aux = y End If Return (aux) End Function ADICION INTERVALAR Public Sub Adicion_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 38: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

37

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a + b A2 + B2) End Sub SUBSTRACCION INTERVALAR Public Sub Sub_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(a - B2 A2 - b) End Sub MULTIPLICACIOM INTERVALAR Public Sub Mult_Intervalar(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) a = Minimo(Intervalo(0) Intervalo(1)) A2 = Maximo(Intervalo(0) Intervalo(1)) b = Minimo(Intervalo2(0) Intervalo2(1)) B2 = Maximo(Intervalo2(0) Intervalo2(1)) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 gt= 0) Then guarda_interv(A2 b A2 B2) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 B2) End If If (a lt 0 And A2 gt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(Minimo(a B2 A2 b) Maximo(a b A2 B2)) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a b) End If If (a lt 0 And A2 lt 0 And b gt= 0 And B2 gt= 0) Then guarda_interv(a B2 A2 b) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 gt= 0) Then guarda_interv(a B2 a b) End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 39: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

38

If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If End Sub DIVISION INTERVALAR Public Sub Div_Intervalar(ByVal x1 As Double ByVal y1 As Integer ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (a gt= 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a B2 A2 b) End If If (a gt= 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a b) End If If (a lt 0 And A2 gt= 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 b) End If If (a lt 0 And A2 lt 0 And b gt 0 And B2 gt 0) Then guarda_interv(a b A2 B2) End If If (a lt 0 And A2 lt 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 b a B2) End If If (a lt 0 And A2 gt= 0 And b lt 0 And B2 lt 0) Then guarda_interv(A2 B2 a B2) End If Apartir de estos IF se valida AB= no definida If b = 0 Or B2 = 0 Then guarda_interv(0 0) MessageBoxShow(Divisioacuten sobre cero error MessageBoxButtonsOK MessageBoxIconError) MyFormsCalculadoraIntervalarerrores = Division sobre cero End If End Sub RETICULO SUPREMO Public Sub Supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 40: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

39

solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(sup_aux(a b) sup_aux(A2 B2)) End Sub RETICULO INFIMO Public Sub Infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) inf_aux(A2 B2)) End Sub SUPREMO AUXILIAR Private Function sup_aux(ByVal x As Double ByVal y As Double) As Double Return (Maximo(x y)) End Function INFIMO AUXILIAR Private Function inf_aux(ByVal x As Double ByVal y As Double) As Double Return (Minimo(x y)) End Function SEMIRETICULO SUPREMO Public Sub semiret_supremo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() guarda_interv(inf_aux(a b) sup_aux(A2 B2)) End Sub

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 41: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

40

SEMIRETICULO INFIMO Public Sub semiret_infimo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) solicitaIntervalo(x1 y1 x2 y2) traduce_valores() If (sup_aux(a b) lt= inf_aux(A2 B2)) Then guarda_interv(sup_aux(a b) inf_aux(A2 B2)) Else MessageBoxShow(NES VACIO MessageBoxButtonsOK MessageBoxIconInformation) End If End Sub SOLICITA INTERVALO Private Sub solicitaIntervalo(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) intervalo A Intervalo(0) = x1 Intervalo(1) = x2 intervalo B Intervalo2(0) = y1 Intervalo2(1) = y2 End Sub IMPRIME INTERVALO Private Sub guarda_interv(ByVal x As Double ByVal y As Double) Xr = x Yr = y End Sub Private Sub traduce_valores() A2 = Intervalo(1) a = Intervalo(0) B2 = Intervalo2(1) b = Intervalo2(0) End Sub End Class

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 42: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

41

CLASE IMPORTAR DATOS DE EXCEL Public Class Importar_Datos_de_Excel Creamos un objeto Excel Dim m_Excel As ExcelApplication Public DGV_Datos_de_Excel As New DataGridView Public OK As Boolean Private Sub Importar_Datos_de_Excel_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad OK = False MeSumaChecked = True End Sub Private Sub buscar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles buscarClick MeTextBox1Enabled = True If MeOpenFileDialog1ShowDialog() = WindowsFormsDialogResultOK Then MeabrirEnabled = True MeAceptarEnabled = True MeTextBox1Text = MeOpenFileDialog1FileName MeLeer_Click(sender e) End If End Sub Private Sub Leer_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles LeerClick Try If TextBox1TextLength = 0 Then Exit Sub End If Dim objDataSet As New SystemDataDataSet Dim objDataAdapter As SystemDataOleDbOleDbDataAdapter Dim objOleConnection As SystemDataOleDbOleDbConnection Creamos un objeto OLEDBConnection con el nombre del archivo seleccionado como Data Source objOleConnection = New SystemDataOleDbOleDbConnection( _ provider=MicrosoftJetOLEDB40 amp _ data source= amp TextBox1TextTrim amp Extended Properties=Excel 80) Seleccionamos los datos que estaacuten en la hoja 1 (Sheet1) Cada columna se representara como una columna y cada row

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 43: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

42

como un row Si queremos seleccionar un rango solo especificamos [Sheet1$AnBm] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Sheet1$A6E29] objOleConnection) Si queremos seleccionar toda la hoja solo especificamos [Sheet1$] objDataAdapter = New SystemDataOleDbOleDbDataAdapter( _ select from [Hoja1$] objOleConnection) where [Sheet1$A4] = Aruba objDataAdapterFill(objDataSet) objOleConnectionClose() MeDGVName = objDataSetTables(0)TableName MeDGVDataSource = objDataSet MeDGVDataMember = objDataSetTables(0)TableName Copiar datagridview1 en otro DGV_Datos_de_Excel = DGV Catch ex As Exception MessageBoxShow(exMessage) End Try End Sub Private Sub abrir_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles abrirClick m_Excel = New ExcelApplication m_ExcelWorkbooksOpen(TextBox1Text) m_ExcelVisible = True End Sub Private Sub Form1_FormClosing(ByVal sender As SystemObject ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MyBaseFormClosing If Not m_Excel Is Nothing Then m_ExcelQuit() m_Excel = Nothing End If End Sub Private Sub Aceptar_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles AceptarClick OK = True SUMA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 44: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

43

If MeSumaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisAdicion_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x1 = MeDGVRows(i)Cells(0)Value y1 = MeDGVRows(i)Cells(1)Value x2 = analisisXr y2 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y1 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisAdicion_Intervalar(x1 x2 y1 y2) Else GoTo salida End If

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 45: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

44

Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A+B End If RESTA INTERVALAR If MeRestaChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisSub_Intervalar(x1 y1 x2 y2) Else

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 46: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

45

GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisSub_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = A-B

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 47: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

46

End If MULTIPLICACIOM INTERVALAR If MeMultiplicacionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisMult_Intervalar(x1 y1 x2 y2) Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisMult_Intervalar(x1 x2 y1 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 48: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

47

Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB End If DIVISIION INTERVALAR If MeDivisionChecked Then If MeDGVRowsCount gt= 2 Then Dim analisis As New Analisis_Intervalar Dim i As Integer Dim x1 As Double = MeDGVRows(0)Cells(0)Value Dim x2 As Double = MeDGVRows(0)Cells(1)Value Dim y1 As Double = MeDGVRows(1)Cells(0)Value Dim y2 As Double = MeDGVRows(1)Cells(1)Value MyFormsResultadosDataGridView1RowsClear() For i = 0 To MeDGVRowsCount - 2 Step 1 MyFormsResultadosDataGridView1RowsAdd() Next MyFormsResultadosDataGridView1Rows(0)Cells(0)Value = x1 MyFormsResultadosDataGridView1Rows(0)Cells(1)Value = x2 MyFormsResultadosDataGridView1Rows(1)Cells(0)Value = y1 MyFormsResultadosDataGridView1Rows(1)Cells(1)Value = y2 If Not DatosValidos(x1 x2 y1 y2) Then analisisDiv_Intervalar(x1 y1 x2 y2)

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 49: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

48

Else GoTo salida End If For i = 2 To MeDGVRowsCount - 1 Step 1 Actualizo las variables x2 = MeDGVRows(i)Cells(0)Value y2 = MeDGVRows(i)Cells(1)Value x1 = analisisXr y1 = analisisYr Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i)Cells(0)Value = x2 MyFormsResultadosDataGridView1Rows(i)Cells(1)Value = y2 Guardo informacion auxiliar en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr If Not DatosValidos(x1 y1 x2 y2) Then analisisDiv_Intervalar(x1 x2 y1 y2) Else GoTo salida End If Next Guardo informacion en el DataGridView1 de resultados MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)Value = analisisXr MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)Value = analisisYr Cambia color MyFormsResultadosDataGridView1Rows(i - 1)Cells(2)StyleForeColor = ColorRed MyFormsResultadosDataGridView1Rows(i - 1)Cells(3)StyleForeColor = ColorRed Escribe resultados MyFormsCalculadoraIntervalarResulatado_xText = analisisXr MyFormsCalculadoraIntervalarResulatado_yText = analisisYr MyFormsResultadosShowDialog() End If MyFormsCalculadoraIntervalarLabel1Text = AB

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 50: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

49

End If MyFormsCalculadoraIntervalarLabel1ForeColor = ColorRed salida End Sub FUNCION DATOS VALIDOS Private Function DatosValidos(ByVal x1 As Double ByVal y1 As Double ByVal x2 As Double ByVal y2 As Double) If MyFormsConfiguracionCheckBox1Checked Then If x1 gt y1 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x1ToString amp amp y1ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If If x2 gt y2 Then MessageBoxShow(Infimo debe de ser menor al Supremo en el intervalo amp x2ToString amp amp y2ToString Error de Intervalo MessageBoxButtonsOK MessageBoxIconError) Return True End If End If Return False End Function End Class CLASE CONFIGURACION Public Class Configuracion Private Sub Configuracion_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad MeCargarResultadoChecked = MyFormsCalculadoraIntervalarCargarValor End Sub Private Sub CargarResultado_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CargarResultadoCheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarCargarValor = True Else MyFormsCalculadoraIntervalarCargarValor = False

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 51: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

50

End If End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles CheckBox1CheckedChanged If MeCargarResultadoChecked Then MyFormsCalculadoraIntervalarDetErrorCoor = True Else MyFormsCalculadoraIntervalarDetErrorCoor = False End If End Sub End Class

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 52: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR

51

A P Eacute N D I C E I

INSTRUCTIVO DE INSTALACIOacuteN Y OPERACIOacuteN DE LA CALCULADORA INTERVALAR

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 53: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

52

CONTENIDO

Paacuteg Introduccioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53 Requerimientos miacutenimos para el Sistema de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

53

Instalacioacuten

Instalacioacuten de la Calculadora Intervalarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

Instalacioacuten del FrameworkNet helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 57

Descripcioacuten de la Calculadora Intervalar

Modo de usohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 62

Descripcioacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 63

Operacioacuten del Sistema de la Calculadora Intervalar

iquestCoacutemo realizar una operacioacuten entre 2 intervalos 63

iquestCoacutemo realizar varias operaciones entre n-intervaloshellip 66

iquestCoacutemo realizar una misma operacioacuten entre n-intervalos 69

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 54: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

53

INTRODUCCIOacuteN

El presente Manual esta dirigido a todos los usuarios del Aacuterea de Matemaacuteticas que se encuentran involucrados con el anaacutelisis de intervalos La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales Si tiene alguna duda con respecto al presente documento por favor enviacutee un e-mail a la cuentas de correo electroacutenico mgutierrezbeniacutetezyahoocommx o mary_leonmyahoocommx para recibir Soporte Teacutecnico

REQUERIMIENTOS

Para que el Sistema de la Calculadora Intervalar opere correctamente este requiere de lo siguiente

bull PC Pentium III o superior bull Sistema Operativo XP

bull Instalador ldquoSetuprdquo Calculadora intervalar En el mencionado instalador se

encuentra en el CDROM

INSTALACION DE LA CALCULADORA INTERVALAR

En el CD ROM mencionado anteriormente se localiza la carpeta llamada Calculadora Intervalar dentro de la cual se encuentra ubicado el instalador ldquoSetupexerdquo para correr nuestra aplicacioacuten Para ello se deberaacuten seguir los siguientes pasos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 55: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

54

1 Ejecute el ldquoSetupexerdquo

2 Se Muestra el Asistente para la Instalacioacuten de la Calculadora Intervalar Hacer Clic en el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 56: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

55

3 Seleccionar la carpeta donde se instalaraacute la calculadora pulsar el botoacuten ldquoSiguienterdquo

4 Confirmar la instalacioacuten y pulsa el botoacuten ldquoSiguienterdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 57: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

56

5 Si la instalacioacuten ha sido finalizada correctamente pulsa el botoacuten ldquoCerrarrdquo

Una vez realizada la instalacioacuten exitosamente podremos visualizar el icono de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 58: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

57

Es importante mencionar que en caso de no ejecutarse el NET automaacuteticamente puede instalarlo de la siguiente forma INSTALACION DEL FRAMEWORK NET VERSIOacuteN 20

1 En el CD ROM que se entrego localiza una carpeta llamada Proyecto Calculadora Intervalar dentro de la cual se halla ubicada la carpeta dotnetfx

2 Abra la carpeta dotnetfx y ejecute el archivo dotnetfxexe

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 59: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

58

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 60: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

59

3 Oprima el botoacuten ldquoSiguienterdquo en el cuadro del Programa de Instalacioacuten de Microsoft

NET Framework 20

4 Acepte los Teacuterminos de la Licencia

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 61: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

60

5 El programa de instalacioacuten estaacute configurando la instalacioacuten

6 Se instalan los Componentes

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 62: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

61

7 Por uacuteltimo presione el botoacuten finalizar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 63: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

62

MODO DE USO DE LA CALCULADORA INTERVALAR

Una vez instalada la Calculadora Intervalar nos vamos a la Barra de ldquoIniciordquo -gt ldquoProgramasrdquo -gt ldquoCalculadora Intervalarrdquo

Al ejecutar la aplicacioacuten se muestra el siguiente pantalla

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 64: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

63

DESCRIPCIOacuteN DE LA VISUALIZACIOacuteN DE LA CALCULADORA INTERVALAR La calculadora Intervalar se basa en los conceptos fundamentales de la matemaacutetica intervalar lo que posibilita la realizacioacuten de las operaciones aritmeacuteticas baacutesicas como suma resta multiplicacioacuten y divisioacuten con intervalos reales A continuacioacuten daremos una breve descripcioacuten del anterior formulario Nuestra calculadora se encuentra seccionada en Grupo de Cajas (Group Box) a los cuales se les dio el nombre siguiente

1 Intervalos 2 Resultados 3 Operaciones Aritmeacuteticas 4 Propiedades Reticulares 5 Botones Calculadora 6 Botones Aceptar y Cerrar

iquestCOacuteMO REALIZAR UNA OPERACIOacuteN ENTRE DOS INTERVALOS Para poder realizar una operacioacuten entre dos intervalos es necesario realizar los siguientes pasos

1 Coloque el nuacutemero en la casilla correspondiente a la coordenada Ax con ayuda de la tecla tabulador o Enter pase a la siguiente casilla y coloque el nuacutemero que corresponde a la coordenada Ay de manera anaacuteloga para las casillas Bx y By

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 65: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

64

2 Seleccione la operacioacuten intervalar a ejecutar (Suma Resta Multiplicacioacuten Divisioacuten)

Ademaacutes de las Operaciones Baacutesicas la calculadora intervalar cuenta con la posibilidad de calcular el Supremo e Infimo de acuerdo a las propiedades Reticulares

Seleccionar dando clic la Operacioacuten deseada de

3 Haga clic en el botoacuten aceptar

Pulsar Aceptar para realizar la operacioacuten deseada

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 66: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

65

4 Se visualizaraacute el resultado de las operaciones entre los intervalos A y B en el

recuadro de resultados 5

Visualizacioacuten del resultado obtenido de la operacioacuten realizada

Nota

bull El ingreso de datos puede ser viacutea teclado o mouse o combinacioacuten de ambos meacutetodos de entrada los mismos pueden ser de tipo real

bull Tambieacuten puede utilizar el teclado numeacuterico para escribir nuacutemeros y operadores

para ello presione BLOQ NUM

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 67: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

66

iquestCOacuteMO REALIZAR VARIAS OPERACIONES ENTRE N-INTERVALOS

Una de las grandes ventajas de la calculadora intervalar es que puede realizar varias operaciones Aritmeacuteticas entre n-intervalos Por el momento en la versioacuten 10 de nuestra calculadora logramos que a partir de la idea anterior de Coacutemo realizar una operacioacuten entre varios intervalos se carguen los resultados obtenidos en el intervalo ldquoArdquo y de esta forma agregar el intervalo siguiente teniendo la opcioacuten de elegir una nueva operacioacuten aritmeacutetica Para ello es necesario seguir los siguientes pasos 1 Ir al Menuacute ldquoHerramientasrdquo y Seleccionar el Submenuacute ldquoConfiguracioacutenrdquo eligiendo

cargar resultados en el intervalo ldquoArdquo De esta forma podraacute operar otro nuevo intervalo con una nueva operacioacuten

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 68: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

67

Veamos un simple ejemplo con los siguientes intervalos AB Y C -gt (89)+(2083)(210)

1 Seleccione el Submenuacute ldquoConfiguracioacutenrdquo Dar clic en el check box ldquoCargar Resultado en el intervalo Ardquo

Primero realizamos la suma de los intervalos A y B

2 Llenamos las coordenadas para el intervalo A y B Seleccionamos la operacioacuten suma en este caso

B C A

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 69: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

68

Una vez realizada la suma se cargaraacuten los resultados obtenidos en el intervalo ldquoArdquo agregamos el intervalo a dividir (210)

3 Agregamos el intervalo ldquoCrdquo en las coordenadas para el intervalo B y Seleccionamos la operacioacuten dividir y damos aceptar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 70: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

69

iquestCOacuteMO REALIZAR UNA MISMA OPERACIOacuteN ENTRE N-INTERVALOS Hay veces que nos gustariacutea contar con una herramienta la cual nos permitiera realizar operaciones con documentos de hoja de Caacutelculo Por el momento la Calculadora Intervalar tiene la opcioacuten de abrir un archivo de Excel con n_intervalos en esta versioacuten soacutelo tiene la opcioacuten de realizar una misma operacioacuten a n_intervalos posteriormente se realizaraacuten las mejoras al presente trabajo Para ello es necesario seguir los siguientes pasos

1 Seleccionamos del Menuacute ldquoHerramientasrdquo el submenuacute ldquoImportar Datos de Excelrdquo

2 Damos la Ruta del Archivo de Excel en el path o en su defecto le damos clic al botoacuten ldquohelliprdquo

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 71: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

70

Cabe hacer mencioacuten que el archivo de Excel debe contar con ciertas caracteriacutesticas Archivo Excel con extensioacuten ldquoxlsrdquo En las celdas A1 y B1 se colocara el encabezado de X y Y A partir de la fila 2 representaraacute cada uno de los intervalos a operar

En la siguiente figura se muestra como colocar los intervalos

3 Seleccionamos el archivo de Excel que contiene los datos de nuestros intervalos a operar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 72: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

71

4 Seleccionamos la Operacioacuten a realizar y pulsamos el botoacuten ldquoProcesarrdquo

5 En este formulario se muestran los resultados obtenidos de realizar la suma de todos los intervalos

Resultados Obtenidos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 73: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

72

Es importante mencionar que el sistema esta disentildeado para detectar errores del anaacutelisis de intervalos una de las propiedades maacutes importantes es que vaacutelida cualquier intervalo si la coordenada Ax es lt a la coordenada Ay para ello existe la opcioacuten el Menuacute ldquoHerramientasrdquo en la opcioacuten de ldquoConfiguracioacutenrdquo ldquoDetector de Erroresrdquo

El presente Sistema cuenta con la alternativa de Ayuda en donde se da una breve descripcioacuten del producto y de manera sencilla se muestra como se puede utilizar la calculadora intervalar

Esperando que este Manual sea de gran utilidad para el manejo de la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 74: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

73

A P Eacute N D I C E II

EJEMPLOS DE LAS PANTALLAS DE LA CALCULADORA INTERVALAR

Suma Intervalar Sean A y B dos intervalos reales donde A= [a1a2] y B = [b1b2] entonces

A + B = [(a1 + b1) [(a2 + b2)]

Resta Intervalar Sean A y B dos intervalos de IR donde A= [a1a2] y B = [b1b2] entonces

A - B = A + (-b) = [(a1 - b2) [(a2 - b1)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 75: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

74

Multiplicacioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas

Si a1 ge 0 y b1 ge 0 AB = [a1 b1 a2 b2] rArr

Si a1 ge 0 y b1lt 0 le 0 AB = [a2b1 a2 b2] rArr

Si a1 ge 0 y b2lt 0 AB = [a2b1 a1 b2] rArr

Si a1 lt 0 le a2 y b1 ge 0 AB = [a1b2 a2 b2] rArr Si a1 lt 0 le a2 y b1 le 0 le b2 AB = [min[a1b2 a2 b1] max [a1b1 a2 b2]rArr

Si a1 lt 0 le a2 y b2 lt 0 AB = [a2b1 a2 b1] rArr

Si a2 lt 0 b1 ge 0 AB = [a1b2 a2 b1] rArr

Si a1 lt 0 y b1 lt 0 le b2 AB = [a1b2 a1 b1] rArr Si a2 lt 0 y b2 lt 0 AB = [a2b2 a1 b1] rArr

Divisioacuten Intervalar Sean A y B dos intervalos de IR donde A=[a1a2] y B=[b1b2] entonces se tienen en cuenta las siguientes reglas Si a1 gt 0 y b1 gt 0 A B = [a1 b1 a2 b2]rArr

Si a1 gt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b2lt 0 A B = [a2 b2 a1 b1] rArr

Si a1 lt 0 lt a2 y b1 gt 0 A B = [a1 b1 a2 b1] rArr

Si a1 lt 0 lt a2 y 0 isin [b1 b2] A B = no definido rArr

Si a1 gt 0 y b1 lt 0 A B = [a2 b2 a1 b1] rArr

Si a2 lt 0 b1 gt 0 A B = [a1 b1 a2 b2] rArr

Si a2 lt 0 y 0 isin [b1 b2] A B = no definido rArr

Si a2 lt 0 y b2 lt 0 A B = [a2 b1 a1 b2] rArr

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 76: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

75

Supremo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo y (I(M) sube) es un semiretiacuteculo superior

A ν B=sup(AB)=[iacutenf(a1b1) sup(a2b2)]

Iacutenfimo Si (M le) es un retiacuteculo entonces (I(M) U Oslash sube) es un retiacuteculo

[sup(a1b1) iacutenf(a2b2)] si sup(a1b1) le iacutenf(a2b2) Oslash en otro caso

A Λ B= iacutenf(AB) =

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 77: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

76

Supremo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

sup(AB)=[sup(a1b1) sup(a2b2)]

Iacutenfimo para el retiacuteculo Si (M le) es un retiacuteculo entonces (I(M) le) es un retiacuteculo

iacutenf(AB)=[iacutenf(a1b1) iacutenf(a2b2)]

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 78: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

77

La Calculadora Intervalar permite detectar cuando el usuario ingresa un intervalo que no es permitido seguacuten la matemaacutetica intervalar en esta figura se puede observar que el intervalo dado en Ax es mayor que en el de Ay por lo que se va a presentar un mensaje de error que indica cual es la falla esto permite que el usuario capture el intervalo de forma correcta

Como se muestra en la figura La Calculadora Intervalar cuenta con un menuacute de ayuda el cual estaacute disponible en el momento que el usuario lo requiera Para consultar la ayuda se debe dar un clic en el menuacute de ayuda

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 79: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

78

Al momento que se presiona el menuacute de ayuda se despliega un cuadro con tres submenuacutes esto va a permitir que el usuario identifique el tipo de ayuda que requiere cuando esteacute trabajando con la Calculadora Intervalar

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 80: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

79

CONCLUSIONES

En este trabajo se ha presentado una herramienta para el desarrollo de caacutelculos aritmeacuteticos con intervalos reales para tal efecto se ha hecho una breve revisioacuten de los conceptos asociados a la teoriacutea de la matemaacutetica intervalar La herramienta desarrollada en el Lenguaje de Programacioacuten Visual BasicNet cumple con todos los objetivos para el cual fue propuesto permitiendo de esta manera obtener una herramienta que nos da la opcioacuten de ingresar muacuteltiples intervalos desde la aplicacioacuten de Excel Debido a la amplitud de la matemaacutetica intervalar existen innumerables formas de continuar o mejorar esta propuesta lo que posibilita la continuacioacuten de investigaciones para la construccioacuten de herramientas semejantes que exploten el amplio espectro de la matemaacutetica intervalar direccionadas a aplicaciones especiacuteficas necesarias en varios campos de la ingenieriacutea y las ciencias

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]

Page 81: IMPLEMENTACIÓN DE UNA CALCULADORA …148.206.53.84/tesiuami/UAMI14436.pdf · Siempre que sea posible, se utilizan palabras o frases significativas, en lugar de abreviaturas, acrónimos

CALCULADORA INTERVALAR EN EL LENGUAJE DE

PROGRAMACIOacuteN VISUAL BASICNET

80

REFERENCIAS

Libros y Documentos Impresos [1] Methods and Applications of Interval Analysis Ramon E Moore Editorial SIAM

Philadelphia1979 [2] Microsoft Visual BasicNet Lenguaje y Aplicaciones Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2ordf Edicioacuten 2007 [3] Visual BasicNet (El lenguaje de programacioacuten) Francisco Javier Ceballos Sierra

Editorial Alfaomega Grupo Editor 2003 [4] Microsoft Visual BasicNet Referencia del Lenguaje Editorial Microsoft Corporation

McGraw-Hill Interamericana 1ordf Edicioacuten 2003 Paacuteginas Web [5] httpimaudgedu~sainzdoctor_int1pdf Fecha de Acceso (Mayo 2006) [6] httpwwwitqedumxvidatecmaestrossismlopezTutorialinthtm Fecha de

Acceso (Junio 2007) [En Liacutenea] [7] httpwwwinformatiquecommxvbNetvbNet Meacutexico D F informatique 2003-

2005 Fecha de Acceso (Mayo 2007) [En Liacutenea] [8] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbcn7

htmlvalrfWhatsNewInVisualBasicLanguageasp Fecha de Acceso (Mayo 2007) [En Liacutenea]

[9] httpwwwprogramatiumcomvbtutorialesphpid=247 Fecha de Acceso (Junio 2007) [En Liacutenea]

[10] httpmsdnmicrosoftcomlibraryspadefaultaspurl=librarySPAvbls7htmlvblrfvbspec1asp2007 MicrosoftCorporation Fecha de Acceso (Junio 2007) [En Liacutenea]