GUÍA DE LABORATORIO Nº 3 Microsoft Visual Basic Objetivos de: Luego de completar este laboratorio, el estudiante será capaz Implementar aplicaciones utilizando estructuras de control repetitivas. Cambiar las propiedades de los controles en tiempo de ejecución. Trabajar con controles ListBox y ComboBox. Aplicación Nº 1 Escribir una aplicación que lea un número entero y muestre la tabla de multiplicar de dicho número. El diseño de entrada y salida debe ser similar al siguiente: Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario: 1 etiqueta 2 cajas de texto 1 botón de comando En seguida proceda a establecer las propiedades según se indica: Adela Valenciano Suárez 1
Form1 Label1 1 2 BorderStyle Command1 MultiLine ScrollBars TabStop FrmTabla 3-Fixed Dialog Tabla de multiplicar LblNumero Ingrese un número: TxtNumero TxtTabla 2-Vertical False BtnLimpiar &Limpiar Una vez diseñada la interfaz, proceda a ingresar el código que se indica a continuación: Private Sub TxtNumero_Changed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNumero.Changed 0 Then Dim N As Integer, P As Integer, I As Integer Dim S As String = "" Dim Numero As String = TxtNumero. 'Es un número sin comas y sin punto If IsNumeric(TxtNumero.) And Numero.IndexOf(",") <= 0 And Numero.IndexOf(".") <= N = CInt(TxtNumero.) For I = 0 To 10 P = N * I S = S & N & " * " & I & " = " & P & vbnewline Next TxtTabla. = S Else MessageBox.Show("Introduzca un número entero.") TxtTabla. = "" TxtNumero.Focus() TxtNumero.SelectAll() End Sub Adela Valenciano Suárez 2
Aplicación Nº 2 Un número perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos (excluido el mismo) que son divisores del número. El primer número perfecto es 6, ya que los divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escribir una aplicación que encuentre los tres primeros números perfectos. El diseño de la interfaz debe ser similar a la figura mostrada: Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario: 1 GroupBox 1 caja de texto En seguida proceda a establecer las propiedades según se indica: Form1 GroupBox1 1 BorderStyle MultiLine FrmNumeroPerfecto 3-Fixed Dialog Los 3 primeros números perfectos GrpPerfecto Número perfecto TxtPerfecto Adela Valenciano Suárez 3
Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación: Private Sub FrmNumeroPerfecto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim K As Integer = 0 'Contador de numeros perfectos encontrados Dim N As Integer = 1 'Números que se van evaluando Dim i As Integer 'Indice que recorre todos los números hasta el que se está evaluando (N) Dim S As Integer 'Acumulador de la suma de los divisores del número que se está evaluando (N) Dim Perfectos As String = "" 'Números perfectos encontrados While K < 3 S = 0 For i = 1 To N - 1 If N Mod i = 0 Then S = S + i Next If N = S Then Perfectos = Perfectos & N & vbnewline K = K + 1 N = N + 1 End While TxtPerfecto. = Perfectos End Sub Adela Valenciano Suárez 4
Aplicación Nº 3 Construya una aplicación que permita el ingreso de un número entero y muestre en pantalla la siguiente información: 1) Cantidad de cifras, 2) Suma de cifras impares, 3) Suma de cifras pares, 4) Suma total de cifras, 5) Cifra mayor, 6) Cifra menor y 7) Divisores de dicho número. El diseño de la interfaz debe ser similar a la figura siguiente: Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario: 1 GroupBox 2 Panel 7 etiquetas 8 cajas de texto 2 botón de comando En seguida proceda a establecer las propiedades según se indica: Form1 FrmCifras BorderStyle 3-Fixed Dialog Cifras y divisores de un número Adela Valenciano Suárez 5
Panel1 StartUpPosition BorderStyle 2-CenterScreen PanelEntrada Fixed 3D Panel2 GroupBox3 Label1 Label2 BorderStyle Label3 Label4 Label5 Label6 PanelSalida Fixed 3D GrpDivisores Divisores LblNumero Ingrese un número: LblC_Cifras Cantidad de cifras: LblSumaC_Impares Suma de cifras impares: LblSumaC_Pares Suma de cifras pares: LblSumaC Suma total de cifras: LblC_Mayor Cifra mayor: Adela Valenciano Suárez 6
Label7 LblC_Menor Cifra menor: 1 TxtNumero 2 TxtCantidadCifras 3 TxtSumaImpares 4 TxtSumaPares 5 TxtSumaCifras 6 TxtC_Mayor 7 TxtC_Menor 8 TxtDivisores MultiLine ScrollBars 2-Vertical Adela Valenciano Suárez 7
Botón 1 BtnAceptar &Aceptar Botón 2 BtnSalir &Salir Una vez establecidas las propiedades proceda ha ingresar el código que se indica a continuación: Private Sub BtnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click 'Es un número sin comas y sin punto Dim Numero As String = TxtNumero. If IsNumeric(Numero) And Numero.IndexOf(",") <= 0 And Numero.IndexOf(".") <= 0 Then Dim N As Integer, M As Integer 'Número a evaluar Try N = CInt(TxtNumero.) M = N Catch ex As OverflowException 'Prevenir error de desbordamiento MessageBox.Show("No se aceptan números mayores de 2.147.483.647") TxtNumero.Focus() TxtNumero.SelectAll() End Try 'Cálculo de divisores ------------------------------------------------------------------------- Dim Divisores As String = "" 'Cadena para guardar todos los divisores del número Dim j As Integer For j = 1 To N - 1 'No visualizamos como divisor N. Previene overflow para el numero 2.147.483.647 If (N Mod j = 0) Then Divisores = Divisores & j & vbnewline Next 'Fin del cálculo de divisores '------------------------------------------------------------------------------- 'Cálculo de Suma de cifras, suma de cifras pares e impares y número de cifras Dim CantidadCifras As Integer = 0 Dim SumaImpares As Integer = 0, SumaPares As Integer = 0, SumaCifras As Integer = 0 While N > 0 If (N Mod 10) Mod 2 = 0 Then SumaPares = SumaPares + N Mod 10 'Es cifra par Else SumaImpares = SumaImpares + N Mod 10 'Es cifra impar SumaCifras = SumaCifras + N Mod 10 'Suma cifras CantidadCifras = CantidadCifras + 1 'Cuenta cifras N = N \ 10 'Quitamos última cifra al número End While 'Fin cálculo de Suma de cifras, suma de cifras pares e impares y número de cifras '------------------------------------------------------------------------------- ---- 'Cálculo cifra mayor y menor Dim C_Mayor As Integer = M Mod 10 Adela Valenciano Suárez 8
---- 'La cifra mayor y la menor es la ultima Dim C_Menor As Integer = C_Mayor While M > 0 If C_Mayor < M Mod 10 Then C_Mayor = M Mod 10 If C_Menor > M Mod 10 Then C_Menor = M Mod 10 M = M \ 10 'Quitamos última cifra al número End While 'Fin cálculo de cifra mayor y menor '------------------------------------------------------------------------------- TxtCantidadCifras. = CStr(CantidadCifras) TxtSumaImpares. = CStr(SumaImpares) TxtSumaPares. = CStr(SumaPares) TxtSumaCifras. = CStr(SumaCifras) TxtC_Mayor. = CStr(C_Mayor) TxtC_Menor. = CStr(C_Menor) TxtDivisores. = Divisores Else MessageBox.Show("Debe introducir un número entero.") TxtNumero.Focus() TxtNumero.SelectAll() End Sub Aplicación Nº 4 Diseñar una aplicación que permita añadir nombres de personas en un ListBox, Eliminarlos, buscarlos y ordenarlos. El diseño debe contener los siguientes botones: Agregar EliminarlosLimpiar Buscar Ordenar Según el botón pulsado la aplicación deberá responder de la siguiente forma: Agregar: Se agrega el nombre escrito en una caja de texto al ListBox. No se deben permitir nombres repetidos. Eliminar: Elimina el nombre seleccionado en el ListBox, sino hay ningún nombre seleccionado, eliminar el nombre escrito en el la caja de texto, si este nombre no existe en el ListBox, comunicarlo. Limpiar: Elimina todos los nombres del ListBox. Adela Valenciano Suárez 9
Buscar: Buscar el nombre escrito en la cajade texto en el ListBox, si existe seleccionarlo, sino comunicar que no existe ese nombre. Ordenar: Ordenar los nombres del ListBox por orden Alfabético. El diseño de la interfaz y otras consideraciones se dejan a su criterio. Aplicación Nº 5 Un centro numérico es un número que separa una lista de números enteros (comenzando en 1) en dos grupos de números, cuyas sumas son iguales. El primer centro numérico es el 6, el cual separa la lista (1 a 8) en los grupos: (1; 2; 3; 4; 5) y (7; 8) cuyas sumas son ambas iguales a 15. El segundo centro numérico es el 35, el cual separa la lista (1 a 49) en los grupos: (1 a 34) y (36 a 49) cuyas sumas son ambas iguales a 595. Se pide elaborar una aplicación que calcule los centros numéricos entre 1 y N. criterio. El diseño de la interfaz y otras consideraciones se dejan a su Adela Valenciano Suárez 10