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

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

Transcript of Programación en Visual Basic Lección #4: Estructuras de Repetición (Ciclos) y Controles de Listas...

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

Programación en Visual Basic

Lección #4: Estructuras de Repetición (Ciclos) y Controles de Listas

Por Antonio F. Huertas

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

Contenido

Enunciado Do...LoopEnunciado For...NextCiclos anidadosEnunciados Exit Do y Exit ForControles de listas: ComboBox, ListBox

Enunciado For Each...Next

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

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

Enunciado(s)

Loop While condición

Do Until condición

Enunciado(s)

Loop

Do

Enunciado(s)

Loop Until condición

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

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.

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

Enunciado Do...Loop (cont.) – contando de 1 a 10

Dim n As Integer

n = 1Do While n <= 10 lstOut.Items.Add(n) n = n + 1Loop

n = 1Do lstOut.Items.Add(n) n = n + 1Loop While n <= 10

n = 1Do Until n > 10 lstOut.Items.Add(n) n = n + 1Loop

n = 1Do lstOut.Items.Add(n) n = n + 1Loop Until n > 10

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

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

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

Enunciado For…NextPara 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

lstOut.Items.Add(n)

Next

Para contar hacia atrás:For n = 10 To 1 Step -1

lstOut.Items.Add(n)

Next

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

Ejemplo del uso de ciclos

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

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

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

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

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

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 value = Val(InputBox("Enter a value:")) txtValues.Text = txtValues.Text & value & " "  If value > max Then max = value End If Next txtResult.Text = "Maximum is " & max btnClear.Focus()End Sub

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

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 value = Val(InputBox("Enter a value:")) txtValues.Text = txtValues.Text & value & " "  If value < min Then min = value End If Next txtResult.Text = "Minimum is " & min btnClear.Focus()End Sub

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

Ciclos anidadosEjemplo: 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 IntegerDim score, sum, average As SinglelstOut.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)Next

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

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 IfNextIf secretWord <> "BASIC" Then MsgBox("Too many guesses!")End If

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

Control ListBoxMuestra 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

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

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

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

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.

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

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.

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

Control ListBox (cont.)

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

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 word = InputBox("Enter a word:")  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)

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

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 IfEnd Sub

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

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.

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

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ónEnunciado(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.

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

Enunciado For Each…Next (cont.)

Ejemplo: Copiar todos los valores de un ListBox a otro.

Dim item As ObjectFor Each item In lstFirst.Items lstSecond.Items.Add(item)Next

Ejemplo: Borrar todos los TextBoxes de un formulario.

Dim ctrl As ControlFor Each ctrl In Controls If TypeOf ctrl Is TextBox Then ctrl.Text = "" End IfNext