IES Alfonso X el Sabio Consejería de Educación, Cultura y Deportes CIF: S4500181E C/ Valdehuesa nº 6 45007 INTRODUCCIÓN A LA PROGRAMACIÓN. INTRODUCCIÓN. El proceso de programación consiste en elaborar una serie de instrucciones que indican al ordenador lo que tiene que realizar. Cuando el ordenador ejecuta el programa, va leyendo y siguiendo las instrucciones paso por paso. De esta manera, con las instrucciones adecuadas, podemos hacer que el ordenador realice la acción que queramos. Las instrucciones pueden estar escritas en distintos lenguajes de programación, ya que luego el ordenador transforman todas a código binario. Cada lenguaje de programación utiliza lo que se denomina Entorno de desarrollo, que es la aplicación (programa) que permite introducir las instrucciones para hacer programas. Los entornos de desarrollo de los lenguajes de programación orientada a objetos son parecidos a un editor de texto (como Word), pero incluyen otras muchas funciones. Existen varios lenguajes de programación como son: Lenguaje Fortran, lenguaje cobol, lenguaje Pascal, lenguaje C, Java, Delphi, Visual Basic. Uno de los lenguajes más sencillos de utilizar es el Visual Basic, que es el que estudiaremos nosotros. En este entorno, se distinguen claramente cinco zonas: - La barra de menú - El cuadro de herramientas que se abre cuando pinchamos en que lo encontramos dentro de la barra de herramientas Estándar - El explorador de soluciones - La ventana de propiedades - La zona de diseño 1
La barra de menú y barra de herramientas: Nos permite realizar la mayoría de las acciones que vamos a necesitar en nuestro proyecto, desde las habituales operaciones de Archivo nuevo, Guardar, Abrir,... hasta funciones específicas de la programación como compilar, ejecutar paso a paso,... Todas estas funciones se describirán más adelante en el manual específico. El cuadro de herramientas. Permite agregar a nuestros formularios los componentes que deseemos. Un formulario básicamente una ventana de Windows. Lo diseñamos tal y como queremos que quede. Podemos añadir botones, cajas de texto, botones de opción, imágenes, paneles,.. El explorador de soluciones Permite organizar nuestros formularios, y cambiar entre las vistas de código y las de diseño. La vista de diseño muestra el aspecto del formulario, mientras que la vista de código nos muestra las instrucciones que nosotros escribimos para que el programa funcione. La ventana de propiedades. Nos permite cambiar las múltiples propiedades de un objeto (un formulario, un botón, una caja de texto) tales como el tamaño, el color, el texto que aparece, ect. La zona de diseño. Es la parte en la que realizamos tanto la labor de diseño como la de escribir las instrucciones para que el programa funcione. Como Visual Basic es un lenguaje orientado a objetos cada objeto de los que añadamos a nuestro formulario podrá tener una serie de instrucciones asociadas a él. De modo que el ordenador seguirá esas instrucciones cuando el usuario haga alguna cosa sobre ese objeto (por ejemplo clic en un botón). A los objetos que se añaden sobre los formularios se les llama comúnmente controles. COMO SE PROGRAMA EN VISUAL BASIC Los apuntes que se van a dar a continuación están basados en VISUAL BASIC 2008 EXPRESS, a continuación os indico una página web donde podéis encontrar un manual de visual basic 2008 express muy completo: https://www.box.com/shared/dvinhjzs9z Si tenéis algún problema para localizar el programa, contactar vía mail con la profesora de la asignatura. Programar en Visual Basic, como en cualquier otro lenguaje de programación orientado a objetos se puede resumir en los siguientes puntos: Añadir y preparar los formularios (ventanas) que vaya a necesitar la aplicación 2
Agregar los objetos( controles) necesarios a los formularios Modificar las propiedades de los objetos agregados, incluso las de los formularios Crear los procedimientos asociados a los eventos de los objetos, de modo que se realicen las acciones necesarias en cada caso. CREAR EL PRIMER PROGRAMA. PROG 1: BIENVENIDA A VISUAL BASIC En este primer programa no vamos a agregar ningún objeto al formulario, sino a escribir una sentencia de visual Basic. Para ello seguiremos los siguientes pasos: 1. Creamos un nuevo proyecto. Archivo Nuevo Proyecto 2. Aplicación de Windows Forms 3. Hacer doble clic sobre un punto del formulario de partida. Aparecerá una nueva ventana, correspondiente al editor de código, en la que ya aparecen algunas sentencias escritas Private Sub Form_Load() Private Sub Especifica el tipo de subrutina o procedimiento. Form_Load () nos está indicando que en este caso la subrutina o procedimiento quedará asociado al evento al cargar el formulario Indica el final de una subrutina 4. Situar el cursor en la línea vacía que hay entre las dos sentencias ya escritas 5. Escribir la siguiente sentencia : MsgBox Bienvenido a Visual Basic End MsgBox:es una función de Visual Basic que muestra un cuadro de dialogo con información para el usuario. 6. Hacer clic sobre el botón para ejecutar el programa o iniciar depuración (que se encuentra dentro de la barra de herramientas Estandar ) Aparecerá un cuadro de texto que es el que habíamos especificado en la sentencia MsgBox. 7. Hacer clic en el botón Aceptar del cuadro del mensaje, para cerrarlo, puesto que el programa creado no tiene más sentencias que la de fin del programa, este habrá finalizado y volverá a estar activa la ventana de Visual Basic. GUARDAR PROYECTOS Y FORMULARIOS Un proyecto es el conjunto de todos los archivos (formularios, procedimientos, módulos ) que forman una aplicación. Por lo tanto al guardar el proyecto se guardarán todos los archivos que contenga, incluidos los formularios, aunque estos mismos también se grabarán de forma independiente. 3
Esto último resulta muy interesante, ya que permite utilizar los formularios diseñados en algún otro proyecto. Para guardar el proyecto y el formulario hay que: 1. Seleccionar la opción Guardar Todo del menú Archivo 2. Especificar la carpeta 3. Escribir el nombre para el formulario y para el proyecto 4. Hacer clic sobre el botón Guardar 5. Dejar seleccionado el indicativo de Crear directorio para solución. El resultado final ha sido la creación de una carpeta y un solucionario, nuestra carpeta a su vez está compuesta de tres carpetas Bin, My Proyect y Obj CERRAR PROYECTOS Una vez que se ha guardado un proyecto, este puede eliminarse de la ventana Visual Basic para dejar el área de trabajo libre y poder así abrir otro que estuviera guardado, o comenzar a trabajar en otro proyecto nuevo. Cuando se quiera cerrar un proyecto, bastará con seleccionar la opción cerrar proyecto del menú Archivo. CREAR EL SEGUNDO PROGRAMA. PROG 2 : COPIAR UN TEXTO 1. Creamos un nuevo proyecto. Archivo Nuevo Proyecto 2. Aplicación de Windows Forms 3. Del cuadro de herramienta elegimos un botón y lo colocamos en nuestro formulario 4. Del cuadro de herramientas elegimos una etiqueta e igualmente lo arrastramos hasta nuestro formulario 5. Y finalmente cogemos un Texto 6. A continuación cambiaremos el nombre de nuestro botón, le pondremos COPIAR para que nos aparezca como el siguiente diseño, para ello una vez que tenemos 4
7. seleccionado nuestro botón nos vamos a las propiedades y en Text cambiamos button1 por COPIAR, clic y ya nos aparece el texto en nuestro botón 8. A continuación lo que vamos a hacer es decirle que desaparezca el texto Label para que no aparezca nada. Con lo cual hacemos clic en label y nos vamos al cuadro de propiedades, donde pone Text:label, lo eliminamos y no ponemos nada 9. Acabamos de dar forma a nuestro formulario, aunque lo hemos dejado muy sencillito, podríamos cambiar el tipo de letra, el diseño, insertar un icono dentro de nuestro botón etc 8. Ahora vamos a indicarle al programa que lo que quiero es que mi botón COPIAR me copie el texto que yo escriba para ello hacemos doble clic dentro del botón COPIAR y me aparece una nueva ventana, correspondiente al editor de código, como en el proyecto 1,con la diferencia que ahora estoy dentro del código de mi botón 10. A continuación le indicaré que al hacer clic en mi botón (esto ya te lo hace el programa por defecto) en Label 1 me copie el texto, para ello le pongo el siguiente código, que quedaría así: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = TextBox1.Text End Class 11. A continuación le doy a ejecutar el programa 12. Ahora me aparece mi formulario y si escribes un texto y le das al botón copiar te copiará el texto debajo. 13. Guarda el proyecto, dando a guardar todo y llámalo programa 2.copia de texto ABRIR PROYECTOS El proceso de abrir un proyecto guardado es totalmente paralelo al de cualquier documento de otra aplicación: 1. Seleccionar la opción Abrir proyecto o Abrir archivo del Menú Archivo 2. A continuación te aparecerán las tres carpetas (bin, My Proyect y obj) y el solucionario, abre el solucionario directamente 3. En ocasiones te abre directamente tanto el formulario como el editor de códigos donde has realizado tu proyecto 4. Si no te ha abierto el editor de códigos solo tienes que, desde el formulario, pinchar en uno de los botones como hacías para comenzar a crear tu proyecto y te aparecerá tu código de proyecto. 5
5. Si solo te abre el código del proyecto, ejecuta el programa y te aparecerá el diseño del formulario CREAR UN NUEVO PROGRAMA. PROG 3: CUADRADO DE UN NÚMERO Para Diseñar el formulario realizaremos los siguientes pasos: 1. Hacer doble clic sobre la herramienta para agregar una etiqueta al formulario, Label 1. 2. Con la etiqueta seleccionada, introducir el Texto: Número en la propiedad Text. 3. Desplazar la etiqueta a la posición deseada 4. Realizar los pasos necesarios para obtener una nueva etiqueta Label 2con el Texto: Cuadrado 5. Hacer clic sobre la herramienta para agregar un botón de acción.(button) 6. Escribir Calcular como valor del botón de acción 7. Agregar un cuadro de texto (Text Box) mediante la herramienta y situarlo en la posición deseada del formulario 8. Agregamos otra etiqueta nueva Label 3 El diseño de nuestro formulario será el siguiente: 9. A continuación quita el texto de la etiqueta 3 para que quede mejor. Una vez diseñado el formulario, hay que introducir el código para los eventos del programa, que, en este caso, solo será uno: haz clic sobre el botón de acción e indicar que en la última etiqueta creada Label 3 aparezca el cuadrado del número indicado en el cuadro de texto. Para ello hay que: 1. Hacer doble clic sobre el Botón Calcular, para acceder al editor de código. 6
2. Escribir la sentencia que muestra la figura, que permite asignar a la tercera etiqueta (Label 3) el valor resultante de multiplicar el número escrito en el cuadro de texto por sí mismo 3. A continuación hacer clic sobre el botón de Ejecutar y aparecerá el formulario donde al introducir el número y dar a Calcular nos calculará el cuadrado del número deseado. Modificar el diseño del programa A Continuación se proponen una serie de modificaciones, la mayoría en tiempo de diseño, en las propiedades del formulario y de los controles del programa anterior, para mejorar su aspecto y funcionalidad. 1. Elegir, para la propiedad Font de las tres etiquetas (Label1, label2, y Label3) y del cuadro de texto(text 1), la fuente MS Sans Serif con tamaño 14 2. Cambiar la fuente del botón de acción (Command1)a MS Sans Serif con tamaño 12 3. Cambiar el valor de la propiedad Forecolor del control Label 3 a color rojo, para que su contenido aparezca con este color 4. Borrar el valor por defecto de la propiedad Text del control Text1; de este modo, aparecerá vacío al ejecutar el programa y podrá escribirse directamente el texto sin tener que borrar el otro. 5. Borrar el valor por defecto de la propiedad Text del control Label 3 para que este control también aparezca vacío en el formulario Modificar y mejorar el programa 2 1. Podemos mejorar el programa, introduciendo un botón (Button 2) que sea capaz de borrar los datos anteriores, limpiándonos la pantalla para poder introducir un número nuevo 2. Podemos también introducir un botón (Button3)para salir del programa 7
CREAR PROGRAMA 4: ATRIBUTOS DE UN TEXTO A continuación se creará un programa que permitirá copiar, en una etiqueta, el texto que el usuario escriba en un cuadro de texto, aplicando un atributo (negrita, cursiva o subrayado) en función de sobre qué botón de acción se haga clic. Por otra parte, al hacer clic sobre el cuadro de texto, se borrará su contenido, y al hacer doble clic sobre él, se borrará tanto el contenido del cuadro de texto como el de la etiqueta. El formulario también dispondrá de un botón Salir para finalizar el programa. En la figura que se ve a continuación se muestra el formulario como quedaría después de diseñarlo, para ello hemos modificado los Textos, tipos de letras, tamaño 8
Una vez diseñado nuestro formulario ahora debemos crear nuestro programa y darle a cada botón su funcionalidad, para ello pincha dos veces dentro del botón negrita y directamente aparecerá donde deberá incluir las propiedades del botón que introducirá tu texto en negrita, para ello debes indicar que el texto incluido se modificará de la siguiente manera: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim TipoLetra As Font = New Font("arial", 24, FontStyle.Bold) Label1.Text = TextBox1.Text Label1.Font = TipoLetra Lo mismo haremos con el Botón para obtener el texto en cursiva para ello podemos copiar el código anterior y cambiaremos en lugar de Bold (Negrita) por Underline (cursiva); de forma que el botón cursiva quedará de la siguiente manera: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim TipoLetra As Font = New Font("arial", 24,FontStyle.Underline) Label1.Text = TextBox1.Text Label1.Font = TipoLetra Lo mismo haremos con el Botón para obtener el texto en cursiva para ello podemos copiar el código anterior y cambiaremos en lugar de Bold (Negrita) por Italic (cursiva); de forma que el botón cursiva quedará de la siguiente manera Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim TipoLetra As Font = New Font("arial", 24, FontStyle.Italic) Label1.Text = TextBox1.Text Label1.Font = TipoLetra También se han inclluido dos botones más: Uno que me borrará la función anterior y dejará el texto como al inicio para ello utilizaremos el siguiente código en el que le indicamos que quiero el texto solamente con tipo de letra arial 24, quedando de la siguiente forma: Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim TipoLetra As Font = New Font("arial", 24) Label1.Text = TextBox1.Text Label1.Font = TipoLetra El último botón que introduciremos será el que nos sacará del progrma, por lo tanto lo que debe indicar es que finalice el programa, lo haremos de la siguiente manera: Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click End 9
RECOMENDACIÓN: INTRODUCIR LOS CÓDIGOS DE CADA BOTÓN Y EJECUTAR EL PROGRAMA PASO A PASO POR SI EXISTE ALGÚN FALLO IDENTIFICARLO RAPIDAMENTE. PROGRAMACIÓN ESTRUCTURADA: La declaración de variables se realiza mediante la sentencia Dim, en la que se deben especificar el nombre de la variable y el tipo de dato que va a almacenar. De los distintos tipos de datos con los que se puede trabajar, los más importantes con los que se pueden trabajar son los de la siguiente tabla: Tipo de dato Texto Número entero Número entero largo Número decimal N. decimal con 2 decimales Fecha y Hora Declaración en Basic String Integer Long Single Double Date En caso de que se declare una variable sin definir el tipo, el programa le asignará automáticamente el tipo Variant, con lo que podrá contener datos de cualquier tipo. OPERACIONES ARITMÉTICAS: La función de los operadores aritméticos es la de permitir realizar, con los datos de las distintas variables, las clásicas operaciones de sumar, restar, multiplicar, dividr así como otras no tan elementales. PROGRAMA 5: OPERACIONES ARITMÉTICAS DE UN NÚMERO A continuación realizaremos el siguiente formulario, diseñado para efectuar los principales cáculos aritméticos con los números que se introduzcan en los cuadros de texto. El formulario consta de dieciséis etiquetas, dos cuadros de texto y dos botones. Quedando de la siguiente manera: 10
Una vez diseñado el formulario pasaremos a crear nuestro programa, para ello lo primero que debemos hacer es declarar las variables que se van a utilizar en el programa. Para ello formularemos el número 1 y número 2 como Double indicando así que dichos números son números decimales de doble precisión. Public Class Form1 Dim num1, num2 As Double A continuación indicaremos que cuando hagamos click sobre el botón calcular nos calcule en cada etiqueta lo que nos indica, de la siguiente forma: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click num1 = TextBox1.Text num2 = TextBox2.Text TextBox3.Text = num1 + num2 TextBox4.Text = num1 - num2 TextBox5.Text = num1 * num2 TextBox6.Text = num1 / num2 TextBox7.Text = num1 ^ num2 TextBox8.Text = num1 \ num2 TextBox9.Text = num1 Mod num2 11
A continaución, al igual que hemos hecho en los programas anteriores haremos que el botón cerrar cierre el programa y que el botón borrar nos borre los datos anteriores. Curiosidad acerca del operador suma Hemos debido declarar variables numéricas (Double) para que cuando realicemos el código suma nos sume los valores numéricos mostrandonos el resultado oportuno. Sin embargo si no hubieramos indicado que las variables son numéricas lo que hubiera ocurrido en la función suma seria que nos hubiera puesto un número a continuación del siguiente COMPLETAMOS PROGRAMA 5 A continuación incluiremos dos cuadros de texto más junto a dos etiquetas en las que pondremos: Raiz cuadrada del 1er número y raiz cuadrada del segúndo número Para encontrar las raices cuadradas se incluirán los siguientes códigos indicados a continuación: TextBox10.Text = Math.Sqrt(num1) TextBox11.Text = Math.Sqrt(num2) PROGRAMA 6: MOLÉCULA DE CLORO A continuación vamos a crear un programa muy sencillo en el que se han definido algunas variables, se les ha asignado un valor a cada una de ellas y, posteriormente, se han ejecutado el formulario para obtener la impresión de los datos de cada variable. Lo primero que tenemos que hacer es definir las variables a utilizar: Dim átomos As Integer Dim masa1 As Single Dim masa2 As Single Dim molécula As String A continuación indicamos los valores de cada variable y posteriormente le indicamos cual es el mensaje que queremos que nos aparezca mediante la instrucción Msgbox. Nuestro código final debe quedar así: Public Class Form1 Dim átomos As Integer Dim masa1 As Single Dim masa2 As Single Dim molécula As String 12
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load molécula = "cloro" átomos = 2 masa1 = 35 masa2 = masa1 + átomos MsgBox("La masa molecular del " & molécula & " es " & masa2 & " uma") End Clas Cuando queremos introducir el valor de una variable en un texto debemos ponerlo entre comillas y entre & (símbolo que se pone pulsando el número 6 en mayúsculas). Ejemplos de este programa: &molécula& ; &masa2& Si ejecutamos el programa nos indicará mediante un mensaje que la masa molecular del cloro es 37 ( masa 1 + átomos) DECLARACIÓN DE CONSTANTES: Existen valores que permanecen inalterables en un programa, si estos se utilizan con frecuencia en el programa, y además su valor es dificil de recordar o escribir, sería muy interesante poderlos definir de algun modo para que resultara más sencillo incluirlos en las expresiones. Con esta intención se pueden definir, en visual basic, constantes con las mismas características que las variables, salvo una importante diferencia: el valor de una constante no puede ser modificado durante la ejecución del programa. Las sentencias para definir constantes son similares a las utilizadas con las variables, aunque ahora hay que utilizar la instrucción Const nombre = valor PROGRAMA 7: ÁREA DE UN CIRCULO A continuación realizaremos el siguiente programa en el cual a través del radio nuestro programa nos calculará la longitud de la circunferencia y el área del círculo. Para ello introducimos: Una etiqueta (Label1)donde indicaremos : Valor del radio Una segunda etiqueta (Label2) donde indicaremos: Longitud de la circunferencia Una tercera etiqueta (Label3) donde indicaremos: Área del circulo Una cuarta etiqueta (Label4) a la que dejaremos en blanco, sin texto,esta será donde aparecerá el valor del área del círculo Una quinta etiqueta (Label5) a la que dejaremos en blanco, sin texto, donde aparecerá el valor de la longitud de la circunferencia. Un cuadro de texto (Text.Box1) Un primer botón (Button1) donde indicaremos:calcular Un segundo botón (Button2) donde indicaremos :Salir 13
Una vez diseñado el formulario pasaremos a crear nuestro programa, para ello lo primero que debemos hacer es declarar las constantes y las variables que se van a utilizar en el programa, y en el caso de la constante, se le asigna su valor. Public Class Form1 Const Pi = 3.141592684 Dim Radio, Circunferencia, Círculo As Single Single: cualquier número decimal A continuación indicaremos al programa qu ecuando hagamos click en el botón calcular (Button2) nos asigne el valor de la circunferencia en la etiqueta 4 + el texto unidades (este texto lo debemos poner entre comillas para que aparezca ) y el del circulo en la etiqueta 5. Observa como debe quedar finalmente: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Radio = TextBox1.Text Circunferencia = 2 * Pi * Radio Círculo = Pi * Radio ^ 2 Label5.Text = CStr(Circunferencia) + " unidades" Label4.Text = CStr(Círculo) + " unidades cuadradas" Cstr nos convierte una variable en texto; si no lo indicamos el programa no entiende que significa circunferencia ya que es una variable,debemos traducirla en texto A continuación indicaremos en el botón Salir (Button1) que cuando hagamos click en este botón queremos que salga del programa (End). Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End 14
Mejorar programa 7 A continuación introduciremos un nuevo botón (button3) que será el encargado de borrar el contenido tanto del texto como de la etiquetas para poder realizar un nuevo calculo: Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = "" Label5.Text = "" Label4.Text = "" FUNCIÓN INPUTBOX Existe otro modo de introducir un dato, distinto del de escribirlo en un cuadro de texto, que consiste en utilizar la función InputBox. Esta función mostrará una caja de diálogo con el mensaje que se especifique, en la que se podrá escribir el dato que se quiera porporcionar al programa. La sintaxis completa de esta función es la siguiente. InputBox (mensaje, [titulo],[texto por omisión], [posición X],[posición Y]) Los argumentos que se muestran entre corchetes son optativos, por lo que no hay obligación de utilizarlos. El significado de cada argumento es: Mensaje:Este texto aparecerá en el cuadro de diálogo para informar al susuario de qué debe introducir. Título: este texto aparecerá en la barra de título del cuadro. Texto por omisión: si se especifica, aparecerá como texto por defecto en el cuadro de datos. Posición X y Posición Y: estos dos valores permiten especificar el lugar exacto de la pantalla en el que debe aparecer el cuadro de diálogo. PROGRAMA 8: INCREMENTAR UNA VARIABLE En este programa lo que vamos a hacer es crear un programa en el que me permita sumar dos núemros, pero en esta ocasión lo haremos con cuadros de dialogos usando así la función InputBox explicada anteriormente. Para ello cuando iniciemos el progama haremos que nos aparezca una caja de dialogo con el siguiente mensaje: introduce un valor de referencia (al igual que aparece en la siguiente imagen)a 15
A continaución al introducr el valor de referencia y darle en el botón de aceptar nos aparecerá otro mensaje que nos indicará: introduce el valor del incremento. De forma que al introducir el valor incrementado y darle a Aceptar nuestro programa hará que nos aparezca un tercer cuadro de dialogo donde aparecerá el valor de la suma de ambos números. Para realizar este programa haremos lo siguiente: Haciendo doble click en nuestro formulario, ya que no vamos a tener ningún botón ni etiquetas Primeramente debemos, como venimos haciendo en todos los ejercicios anteriores, asignar nuestras variables; en este caso diremos que a, b, c son números enteros. Public Class Form1 Dim a, b, c As Integer A continuación indicaremos mediante la función InptuBox que nos aparezca nuestro primer cuadro de dialogo, con el título que se haya especificado como segundo argumento (incrementar) y con el mensaje indicado como primer argumento; el valor que se introduce en cada cuadro de diálogo quedará almacenado en la variable a la que se haya asignado la función. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load a = InputBox("introducde un número", "Incrementar") b = InputBox("introduce el valor incrementado", "Incrementar") c = a + b MsgBox("el valor del número final es" & c & "") End Class Cambiar ligeramente el programa 8 A continuación lo que haremos será cambiar la función MsgBox por MessageBox. Con ello lo que hacemos es cambiar el final de nuestro programa, con la función MessageBox crearemos un mensaje de texto ( al igual que haciamos con MsgBox) pero que puede contener texto, botones y simbolos que informan al usuario (en este caso le indicaremos que nos ponga Incementar) 16
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load a = InputBox("introducde un número", "Incrementar") b = InputBox("introduce el valor incrementado", "Incrementar") c = a + b MessageBox.Show("el valor del número final es" & c & "", "Incrementar") End Class ESTRUCTURAS SELECTIVAS Las estructuras selectivas se utilizan para tomar decisiones lógicas. En ellas se evalúa una condición y en función de su resultado, se realiza unas u otras acciones. La sentencia If evalúa una condición y, en caso de cumplirse, ejecuta una serie de instrucciones determinadas; en caso contrario, seguirá ejcutándose el programa o se realizarán otras instrucciones alternativas. El formato general de esta sentencia es: If condición then sentencia1 [else sentencia2][] Si la condición es cierta, se ejecutará la sentencia1 y no se ejecutará la sentencia2, aunque se hubiera escrito. En caso de que la condición sea falsa, no se ejecutará la sentencia1 y sí lo hará, si se hubiera escrito, la sentencia2. PROGRAMA 9: COMPARACIÓN DE DOS NÚMEROS En el siguiente programa usaremos la función If para crear un formulario que nos informe de cuál de los dos números introducidos en dos cuadros de texto es mayor. Para ello crearemos el siguiente formulario usando 3 etiquetas (de las cuatro etiquetas, una es la que dice: primer número, otra la que dice segundo número y las tercera será en la que aparecerá el valor comparado), dos cuadros de texto y dos botones. 17
Lo primero que tenemos que hacer es, como venimos haciendo hasta ahora, definir las variables que vamos a usar, en este caso indicaremos que las variables a y b son números enteros (Integer) Public Class Form1 Dim a, b As Integer A continuación indicaremos que al hacer click en el botón 1 (el de comparar) ocurrirá que si el texto excrito en el primer cuadro de texto (al que hemos llamado a) es mayor que el texto escrito en el segundo cuadro de texto (llamado b) en la etiquta 3 (Label 3) me indique que el primer número es mayor que el segundo. Y si ocurre que que si el texto excrito en el primer cuadro de texto (al que hemos llamado a) es menor que el texto escrito en el segundo cuadro de texto (llamado b) en la etiquta 3 (Label 3) me indique que el primer número es menor que el segundo y sino ocurre nada de esto (Else) será porque los dos números son iguales. Para ello hemos utilizado distintos operadores relacionales habituales. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text If a > b Then Label3.Text = "El primer número es mayor que el segundo" Else If a < b Then Label3.Text = "El segundo número es mayor que el primero " Else Label3.Text = "Los dos números son iguales." Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 18
End Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Class A parte de estos operadores relacionales podemos usar también otros, los cuales se presentan en la siguiente tabla: Operador Escritura Igual que = Mayor que > Menor que < Mayor o igual que >= Menor o igual que <= Distinto de <> Mejoramos el programa 9 A continuación vamos a mejorar nuestro programa y lo que haremos es que cuando al hacer click en nuestro botón de comparar, el texto que nos aparezca ahora sea el siguiente: El segundo número, valor del número, es mayor o menor o igual, según proceda al segundo número, valor del número. De forma que debemos incluir las variables a y b en nuestros textos. Para ello nuestro código quedará de la siguiente manera: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text If a > b Then Label3.Text = "El primer número (" & a & ") es mayor que el segundo (" & b & ")" Else If a < b Then Label3.Text = "El segundo número (" & b & ") es mayor que el primero (" & a & ")" Else Label3.Text = "Los dos números (" & a & " y " & b & ") son iguales." OPERADORES LÓGICOS 19
A la hora de expresar algunas condiciones, ademas de los operadores relacionales, es necesario utilizar alguno de los denominados operadores lógicos. En la siguiente tala se muestran los principales operadores lógicos, junto a la forma de escribirse en Visual Basic y una breve descripción. Operador Escritura Descripción Y And El operdor Y obliga a que se cumplan todas las condiciones incluidas en la expresión, para que esta tome valor verdadero; en cuanto haya una que no se cumpla, la expresión tomará valor falso. O Or El operador O hace que la expresión tome valor verdadero en cuanto se cumpla una, o varias, de las condiciones incluidas en la expresión; solo en el caso de que no se cumpla ninguna de las condiciones, la expresión tomará valor falso Negación Not Este operador hace que la expresión tome valor verdadero cuando no se cumpla la condición, y lo tome falso cuando sí lo haga. PROGRAMA 10: COMPARAR TRES NÚMEROS En el siguiente programa se comparan tres números introducidos en otros tantos cuadros de texto para obtener algunos posibles resultados de esta comparación. Para ello utilizaremos varias estructuras If. En principio, como siempre, definiremos las tres variables a,b, c como núemros enteros (Integer) Public Class Form1 Dim a, b, c As Integer A Continuación indicaremos que cuando hacemos click en el botón calcular debemos indicar que Si la varialeb a =b Y b=c nos aparecerá en el cuadro de texto 5 un texto que diga que los tres números son iguales,incluso (Else) Si a=b o b=c 0 b=c que nos diga en el cuadro de texto 5 quede los tres números hay dos que son iguales. Para ello primeramente y una vez definidas arriba la variables las identificaremos indicando que cada una de ellas son las que aparecen en sus respectivos cuadros de texto. El programa quedará de la siguiente manera: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text c = TextBox3.Text If (a = b) And (b = c) Then TextBox5.Text = "LOS TRES NÚMEROS SON IGUALES." 20
Else If (a = b) Or (a = c) Or (b = c) Then TextBox5.Text = "DE LOS TRES NÚMEROS, HAY DOS QUE SON IGUALES." A continuación escribiremos todas las posibilidades que se nos presentanen el caso de que dos variables sean iguales entre si; mediante la función Si de nuevo: If a = b Then If a > c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL TERCERO," & c & "") If a = c Then If a > b Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL SEGUNDO," & b & "") If b = c Then If a > c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL TERCERO," & c & "") Y por último todas la posibilidades cuando no hay ningún número igual, por supuesto, continuando con la función Si. If a > b And b > c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL TERCERO," & c & "") If a > b And b < c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL SEGUNDO," & b & "") If b > a And b > c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL PRIMERO," & a & "") If b > a And b < c Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL PRIMERO," & a & "") If c > a And a > b Then 21
," & b & "") TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL SEGUNDO If c > a And a < b Then TextBox5.Text = ("EL NÚMERO MÁS PEQUEÑO ES EL PRIMERO," & a & "") Mejoramos el programa 10 A continuación incluiremos que en las etiquetas 7, 8 y 9 nos aparexcan los números dependiendo de si son mayores, menores o intermedios, para que tenga la siguiente apariencia: If a = b Then If a > c Then Label7.Text = a Label8.Text = b Label9.Text = c If a = c Then If a > b Then Label7.Text = a Label8.Text = c Label9.Text = b If b = c Then If a > c Then Label7.Text = a Label8.Text = b Label9.Text = c 22
If a > b And b > c Then Label7.Text = a Label8.Text = b Label9.Text = c If a > b And b < c Then Label7.Text = a Label8.Text = c Label9.Text = b If b > a And b > c Then Label7.Text = b Label8.Text = a Label9.Text = c If b > a And b < c Then Label7.Text = b Label8.Text = c Label9.Text = a If c > a And a > b Then Label7.Text = c Label8.Text = a Label9.Text = b If c > a And a < b Then Label7.Text = c Label8.Text = b Label9.Text = a Programa 11. Crear una calculadora 23
El Button 1, será donde pondremos el número 1, en el Button 2 el número 2 y así sucesivamente del 1 al 9. A continuación definiremos las variables indicando que son números tanto las variables introducidas como el operador (es decir el rsultado de suma, resta ). A continaución le indicaremos que cuando teclee el botón del 1 lo que quiero que salga en la tecla es el número que este ya mas un uno, de esta forma podremos poner números como el 11, 21,31, 111,1111..y así añadirá un uno hasta que yo no teclee a otro botón como el de suma, resta. Public Class Form1 Dim numero1 As String Dim operador As String Dim numero2 As String Dim resultado As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = TextBox1.Text + "1" Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = TextBox1.Text + "2" Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = TextBox1.Text + "3" Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click TextBox1.Text = TextBox1.Text + "4" Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click TextBox1.Text = TextBox1.Text + "5" Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click TextBox1.Text = TextBox1.Text + "6" Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click TextBox1.Text = TextBox1.Text + "7" Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click TextBox1.Text = TextBox1.Text + "8" 24
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click TextBox1.Text = TextBox1.Text + "9" Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click TextBox1.Text = TextBox1.Text + "0" El botón 11 será el que nos indicará donde está la coma y continuamos con el programa: Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click TextBox1.Text = TextBox1.Text + "," Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click TextBox1.Text = "" Ahora vamos a empezar con las operaciones, la primera la suma, para ello identificacmos primero que es el operador suma, y luego que si el operador es suma entonces el resultado debe ser la suma de los dos números, por eso con anterioridad hemos debido de decir que todas la variables son números, de esta forma los sumará y no pondrá uno a continuación del otro. Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click numero1 = TextBox1.Text TextBox1.Clear() operador = "suma" Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click numero2 = TextBox1.Text TextBox1.Clear() If operador = "suma" Then resultado = Val(numero1) + Val(numero2) TextBox1.Text = resultado If operador = "resta" Then resultado = Val(numero1) - Val(numero2) TextBox1.Text = resultado 25
If operador = "multiplicacion" Then resultado = Val(numero1) * Val(numero2) TextBox1.Text = resultado If operador = "división" Then resultado = Val(numero1) / Val(numero2) TextBox1.Text = resultado Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click numero1 = TextBox1.Text TextBox1.Clear() operador = "resta" Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click numero1 = TextBox1.Text TextBox1.Clear() operador = "multiplicacion" Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click numero1 = TextBox1.Text TextBox1.Clear() operador = "división" End Class 26