La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación en Visual Basic

Presentaciones similares


Presentación del tema: "Programación en Visual Basic"— Transcripción de la presentación:

1 Programación en Visual Basic
Lección #4: Estructuras de Repetición (Ciclos) y Controles de Listas Por Antonio F. Huertas

2 Contenido Enunciado Do...Loop Enunciado For...Next Ciclos anidados
Enunciados Exit Do y Exit For Controles de listas: ComboBox, ListBox Enunciado For Each...Next

3 Enunciado Do...Loop El enunciado más general para indicar estructuras de repetición es el enunciado Do..Loop. Formatos: Do While condición Enunciado(s) Loop Do Loop While condición Do Until condición Enunciado(s) Loop Do Loop Until condición

4 Enunciado Do...Loop (cont.)
Cuando la condición se revisa al principio es posible que el cuerpo del ciclo nunca se ejecute. Cuando la condición se revisa al final es el cuerpo del ciclo se ejecutará por lo menos una vez. La condición del Until es la opuesta a la condición del While correspondiente.

5 Enunciado Do...Loop (cont.) – contando de 1 a 10
Dim n As Integer n = 1 Do While n <= 10 lstOut.Items.Add(n) n = n + 1 Loop Do Loop While n <= 10 n = 1 Do Until n > 10 lstOut.Items.Add(n) n = n + 1 Loop Do Loop Until n > 10

6 Enunciado For…Next El enunciado For…Next es usado comúnmente para ciclos controlados por contador ya que incremente la variable de control de forma automática después de ejecutar el cuerpo del ciclo. Formato: For variable = inicio To fin [Step cantidad] Enunciado(s) Next

7 Enunciado For…Next Para contar de uno en uno:
For n = 1 To 10 lstOut.Items.Add(n) Next Para contar de dos en dos: For n = 1 To 10 Step 2 Para contar hacia atrás: For n = 10 To 1 Step -1

8 Ejemplo del uso de ciclos

9 Ejemplo del uso de ciclos (cont.)
Private Sub btnTotal_Click(…) Handles btnTotal.Click Dim n As Integer = 1 Dim sum As Single = 0.0 Dim value As Single txtValues.Clear() txtResult.Clear() Do While n <= 5 value = Val(InputBox("Enter a value:")) sum += value txtValues.Text = txtValues.Text & value & " " n += 1 Loop txtResult.Text = "Total is " & sum btnClear.Focus() End Sub

10 Ejemplo del uso de ciclos (cont.)
Private Sub btnAverage_Click(…) Handles btnAverage.Click Dim n As Integer = 1 Dim sum As Single = 0.0 Dim value, average As Single txtValues.Clear() txtResult.Clear() Do value = Val(InputBox("Enter a value:")) sum += value txtValues.Text = txtValues.Text & value & " " n += 1 Loop Until n > 5 average = sum / 5 txtResult.Text = "Average is " & average btnClear.Focus() End Sub

11 Ejemplo del uso de ciclos (cont.)
Private Sub btnMaximum_Click(…) Handles btnMaximum.Click :   : txtValues.Clear() txtResult.Clear() value = Val(InputBox("Enter a value:")) txtValues.Text = txtValues.Text & value & " " max = value For n = 2 To 5   If value > max Then End If Next txtResult.Text = "Maximum is " & max btnClear.Focus() End Sub

12 Ejemplo del uso de ciclos (cont.)
Private Sub btnMinimum_Click(…) Handles btnMinimum.Click :   : txtValues.Clear() txtResult.Clear() value = Val(InputBox("Enter a value:")) txtValues.Text = txtValues.Text & value & " " min = value For n = 2 To 5   If value < min Then End If Next txtResult.Text = "Minimum is " & min btnClear.Focus() End Sub

13 Ciclos anidados Ejemplo: Para un grupo de 20 estudiantes se desea preguntar 3 puntuaciones y mostrar el promedio de cada estudiante en un list box. Dim s, e As Integer Dim score, sum, average As Single lstOut.Items.Clear() For s = 1 To 20 sum = 0 For e = 1 To 3 score = Val(InputBox("Enter score:", "Exam #" & e)) sum += score Next average = sum / 3 lstOut.Items.Add("Average of student #" & s & _ " is " & average)

14 Enunciados Exit Do y Exit For
El enunciado Exit Do es utilizado para terminar inmediatamente la ejecución de un ciclo Do…Loop. El enunciado Exit For es utilizado para terminar inmediatamente la ejecución de un ciclo For…Next. For attempt = 1 To 3 secretWord = InputBox("Enter the secret word:") If secretWord = "BASIC" Then Exit For Else MsgBox("Wrong word! Try again…") End If Next If secretWord <> "BASIC" Then MsgBox("Too many guesses!")

15 Control ListBox Muestra una lista de valores y permite seleccionar uno o más de éstos. Prefijo es “lst”. Propiedades importantes: Items – colección de valores que se muestran SelectedIndex y SelectedItem – índice y texto del valor seleccionado Text – texto del valor seleccionado SelectedIndices y SelectedItems – colección de índices y textos de los valores seleccionados SelectionMode – indica si se puede seleccionar 0, 1 ó varios valores Sorted – indica si los valores se presentarán ordenados ascendentemente

16 Control ListBox (cont.)
Método importante: FindString(string) – devuelve el índice del string en la lista si lo encuentra o la constante ListBox.NoMatches Propiedades importantes de Item: Items.Count – devuelve la cantidad de valores en la lista Items.Item(índice) – devuelve el valor en el índice indicado

17 Control ListBox (cont.)
Métodos importantes de la propiedad Item: Items.Clear() – para borrar todos los valores Items.Add(valor) – para añadir un valor al final de la lista Items.Insert(índice, valor) - para añadir un valor en el índice indicado. Conlleva movimiento de valores. Items.Remove (valor) – para remover un valor Items.RemoveAt (índice) – para remover el valor en el índice indicado. Conlleva movimiento de valores.

18 Control ListBox (cont.)
Eventos importantes: Click y DoubleClick – ocurren cuando se selecciona un valor en la lista. Click también ocurre cuando se uno presiona  y  para moverse a través de la lista. Por esto se prefiere DoubleClick. SelectedIndexChanged – ocurre cuando cambia el índice del valor seleccionado en la lista.

19 Control ListBox (cont.)

20 Control ListBox (cont.)
Private Sub btnExecute_Click(…) Handles btnExecute.Click Dim word As String Dim limit, index As Integer If radAdd.Checked Then word = InputBox("Enter a word:") lstWords.Items.Add(word) ElseIf radInsert.Checked Then   limit = lstWords.Items.Count - 1 index = Val(InputBox("Enter a positive integer:")) Do While index > limit MsgBox("Index must be between 0 and " & _ limit, MsgBoxStyle.Exclamation) index = Val(InputBox("Enter a positive " & _ "integer:")) Loop lstWords.Items.Insert(index, word)

21 Control ListBox (cont.)
ElseIf radRemove.Checked Then word = lstWords.SelectedItem lstWords.Items.Remove(word) Else limit = lstWords.Items.Count - 1 index = Val(InputBox("Enter a positive integer:")) Do While index > limit MsgBox("Index must be between 0 and " & _ limit, MsgBoxStyle.Exclamation) index = Val(InputBox("Enter a positive " & _ "integer:")) Loop lstWords.Items.RemoveAt(index) End If End Sub

22 Control ComboBox Permite seleccionar un valor de entre una lista o entrar un valor. Prefijo es “cbo”. Propiedades importantes: DropDownStyle – indica el estilo del combo box. Normalmente es DropDown (seleccionar un valor o entrarlo) o DropDownList (sólo seleccionar un valor). Text – el valor seleccionado en el combo box. Disponible en el Properties Window y en código NOTA: Las propiedades, métodos y eventos mencionados para el ListBox también aplican al ComboBox.

23 Enunciado For Each…Next
Este enunciado permite recorrer los elementos en una colección y ejecutar una operación para cada elemento examinado. Formato: For Each objeto In colección Enunciado(s) Next Una colección es un conjunto de artículos tratados como una unidad. Ejemplo: las propiedades Items, SelectedIndices y SelectedItems en un ListBox.

24 Enunciado For Each…Next (cont.)
Ejemplo: Copiar todos los valores de un ListBox a otro. Dim item As Object For Each item In lstFirst.Items lstSecond.Items.Add(item) Next Ejemplo: Borrar todos los TextBoxes de un formulario. Dim ctrl As Control For Each ctrl In Controls If TypeOf ctrl Is TextBox Then ctrl.Text = "" End If


Descargar ppt "Programación en Visual Basic"

Presentaciones similares


Anuncios Google