Guía de Programación I Guía realizada por Martha Semken y Sebastián Btesh ÍNDICE 1. Introducción a la programación…………………………. 2. Variables, Objetos y Operadores lógicos……………….. 3. Estructura IF……………………………………………………. 4. Eventos y Subrutinas………………………………………… 5. Ejercitación I………………………………………………….. 6. Estructuras For – While – Select Case …………………… 7. Objeto ComboBox y Funciones de Cadenas…………… 8. Ejercitación II………………………………………………… 9. Nuevos Objetos Visuales……………………………………. 10. Creamos Nuestras propias Subrutinas…………………….. Página 2 de 67 Unidad 1: “Introducción a la Programación” ¿Qué es Programar? Un programa no es mas de una serie de instrucciones dadas a la computadora, en un lenguaje entendido por el, para decirle exactamente lo que queremos que haga. Algoritmos en programación Un programa de computadora es un algoritmo que le dice a la computadora los pasos específicos para llevar a cabo una tarea. Los algoritmos son rigurosamente definidos para que la computadora pueda interpretarlos. El orden en que se ejecuta cada uno de los pasos que constituyen un algoritmo es fundamental. El orden más básico es de arriba hacia abajo, ejecutándose una instrucción tras otra de un código. Definición: Un algoritmo es una serie de pasos organizados y finitos que describe el proceso que se debe seguir, para dar la solución a un problema especifico ¿Qué es un Lenguaje de Programación? Un programa tiene que escribirse en un lenguaje entendible por la computadora. Desde el punto de vista físico, una computadora es una maquina electrónica. Los elementos físicos, (Memoria RAM, Procesador, etc. ) que tiene una computadora para representar las instrucciones y los datos son de tipo binario. Para Traducir un programa escrito en un determinado lenguaje de programación a lenguaje maquina (binario), se utiliza un programa llamado compilador, que ejecutamos mediante la computadora. Este programa tomara como dato a todo nuestro programa escrito en un lenguaje de alto nivel, como vb.net (Visual Basic.net) y dará como resultado el mismo programa pero escrito en un lenguaje maquina, el lenguaje que entiende la computadora, binario. Página 3 de 67 Estructura Básica de todo programa Todo programa debe obedecer a la estructura básica de un sistema, es decir Entrada, Proceso y Salida. Entrada: Son los datos necesarios que requiere el proceso para ofrecer los resultados esperados. Proceso: Son los pasos necesarios para obtener la solución del problema o la situación planteada. Salida: Resultados obtenidos por el proceso. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: · · · ¿Qué entradas se requieren? (cantidad y tipo) ¿Cuál es la salida deseada? (cantidad y tipo) ¿Qué método produce la salida deseada? Ejemplo si queremos Sumar dos Números: Entradas: Numero uno y Numero Dos Proceso: Resultado = Numero 1 + Numero 2 Salida: Mostrar por pantalla Resultado (Numero 1 + Numero 2) Página 4 de 67 Unidad 2: “Variables, Objetos y Operadores Lógicos.” Objetos Visuales Los objetos visuales son todos los componentes que conforman la interfaz visual de un programa en Visual Basic, por ejemplo como los botones, formularios, imágenes, listas, entre otros. Propiedades: Para todos los objetos y controles de Visual Basic, hay definidas una serie de propiedades que nos permiten controlarlos: nombre, tamaño, color, posición, etc. Página 5 de 67 Repasemos: Hasta ahora vimos Objetos visuales, como, Label, Textbox, Botón, Forma, y vimos para que servia cada objeto visual, y vimos que cada objeto tiene propiedades, que permiten controlar al objeto, por ejemplo, El Nombre (propiedad ñame) Permite darle un nombre al objeto, para luego programar usando este nombre. ¿Cómo Se escriben los Nombres de los objetos vistos hasta ahora? Objeto Forma Boton TextBox Label Abreviatura FM btn txt lbl Ejemplo frmCalculadora btnSuma txtNumero1 lblResultado Regla para nombrar los objetos Cada objeto se nombra con una abreviatura del tipo al que corresponde dicho objeto, por ejemplo: Button btn Form frm ComboBox cmb Y luego un nombre significativo, es decir que represente el uso que se le va a dar al objeto. Ejemplos Si en un botón se realiza una suma se debería llamar btnSuma. Página 6 de 67 Variables Una Variable es un espacio en memoria RAM, donde ponemos valores que se pueden modificar durante la ejecución de un programa. Uno de los Objetivos mas importantes de un programador es: Ocupar el menor espacio posible en Memoria RAM. Por eso a cada variable le asociamos un Tipo de Dato. Ahora, lo vamos a ver con mayor profundidad. Todos los datos tienen un tipo asociados con ellos que nos servirá para poder conocer con que información trabajaremos. Es decir, cuando ingresemos el sueldo de un trabajador necesitamos que este contenga decimales, o al solicitar la edad de una persona está tiene que estar con números enteros. Entonces la variable del Trabajador al contener decimales ocupa mas espacio en RAM que una edad de una persona ya que la edad no tiene decimales. Tipo de Variables: Integer: Número entero (Numero sin Comas ej: 15) Single: Número real (Numero con Comas ej: 5000.5) Char: Carácter (Un Carácter, ej: “A”) String: Cadena de caracteres (Texto ej: “Hola”) Boolean: Verdadero o falso (Ej: True) Cada Variable: Tiene que tener un Tipo de Dato asociado y un Nombre (es decir un Nombre que le asigna el programador a la variable, ej: Resultado, Y lo Guardamos de tipo Single (Números con Comas). El nombre tiene que ser significativo, debe representar el uso que se le dará a la variable. Si se va a guardar el valor de una calificación se llamara nota, si se desea almacenar la nota mas alta de un curso NotaMaxima o MaximaNota ¿Cómo se declaran Variables en Visual Basic? Dim NombreDeLaVarianble as Tipo de dato Ej. Dim Promedio as Single à Se genera un espacio en RAM con el Nombre “Promedio”, Se espera guardar: Numero con coma (Single). Página 7 de 67 Declarar varias variables en una misma línea: ¿Para que declarar varias variables en una misma línea? Declarar varias variables en una misma línea, sirve solamente para agilizar los tiempos . Por ejemplo, esta línea declara dos variables del tipo Integer: Dim a, b As Integer Es decir, hay que poner una coma entre cada variable que declaremos en la misma línea. Es exactamente lo mismo que poner Dim a as integer Dim b as integer Asignar Objetos y Variables: ¿Para que me sirven? Como ya dijimos los objetos son los que interactúan con el usuario, y las variables con el programa por eso es necesario asociarlo en dos situaciones, cuando el dato que necesitamos me lo da el usuario (asignamos a la variable el valor ingresado por el usuario, dicho valor está contenido en el objeto) Y también lo vamos utilizar cuando es necesario que del programa salga algo para informarle al usuario mediante un objeto, (Ej.: Sale por un Label; “El resultado es 5”) Como asignar Variables y objetos: Cuando el dato que necesitamos me lo da el usuario (ej: A la Variable Num1 le asignamos el dato del Objeto: txtNumero1) Para hacer un ingreso de datos se necesita un textbox para darle la posibilidad al usuario de ingresar un dato. La lógica por ejemplo de cargar una variable seria: Pone el TEXTO que escribió el usuario en el Objeto txtNum1 a la variable Numero1 De tipo SINGLE. Nosotros Obtenemos el TEXTO y la variable es de tipo SINGLE. No podemos asignar un Texto a una Variable de otro tipo que no sea Texto. Entonces Hay que convertir el Valor a el tipo de dato que espera la variable. Página 8 de 67 Dim Variable as Single Variable=Convert.toSingle(txtNum1.Text) Obtenemos el texto del Objeto txtNum1 y lo convertimos a Single para Pasarlo a el Valor de La variable. Si lo debemos asignar a una variable INTEGER: Variable=convert.toint32(objeto.text) Si lo debemos asignar a una variable SINGLE: Variable=convert.tosingle(objeto.text) Si lo debemos asignar a una variable STRING: Variable=objeto.text Ojo: Solamente en STRING se puede convertir el texto de Un Objeto con la Variable de Tipo String, ya que justamente la variable espera texto, pero en SINGLE HAY QUE CONVERTIRLO y EN INTEGER HAY QUE CONVERTIRLO. Como asociar Objetos y Variables: Cuando El usuario se tiene que enterar a través de un objeto (Ej.: Label) , lo que realizo el programa (Ej. el usuario se tiene que enterar por pantalla a través de un label el valor de la variable promedio) IMPORTANTE: “Siempre que sale datos por pantalla a través de un objeto OBLIGATORIAMENTE SE DEBE MOSTRARSE EN STRING, ya que los objetos solo manejan formato texto. Entonces si la Variable esta en tipo Single o Integer, Lo convertimos a String y la asociamos al Objeto. VAMOS A ASOCIAR Y A CONVERTIR EN STRING LA VARIABLE. Objeto.text=convert.tostring(variable) Si la variable ya esta en tipo string, y como el objeto espera texto, se pueden igualar. objeto.text=variable A lo Largo de nuestros programas seguramente vamos a tener que usar por lo menos los básicos operadores Matemáticos: Página 9 de 67 Vamos A realizar un programa que Sume dos Números ingresados por el Usuario y que el resultado lo muestre en un cartel por pantalla. A la hora de hacer un programa en papel, ponemos En una tabla de un lado, el Nombre del Objeto y del Otro la propiedad “Text” (el texto del Objeto) Nombre Texto frmSuma “Suma” lblIngreseNumero1 “Ingrese Numero 1” lblIngreseNumero2 “Ingrese Numero 2” txtNum1 “” txtNum2 “” btnSumar “Sumar” En principio vamos a poner: “Programamos en el Botón: btnSuma”, mas adelante vamos a ver bien que quiere decir esto. Declaramos Variables que necesitamos: Una para cada numero que se ingresa y Otra que guarde la suma de los dos numeros Ingresados. Dim Numero1 As Single Dim Numero2 As Single Dim resultado As Single Página 10 de 67 Ahora Tenemos que convertir a tipo single el texto ingresado por el usuario, y asociarlo con cada Variable. Numero1 = Convert.ToSingle(txtNum1.Text) Numero2 = Convert.ToSingle(txtNum2.Text) Ahora Tenemos que Sumar las dos variables que contienen, el valor ingresado por el usuario. resultado = Numero1 + Numero2 Y por Ultimo se Muestra en un MessageBox (Cartel) MessageBox.Show(“El resultado es” & resultado) El messageBox mostrara todo lo que se coloque entre paréntesis, pero esto siempre debe ser un texto, el símbolo & cumple la función de convertir a texto resultado como convert.toString y además juntar el texto resultante con el que escribimos entre comillas. Nota: tanto para nombres de objetos como para nombre de variables no se deben usar espacios ni caracteres con tilde. Página 11 de 67 Ejercicio 1: Ejercicio de Asociación (Variables y objetos) y (objetos y variables) Nota: Cuando no específico el nombre de un objeto o de una variable se debe inventar uno. Asociar Variables y Objetos Tipo (a entrar al programa, es decir que puede llegar a operar) Objeto Variable Asociacion Single Txtnum1 Dim numero1 as single Numero1=convert.tosingle(txtnum1.text) Dim Promedio as single Dim nombre as string Txtedad Txtdni dim peso as single Altura=convert.tosingle(txtaltura.text) Txtdomicilio Edaddelpadre=convert.toint32(txtedaddelpadre.text) Página 12 de 67 Asociar Objetos y variables (sirve para mostrar por pantalla Ej.: en lblresultado mostrar Promedio) Tipo 2 (Para salir Por pantalla) Objeto A Mostrar Variable Asociacion Txtresultado.text=convert.tostring(resultado) lblpromedio.text=convert.tostring(promedio) Lblnombre.text=nombre Dim operacion as single Txtsuma Dim suma as single dim peso as single Lblnombre Dim nombre as string Dim domicilo as string Txtpromedio Dim promedio as single Txtresultado. text =convert.tostring(promedio) Página 13 de 67 Ejercicio 2: Identificar las Variables que se deben asociar con objetos, es decir las variables que almacenan el dato ingresado por el usuario, por ejemplo: Dim Num as Single, A esa Variable se la asocia con un objeto Ej. Txtnum. Y una variable que calcule, ej Resultado, es un calculo que se hace en el programa, y no se Asocia directamente con el usuario. Identificar con Verdadero y/o Falso · · · · · · · · · · · · Dim nombre as string Dim promedio as single Dim domicilio as string Dim resultado as single Dim telefono as string Dim operación as single Dim suma as single Dim dni as integer Dim multiplcacion as integer Dim colegio as string Dim calculo as single Dim edad as intger En caso de las verdaderas ASIGNAR variables y objetos. Ej. Si quiero asignar la variable dim numero1 as single Invento un objeto llamado txtnum1 y ponemos: Numero1=convert.toSingle(txtnum1.text) Página 14 de 67 Ejercicio 3: Identificar los objetos que se deben asignar con variables, es decir cuando la variable hace una operación (un calculo) y se le debe mostrar el resultado a través de un objeto. Identificar con Verdadero y/o Falso · Txtnum1 · Txtresultado · Txtpromedio · Txtsuma · Lblingresenombre · Lblmultiplicacion · Lblpromedio · Lblelpromedioes · Lblprecioconiva En caso de los objetos marcados verdaderos ASIGNAR objetos y variables para salir por pantalla. Ej. Si quiero asignarle un valor al objeto llamado lblTotal Invento una variable dim resultado as single. Y ponemos: lblTotal.text=convert.toString(resultado) Página 15 de 67 Unidad 3: “Estructura IF” IF A veces en un programa necesitamos Seguir por un camino u otro, por ejemplo si la edad de una persona es menor a 18, la persona es menor de edad, y si no es mayor de edad. Para Ver como se Utiliza esta estructura, vamos a realizar el ejemplo anterior. En el Textbox de Abajo debe aparecer el resultado del Programa. Nombre Texto frmVerificacion “Verificacion” lblIngreseEdad “Ingrese Edad ” btnEnviar “Enviar” txtEdad “Edad” txtSituacion “” Declaramos una Variable Integer donde Guarde la edad Ingresada Dim Edad As Integer Como la Variable edad espera Integer y el textbox nos devuelve Texto, lo convertimos. Edad = Convert.toInt32(txtEdad.Text) Preguntamos si edad es Mayor o Igual a 18 If Edad >= 18 Then Lo que pasa si se cumple la condicion txtSituacion.Text = "Mayor de Edad" Else Lo que pasa si no se cumple la condicion txtSituacion.Text = "Menor de Edad" End If Página 16 de 67 La sentencia IF del ejemplo anterior se interpreta así: SI la condición especificada (Edad>=18), es cierta, escribir en txtSituacion “Mayor de Edad”, Si no poner “Menor de Edad”. Aprendamos 3 casos de If que podemos Llegar a usar: Caso 1 if condición then ‘ Bloque de código else ‘ Bloque de código end if Caso 2: El else no es obligatorio if condición then ‘ Bloque de código end if Caso 3: If anidado if condición then if condición then ‘ Bloque de código Else ‘ Bloque de código End if Else ‘‘ Bloque de código end if El if anidado puede darse tanto en el bloque verdadero como en el bloque falso. Ya sabemos como usar el IF. Ahora lo vamos a Aplicar para algo muy Útil. Las Condiciones las vamos a usar también para preguntar si un objeto esta vacío aparezca un mensaje de error, y si no esta vacío que recién ahí me “asocie variables y objetos” ¿Para que me sirve esto? ¿Qué va a entrar al programa? si esta vacío, al asociarlo estamos entrando un dato , si el usuario no escribió nada no va a poder entrar nada al programa y va a saltar un error cuando estemos ejecutando el programa Página 17 de 67 ¿Cómo se hace? IF OBJETO.text=”” then Messagebox.show(“Este campo esta vacio, por favor complete”) Else Convertimos ej: N1=convert.tosingle(txtnum1.text) Endif Nota: En vb.Net “” Significa VACIO, Estamos preguntando si el Objeto esta vacio, aparezca cartel solicitando completar, si no esta vacio recien ahí convertimos a la variable, y hacemos todo el programa. Todas las condiciones tienen operadores relacionales: Una misma condición se le puede decir, que cumplan y/o / no condiciones. Operadores lógicos Página 18 de 67 Ejercicio 4 Consigna: Crear un Programa que cumpla ciertas Características: Ø Dibujar el Form Ø Señalar con flechas cada Objeto y especificar La propiedad Nombre y Texto. Ø EN TODOS los ingresos de datos se tiene antes de operar, que preguntar si el objeto esta vacio, y luego convertirlos. 1. Se tiene que mostrar por pantalla la variable promedio ( se debe ingresar tres notas) , pero se exige que muestre en un messagebox “El Promedio es “ – ( ­ significa el promedio). 2. Se tiene que mostrar por pantalla la variable resultado( tiene que sumar 2 números), pero se exige que muestre en un label “El resultado es “ – ( ­ significa el Resultado). Página 19 de 67 3. Al presionar un botón, Mostar por pantalla simplemente que la edad ingresada. A través de un Label y Un messagebox Página 20 de 67 4. Ingresar los 3 lados de un Triangulo. Determinar y Mostrar en un Messagebox, si es equilátero, isósceles, o escaleno. Ejercicio 5 Si bien todas las líneas de código son muy importantes, hay una que es la que realiza la acción (Ej., calcula el promedio) El Siguiente ejercicio esta destinado a que entiendas lo que se plantea y escribir esta línea simplemente. Página 21 de 67 Se desea calcular el promedio de una materia de un alumno que el sistema de la materia es Trimestral. Se desea calcular el promedio de una materia de un alumno que el sistema de la materia es Cuatrimestral. Se desea calcular el promedio de una materia de un alumno que el sistema de la materia es Bimestral. Se desea calcular el IVA de un producto. Se desea calcular el precio sin IVA de un producto. Se desea calcular el precio con IVA de un producto. Página 22 de 67 Unidad 4: “Eventos y Subrutinas” Eventos: Cada objeto lleva asociados unos determinados eventos que le pueden ocurrir, por ejemplo a un botón, le puede ocurrir que el usuario pulse con el botón principal del ratón sobre él, eso es el evento NombreDelBotón_Click (ej: btnEnviar_Click), bien cuando esto ocurra, se dispara este evento, al cual nosotros le añadiremos el código de lo que queremos que haga la aplicación cuando el usuario pulse el botón. Subrutinas de VB.NET Public Class form1 Inherits System.Windows.Forms.Form Private Sub btnPromedio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPromedio.Click Quiere decir Objeto: btnPromedio Gracias a la regla usada para nombrar los objetos sabemos que este código corresponde a un boton Evento: Click End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End Sub Private Sub frmPrecios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Página 23 de 67 Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress End Sub Private Sub TextBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.MouseEnter End Sub Private Sub Button2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Enter End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End Sub End Class Acordarse de poner End Sub: Sirve para cerrar subrutinas End Class : sirve para terminar el form (por ahora para terminar el programa) Luego del nombre entre paréntesis figuran los parámetros del evento, es decir que información adicional me puede suministrar la subrutina. El primero ” sender” me sirve para referenciar el objeto que me invoco, el segundo “e”, me da información si corresponde al evento por ejemplo en eventos de mouse, podría tener como información la posición del mouse en pantalla, en eventos de teclado que tecla genero el evento. Página 24 de 67 Uso de parámetros de los eventos Muchas Veces vamos a tener que bloquear el ingreso de letras o números al ingreso de datos, por ejemplo en una calculadora no ingresamos letras, y si esto sucede aparece error en el programa al convertir las letras a single. El evento key press se activa cuando el usuario presiona teclas, podemos decirle que si el usuario presiono una tecla que no queremos que se muestre, No se muestre. Private Sub txtNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnumero.KeyPress If instr(“0123456789”,e.keychar)<>0 then e.handled=false else e.handled=true endif End Sub La función instr(“0123456789”,e.keychar) busca el carácter ingresado o sea la tecla presionada en la cadena “0123456789” si pregunto <> 0 Quiere decir: que permite ingresar solo los caracteres que están entre comillas (“0123456789”) y bloque todo lo de más. =0 quiere decir: que bloquea el texto si es alguno de los caracteres entre comillas (“0123456789”) y permite todo lo de mas. Entre el paréntesis, se le puede agregar otras cosas como – Ej. (“0123456789­”) Página 25 de 67 Unidad 5: “Ejercitación I” En todos los ejercicios es recomendable, utilizar todas las herramientas, vistas hasta ahora (Key press, los ingresos de datos se tiene antes de operar, que preguntar si el objeto esta vacio, y luego convertirlos.) Ejercicio 6 Dado un número determinar si es positivo o negativo. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 26 de 67 Ejercicio 7 Ingresar tres valores; M, N y P. Si M es menor a N hacer R= M*N + P. En caso contrario, hacer R = (M+N) * P. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 27 de 67 Ejercicio 8 Dados dos números, dar la relación entre ellos. Señalar el mayor, el menor o especificar si son iguales Página 28 de 67 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 29 de 67 Ejercicio 9 Calcular el precio con IVA . En un texbox ingreso el precio sin IVA, y al tocar el botón en otro texbox aparece el valor con IVA. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 30 de 67 Ejercicio 10 Ingresar los valores de la base y la altura de un rectángulo. Calcular la superficie y el perímetro de dicho rectángulo. Página 31 de 67 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 32 de 67 Ejercicio 11 Ingresar los valores de los 2 lados de un triángulo rectángulo. Calcular la superficie y el perímetro de dicho triangulo. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 33 de 67 Ejercicio 12 Ingresar los valores de los 2 lados de un triángulo isósceles. Calcular la superficie y el perímetro de dicho triangulo. Este ejercicio se diferencia de los de mas ya que tiene un nivel mas alto de lógica. Por eso te ayudamos a pensarlo. Página 34 de 67 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 35 de 67 Ejercicio 13 Ingresar los 3 lados de un triangulo. Determinar y mostrar en un messagebox, si es equilátero, isósceles o escaleno. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 36 de 67 Página 37 de 67 Unidad 6: “Estructuras For – While – Select Case” Estructura Select Case: La estructura Select Case permite ejecutar una de varias acciones, en función del valor de una expresión. También se la conoce como estructura de selección múltiple Supongamos que se ingresa el Número de Mes y tiene que aparecer en un messagebox el Nombre del Mes que le pertenece a ese número. Public Class Form1 Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click Declaramos una Variable de tipo entero llamada numerodeMesIngresado que va a contener el Numero de mes ingresado, (del uno al 12) Dim numerodeMesIngresado As Integer If txtnumerodeMes.Text = "" Then MessageBox.Show("No se introdujo ningun numero de mes, por favor Verifique") Else El valor del txtNumerodeMes lo convertimos a integer y lo pasamos a la variable numero de mes ingresado. numerodeMesIngresado = Convert.ToInt32(txtnumerodeMes.Text) Declaramos una variable de tipo String (texto), para guardar el Nombre del mes que le corresponde a la variable numerodeMesIngresado. Dim mes As String Acá utilizamos El select case dando Opciones Es decir, nosotros sabemos que el usuario va a ingresar un numero del uno al doce, Página 38 de 67 entonces ponemos caso 1, mes es enero, caso numero ingresado es 2 mes es febrero, y así sucesivamente. Según el numero ingresado Select Case numerodeMesIngresado Case 1 mes = "Enero" Case 2 mes = "Febrero" Case 3 mes = "Marzo" Case 4 mes = "Abril" Case 5 mes = "Mayo" Case 6 mes = "Junio" Case 7 mes = "Julio" Case 8 mes = "Agosto" Case 9 mes = "Septiembre" Case 10 mes = "Octubre" Case 11 mes = "Noviembre" Case 12 mes = "Diciembre" En los case enumero los posibles valores End Select Luego muestra en un MessageBox, el Nombre del Mes que contiene la variable Mes. MessageBox.Show("El mes es: " & mes) End If End Sub End Class Estructura For: Es una estructura de repetición definida, es decir, con esta estructura podemos repetir un código un número determinado de veces. La forma de usarlo sería: For <variable numérica> = <valor inicial> To <valor final> [Step <incremento>] ' contenido de lo que se quiere repetir Next La variable numérica tomará valores que van desde el valor inicial hasta el valor final, si no se especifica el valor del incremento, éste será 1. Página 39 de 67 Pero si nuestra intención es que el valor del incremento sea diferente a 1, habrá que indicar un valor de incremento; lo mismo tendremos que hacer si queremos que el valor inicial sea mayor que el final, con idea de que "cuente" de mayor a menor, aunque en este caso el incremento en realidad será un "decremento" ya que el valor de incremento será negativo. Lo entenderemos mejor con unos algunos ejemplos: Dim i As Integer ' For i = 1 To 10 ' contará de 1 hasta 10 ' la variable i tomará los valores 1, 2, 3, etc. Next For i = 1 To 100 Step 2 ' contará desde 1 hasta 100 (realmente 99) de 2 en 2 ' la variable i tomará los valores 1, 3, 5, etc. Next For i = 10 To 1 Step ­1 ' contará desde 10 hasta 1 ' la variable i tomará los valores 10, 9, 8, etc. Next For i = 100 To 1 Step ­10 ' contará desde 100 hasta 1, (realmente hasta 10) ' la variable i tomará los valores 100, 90, 80, etc. Next For i = 10 To 1 ' Aca No se repetira ninguna vez porque le estamos diciendo, de que Valla desde I que es 10 hasta 1. incremento 1. Entonces, 10 sumando de a 1 nunca llegara a 1. Next Estructura While Es una estructura de repetición indefinida, se repetirá mientras se cumpla una condición, que se indicará después de While. La forma de usarlo es: W hile <condición> ' lo que haya que hacer mientras se cumpla la condición End W hile Con esta estructura, se evalúa la condición y si el resultado es un valor verdadero, se ejecutará el código que esté dentro de la sentencia, es decir, entre While y End While. Página 40 de 67 La condición será una expresión lógica que se evaluará para conseguir un valor verdadero o falso. Veamos algunos ejemplos: Dim i As Integer I=0 While i < 10 MessageBox.Show("Hola" & i) i = i + 1 End While La sentencia se repetirá mientras i sea menor que 10, fíjate que el valor de i se incrementa después de mostrarlo, por tanto se mostrarán los valores desde 0 hasta 9, ya que cuando i vale 10, no se cumple la condición y se sale de la sentencia. Dim n, i As Integer n = 3 i = 1 While i = 10 * n ' no se repetirá ninguna vez End While No se repetirá ninguna vez, ya que la condición es que i sea igual a 10 multiplicado por n, cosa que no ocurre, ya que i vale 1 y n vale 3 y como sabemos 1 no es igual a 30. Página 41 de 67 Unidad 7: “Objeto ComboBox y Funciones de Cadenas” Objeto ComboBox Agregar Items al ComboBox cmbalgo.items.add(contenido) Supongamos que en un formulario se tiene que seleccionar el Día de Nacimiento, después el Mes y después el Año. En el ComboBox del día hay que cargar del 1 al 31 para que se seleccione: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cmbdia.Items.Add("1") cmbdia.Items.Add("2") cmbdia.Items.Add("3") cmbdia.Items.Add("4") 'Hasta llegar a cmbdia.Items.Add("31") End Sub Esto tardaría Mucho Tiempo hacerlo así los 31 días del mes. Podemos usar un For, que se repita desde 1 hasta 31 veces. Dim i As Integer For i = 0 To 31 ‘I va ir tomando el valor de 1,2,3,4, hasta 31 y agrega al ComboBox el Valor de I cmbdia.Items.Add(i) Next Como consultar por algo: Consultar por el Contenido Seleccionado: Cmb.selecteditem Página 42 de 67 Consultar por la Posición seleccionada: (Ej. si el primero es 1900 la posición es 0) : Cmbbaño.selectedindex Realicemos un Ejercicio… Ingresar en un textbox un número entre 1 y 10. Programar en un botón que se llene un combobox con la tabla de multiplicar de dicho número. Ejemplo: se ingresa 5, en el combo box aparecerá 1 x 5 = 5 2 x 5 =10 3 x 5 =15 . 9 x 5= 45 10x 5=50 Diseño frmEjercitacion Ejercitacion lblIngreseNumero Ingrese Numero txtIngreso “” btnEnviar Enviar CmbTabla “” Programamos en el Botón: btnEnviar Evento:Click If txtIngreso.Text = "" Then MessageBox.Show("Ingrese Algun Numero") Else Dim num As Integer num = Convert.ToInt32(txtIngreso.Text) If num<=10 and num>=1 Then Dim i As Integer For i = 0 To 10 Dim resultado As Integer resultado = i * num cmbTabla.Items.Add(i & "x" & num & " = " & resultado) Next End If End If Página 43 de 67 Funciones de Cadenas: “HOLA” à Sabemos que es de tipo STRING, ahora vamos a ver funciones de Cadenas, (String). Length Esta función nos sirve para obtener la longitud de una cadena, longitud es la cantidad de caracteres que contiene la cadena. Ej.: “Hola”. length = 4 Porque tiene 4 letras. Dim Palabra as String Palabra= “TIC” Palabra.length=3 porque palabra es Tic, y tic tiene 3 caracteres. Substring Esta Función sirve para Sacar de a pedasos la cadena, es decir de la cadena nos devuelve una Subcadena. Para esto es necesario la posición de comienzo, y la cantidad de caracteres que se desea obtener. (Posición, Cantidad) Importante: La posición de la cadena empieza en 0, Ej.: en hola (H=0, O=1, L=2 a=3) “Hola”.substring(0,1) Le estamos diciendo que desde la posición 0 nos devuelva el primer carácter = H “Hola”.substring(1,2) Le estamos diciendo que desde la posición 1 nos devuelva los dos siguientes caracteres = ol Dim palabra as string Palabra= “redes” Palabra.substring(2,1)= “d” ´porque r=0, e=1, d”2 y que de la posición 2 (d) saque un solo carácter = d Página 44 de 67 Ingresar en un textbox una palabra o frase, y que me la ponga en un Combobox letra abajo otra letra abajo otra letra. Ej. Yo Ingreso Hola. (en el textbox) y en el combo box que aparezca. H o l a Diseño frmEjercicio11 Ejercicio 11 lblIngresePalabra Ingrese Palabra btnEnviar Enviar txtPalabra “” cmbLista “” Programamos en La rutina del Boton: btnEnviar, Evento: Click If txtPalabra.Text = "" Then MessageBox.Show("Ingrese Palabra") Else Declaramos una Variable llamada Palabra donde va a estar la palabra ingresada por el usuario. Dim palabra As String Asociamos la variable palabra con el TextBox (txtPalabra), recordemos que no es necesario poner convert.toostring ya que la palabra ya esta en string y la variable palabra espera texto. palabra = txtPalabra.Text Declaramos una variable de tipo entero llamada i que va a ser la que usemos en el for. Dim i As Integer Página 45 de 67 Desde que i es igual a 0 hasta que i es igual a la cantidad de caracteres de esa palabra menos uno (en unas líneas vamos a ver porque menos uno). Por ejemplo si palabra = Hola, i va a tomar el valor de 0,1,2,3 For i = 0 To palabra.Length – 1 Declaramos una variable llamada Letra que va a guardar cada letra de esa palabra Dim letra As String Para separar la palabra en pedasos de letras usamos la función Substring: Por ejemplo Si queremos sacar la H de la palabra Hola seria palabra.substring(0,1) Le decimos que de la palabra Hola se valla la posición 0 (H) y que nos saque un solo carácter entonces como resultado da: H Pero como nosotros no siempre necesitamos sacar la H, después va tener que ser la O, después la L después, la A. Le decimos que la posición sea la variable I ( que va a tomar el valor la cantidad de caracteres de la palabra Hola= 4 ­1 porque empieza de la posición 0) letra = palabra.Substring(i, 1) Agregamos a el comboBox la letra. cmbLista.Items.Add(letra) Next End If Página 46 de 67 Unidad 8: “Ejercitación II” En todos los ejercicios es recomendable, utilizar todas las herramientas, vistas hasta ahora (Key press, los ingresos de datos se tiene antes de operar, que preguntar si el objeto esta vacío, y luego convertirlos.) También es recomendable, comentar en código la lógica, para hacer más ágil, la persona que corrija. Ejercicio 14 Ingresar en un textbox un número entre 1 y 10. Programar en un botón que se llene un combobox con la tabla de multiplicar de dicho número. Ejemplo: se ingresa 5, en el combo box aparecerá 1 x 5 = 5 2 x 5 =10 3 x 5 =15 . 9 x 5= 45 10x 5=50 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 47 de 67 Ejercicio 15 Ingresar en un textbox un número entre 1 y 10. Programar en un boton que se llene un combobox con la tabla de multiplicar de dicho número a la inversa. Ejemplo: se ingresa 5, en el combo box aparecerá Página 48 de 67 10 x 5 = 50 9 x 5 = 45 8 x 5 = 40 . . 2 x 5 = 10 1x5= 5 Página 49 de 67 Ejercicio 16 Se ha diseñado el siguiente formulario, Se debe completar el dia mes y año en el que nació (en un combo box), y debe aparecer en un messagebox la edad actual. Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 50 de 67 Ejercicio 17 Ingresar en un textbox una palabra o frase, y que me la ponga en un Combobox letra abajo otra letra abajo otra letra. Ej. Yo Ingreso Hola. (en el textbox) y en el combo box que aparezca. H o l a Aparte que al presionar el botón me muestra en un messagebox la palabra ingresada y cuantas vocales y consonantes tiene hay ej “La Palabra hola tiene 2 vocales y 2 consonantes” Página 51 de 67 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 52 de 67 Ejercicio 18 Se ha diseñado el siguiente formulario. En el cuadros de texto donde dice ingrese palabra se desea ingresar una palabra para luego operar con ella. Al presionar en enviar tiene que apacer en un combo box la palabra con letras invertidas. (Ej. si ingreso Hola que muestre : aloH.) Luego tiene que mostrar en un label la cantidad de vocales y consonantes de la siguiente forma “En la palabra (palabra) hay x Consonantes y x Vocales” Lo ultimo que hace el programa es Poner en un Textbox Todas las vocales utilizadas, separadas por un guión medio “­“ Ej. Si ingreso la palabra Hola, En el Textbox debe aparecer: “o­a” Página 53 de 67 Una Imagen del Programa funcionando con la palabra de ejemplo: Hola Página 54 de 67 Página 55 de 67 Ejercicio 19 Realizar un programa para resolver una ecuación de segundo ax 2 + bx + c = 0 grado. La formula para la resolución de una ecuación de segundo - bgrado ± b 2 - 4 ´ a ´ c es: 2 ´ a Mostrar los Valores de X1 y X2 en Un combo box, Diciendo: X1 es igual – X2 es Igual – Y mostrar También en un Label: Los Valores de X1 y X2 de la Mima forma X1 es igual – X2 es Igual – Diseña vos el form Página 56 de 67 Ejercicio 20 Se ha diseñado el siguiente formulario. Primero se desea Ingresar el Apellido de Un alumno, y que ese apellido lo muestre en el label mas inferior, (Apellido del Alumno : ­ (apellido)) En los cuadros de texto se desea ingresar. Las notas de los 3 trimestres de un alumno. El primer botón debe calcular el promedio y mostrarlo en el panel inferior (textbox), además de decir si aprobó o no en un messagebox, el segundo botón debe calcular las notas máxima y Página 57 de 67 mínima y mostrarlas los labels de abajo y también en un messagebox , el texto debe decir “La nota máxima es – y la mínima –“. En los guiones debe figurar la nota correspondiente según las ingresadas. Página 58 de 67 Ejercicio 21 Se ha diseñado el siguiente formulario. En los cuadros de texto se desea ingresar una hora inicial (hora 11 minuto 23 segundo 10) tener en cuenta que la hora no puede ser mayor a 24 y los minutos y segundos no mayores a 120. En el textbox minutos a sumas se ingresa un valor que representa minutos este valor no puede superar 60. Se debe calcular la hora final si a la hora ingresada se le suman los minutos. Mostrar en un messagebox un mensaje con el resultado. El texto deberá decir por ejemplo: La hora final es 12:15:00 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir Página 59 de 67 Página 60 de 67 Ejercicio 22 Se ha diseñado el siguiente formulario: En el cuadro de texto donde dice ingrese palabra se desea ingresar una palabra para luego operar con ella. Al Presionar el botón enviar debe aparecer un messagebox Con: Cantidad de Caracteres que tiene la palabra. (Ej. La palabra Hola tiene 4 caracteres) La descomposición de la palabra ( Ej. La palabra hola se descompone así: h­o­l­a) Se exigen los guiones, y que en la ultima letra no tenga guiones como esta, en la “a” no termina con un guión­ La descomposición inversa de la palabra. ( Ej. La palabra hola la descomposición inversa se descompone así: a­l­o­h) Se exigen los guiones, y que en la última letra no tenga guiones como esta, en la “h” no termina con un guión­ Un ejemplo escrita la palabra: hola Página 61 de 67 Diseño Darle nombre adecuado a los objetos y asignarles el texto que se quiere mostrar para cada caso decir que propiedad se debe cambiar. Identificar todos los objetos Página 62 de 67 Página 63 de 67 Unidad 9: “Nuevos Objetos Visuales” RadioButton: En diseño se Abrebia: rbtAlgo, ej: rbtMasculino Como saber si esta seleccionado: If rbtMasculino.Checked = True Then ‘Lo que quiero que pase si esta seleccionado Masculino ej: MessageBox.Show("Usted es Hombre") End If CheckBox: En diseño se abrevia, chkAlgo, ej: chkCiencia. Como saber si esta seleccionado: If chkMusica.Checked = True Then ‘Lo que quiero que pase si esta seleccionado Musica ej: MessageBox.Show("Musica") End If Página 64 de 67 Unidad 10: “Creamos nuestras propias subrutinas” Una subrutina es un grupo de instrucciones, que están diseñados con un propósito particular y tienen un nombre . Es decir una subrutina es una parte de un programa que realiza tareas específicas y que no regresa valores al programa principal. Para dirigirse a esa porción de código del programa se usa el nombre de la subrutina. Es conveniente usar subrutinas cuando existe un grupo de instrucciones o una tarea que deben ejecutarse mas de una vez. Cuando un problema es muy complejo o extenso se divide en tareas específicas. Sub NombredelaSubrutina() Es decir, es como un asterisco en una hoja, al poner eso, se dirige a la porción de código con ese nombre de subrutina. El formato para construir una subrutina en VISUAL BASIC NET es: Sub nombre de subrutina() Instrucciones End Sub Veamos mejor con un ejemplo Página 65 de 67 Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click Preguntamos si el objeto txtNota1 este vacio If txtNota1.Text = "" Then Si esta vacio lo dirigimos a la subrutina llamado mostrarCarteldeFaltacompletar, donde aparece en un messagebox un cartel solicitando que se escriba. mostrarCarteldeFaltacompletar() Preguntamos si el objeto txtNota2 esta vacio ElseIf txtNota2.Text = "" Then Si esta vacio lo dirigimos a la subrutina llamado mostrarCarteldeFaltacompletar, donde aparece en un messagebox un cartel solicitando que se escriba. mostrarCarteldeFaltacompletar() Preguntamos si el objeto txtNota3 esta vacio ElseIf txtNota3.Text = "" Then Si esta vacio lo dirigimos a la subrutina llamado mostrarCarteldeFaltacompletar, donde aparece en un messagebox un cartel solicitando que se escriba. mostrarCarteldeFaltacompletar() Else Si no esta vacio el txtnota1, txtnota2, txtnota3 recién ahí empezamos a declarar las variables y convertir Dim n1, n2, n3 As Integer, promedio As Single n1 = Convert.ToInt32(txtNota1.Text) n2 = Convert.ToInt32(txtNota2.Text) n3 = Convert.ToInt32(txtNota3.Text) Luego calculamos el promedio promedio = (n1 + n2 + n3) / 3 MessageBox.Show("El promedio es: " & promedio) End If End Sub Creamos Una subrutina que se llame: mostrarCarteldeFaltacompletar Sub mostrarCarteldeFaltacompletar() Página 66 de 67 Aquí ponemos todas las instrucciones que queremos que haga el programa al “llamar” a esta subrutina. MessageBox.Show("Falta completar, por favor Verifique") End Sub Las subrutinas también pueden tener parámetros, es decir recibir variables con valores que necesita para poder desarrollar alguna tarea específica. Ej Sub MostrarMensaje(msg as string) Messagebox.show(msg) End sub Función Es muy similar a la subrutina, la diferencia esta en que la función se usa para devolver un solo valor de un tipo de datos especificad. Ej Function suma(n1 as integer, n2 as integer)} Return n1+n2; End Function Página 67 de 67