cURSO DE EXTENSIN PROFESIONAL
[cURSO DE EXTENSIN PROFESIONAL]MICROSOFT VISUAL STUDIO CON VISUALBASIC
Estructuras RepetitivasRepetitivas o Estructuras Cclicas
Desde el lenguaje de programacin, vamos a repasar cmo podemos repetir partes de un programa mientras cierta condicin se cumpla o sea verdadera, y conoceremos las distintas estructuras que podemos utilizar. La estructura de control repetitiva Do Loop le permite a nuestro desarrollo reiterar la ejecucin de un bloque de instrucciones hasta que se cumpla cierta condicin. La sintaxis tiene dos variantes:
Do While condicinInstrucciones()Loop
En este caso se analiza la condicin. Si es verdadera, se ejecutar el bloque de instrucciones delimitado entre Do y Loop, y el proceso se repetir otra vez, siempre que el resultado de la condicin sea verdadero.DoInstrucciones ()Loop While Condicin
Como podemos ver, esta ltima estructura es muy similar a la anterior, solo que cambia la ejecucin de las instrucciones. En el bucle anterior primero PREGUNTA sobre la condicin dada y luego HACE; en cambio, en esta estructura, primero HACE y luego PREGUNTA. En pseudocdigo equivaldra a la sintaxis Mientras que Fin mientras.
Veamos ahora una estructura repetitiva que nos resultar muy til, que en pseudocdigo equivaldra a la sintaxis Hacer-Hasta. En el caso de este lenguaje, se utiliza For o For Each.La instruccin For-Next ejecutar en un determinado nmero de veces un bloque de cdigo. Veamos la sintaxis:
For Variable = Valor1 To Valor2 Step IncrementoInstrucciones()Next
El bloque de instrucciones que se repite est delimitado por las instrucciones For y Next. La sintaxis Variable es una variable de tipo numrico que toma valores entre Valor1 y Valor2. Por cada vez que el bloque se ejecuta, el valor de Variable se incrementa en el valor especificado en Incremento, que puede ser positivo o negativo.A continuacin, veamos un ejemplo que nos demuestre cmo sumar de un nmero 5 veces:
Dim i, respuesta As IntegerFor i = 1 To 5respuesta = i + iNext
En este ejemplo, la repetitiva ejecutar 5 veces desde i=1 hasta 5 y acumular la suma en la variable respuesta. Si la variable i iniciara en 0, entonces se ejecutara 6 veces.Revisando estas estructuras, podemos ver que las repetitivas se aplican para realizar una accin, siendo necesario o no cumplir una condicin determinada. A continuacin, veamos las diferencias.
Descripcin de algunas propiedades de objeto Form
EjemplosVamos a elaborar un programa que me permita ingresar 6 nmeros, estos nmeros se debern almacenar en un control Lista para luego encontrar la suma de los nmeros que son pares e impares, as tambin el promedio de los nmeros pares e impares encontrados.
Creamos un nuevo proyecto y le daremos el nombre: Ejemplo01_sumayPromedionumeros
El diseo del formulario tendr la siguiente apariencia:
Agregando cdigo a nuestro programa:Public Class Form1declarando variables globales
Dim contapar, contaimpar As Integer Dim numero As String Dim sumapar, sumaimpar As Integer Dim prompar, promimpar As Double
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click For i = 0 To 5 numero = InputBox("Ingresar valor " + Convert.ToString(i + 1)) If Not IsNumeric(numero) Then MessageBox.Show("No es un valor numrico", "mensaje") i = i - 1 Else ListBox1.Items.Add(Str(numero)) End If If i = 5 Then Button1.Enabled = False
End If Next End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For i = 0 To ListBox1.Items.Count() - 1 If (ListBox1.Items(i) Mod 2 = 0) Then contapar = contapar + 1 sumapar += ListBox1.Items(i) Else contaimpar = contaimpar + 1 sumaimpar += ListBox1.Items(i) End If
Next prompar = sumapar / contapar promimpar = sumaimpar / contaimpar TextBox2.Text = sumapar TextBox3.Text = sumaimpar Label7.Text = "el promedio de " + Str(contapar) + " pares" Label8.Text = "el promedio de " + Str(contapar) + " impares" TextBox4.Text = prompar TextBox5.Text = promimpar End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click ListBox1.Items.Clear() TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" Button1.Enabled = True
End Sub
End Class
Ejemplo02
Elaborar un programa que me permita ingresar los datos de x empleado: Nombres, apellido, direccin, fecha de nacimiento, sexo, sueldo neto.Adems permita calcular la bonificacin y el descuento en base a la siguiente tabla:
La bonificacin se obtiene del sueldo neto y puede ser: 8%, 20%, 30%.El descuento se obtiene del sueldo neto y puede ser: 5%, S/. 20.00 y S/.60.00.
El programa debe mostrar: el total de bonificacin, el total de descuento y el sueldo a pagar.Y el total de planilla a pagar.
Solucin:
Ahora modificaremos nuestro proyecto anterior para darle la siguiente apariencia:
DataGridView
Modificando las propiedades de los controles de acuerdo a la siguiente tabla:
ControlPropiedadValor de propiedad
Label1TextTotal Planilla
Textbox8TextText AlignReadonlyBackColorForecolor Size Bold0RighttrueElegir colorGreen10True
Button4TextImageCalcular PlanillaCalcular.jpg
DataGridViewColumnsAllowUserToAddRowsAllowUserToDeleteRowsAllowUserToOrderColumnsAllowUserToResizeColumnsAllowUserToResizeRowsColumnHeaderHeightSizemode RowHeadersVisibleRowHeadersWidthSizeMode
ColeccinFalseFalseFalseFalseFalseAutosize FalseDisableResizing
Presentacin visual del formulario
Solucin del problema
Codificacin:
Public Class Form1
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 'If e.CloseReason = CloseReason.UserClosing Then ' If MsgBox("Si cierra la aplicacion no se guardaran los cambios, realmente desea salir?", MsgBoxStyle.YesNo, "Salir?") = MsgBoxResult.Yes Then ' End 'Else ' e.Cancel = True ' End If 'End If Button3_Click(sender, e) End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load TextBox1.Focus()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click TextBox1.Clear() TextBox2.Clear() TextBox3.Clear() TextBox4.Clear() TextBox5.Clear() TextBox6.Clear() TextBox7.Clear() TextBox8.Clear() DateTimePicker1.Value = DateTime.Now RadioButton1.Checked = False RadioButton2.Checked = False RadioButton3.Checked = False RadioButton4.Checked = False RadioButton5.Checked = False CheckBox1.Checked = False CheckBox2.Checked = False CheckBox3.Checked = False DataGridView1.Rows.Clear() TextBox1.Focus()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim result As Integer = MessageBox.Show("Est seguro de salir?", "Salir", MessageBoxButtons.YesNo) If result = DialogResult.Yes Then End End If
End Sub
Private Sub TextBox4_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox4.KeyPress 'llamar al procedimeinto de validadcion NumConFrac(TextBox4, e) End Sub
' procedimiento que permite validar un datos decimal Public Sub NumConFrac(ByVal CajaTexto As Windows.Forms.TextBox, ByVal e As System.Windows.Forms.KeyPressEventArgs) If Char.IsDigit(e.KeyChar) Then e.Handled = False ElseIf Char.IsControl(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar = "." And Not CajaTexto.Text.IndexOf(".") Then e.Handled = True ElseIf e.KeyChar = "." Then e.Handled = False Else e.Handled = True End If End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim bonificacion, descuento, sueldo As Double 'inicializando variables bonificacion = 0 descuento = 0 'preguntandosi sueldo tiene contenido If TextBox4.Text "" Then 'validando la bonificacin If RadioButton3.Checked = True Then bonificacion = CDbl(TextBox4.Text) * 0.08 ElseIf RadioButton4.Checked = True Then bonificacion = CDbl(TextBox4.Text) * 0.2 ElseIf RadioButton5.Checked = True Then bonificacion = CDbl(TextBox4.Text) * 0.3
End If 'validando descuentos If CheckBox1.Checked = True Then descuento = CDbl(TextBox4.Text) * 0.05 End If If CheckBox2.Checked = True Then descuento = descuento + 20 End If If CheckBox3.Checked = True Then descuento = descuento + 60
End If
sueldo = CDbl(TextBox4.Text) + bonificacion - descuento TextBox5.Text = Format(bonificacion, "##,##0.#0") TextBox6.Text = Format(descuento, "##,##0.#0") TextBox7.Text = Format(sueldo, "##,##0.#0")
DataGridView1.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text) 'TextBox8.Text = Convert.ToString(DataGridView1.Rows.Cast(Of DataGridViewRow)().Sum(Function(x) Convert.ToDecimal(x.Cells("Column4").Value)))
Else MessageBox.Show("No ha Ingresado el sueldo neto") TextBox4.Focus() End If End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim datos As String Dim i As Integer Dim planilla As Double planilla = 0 For i = 0 To DataGridView1.Rows.Count - 1 datos = DataGridView1.Rows.Item(i).Cells(5).Value planilla = planilla + CDbl(datos) Next
TextBox8.Text = Format(planilla, "##,##0.#0") End SubEnd Class
Pgina 1
Top Related