29
3. Sentencias de control

Visual Basic

Embed Size (px)

DESCRIPTION

Visual Basic

Citation preview

Page 1: Visual Basic

3. Sentencias de control

Page 2: Visual Basic

Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones y realizar un proceso repetidas veces. Se trata de unas estructuras muy importantes ya que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo. Visual Basic 6.0 dispone de las siguientes estructuras de control:

If ... Then ... ElseSelect CaseFor ... NextDo ... LoopWhile … WendFor Each … Next

Page 3: Visual Basic

Sentencia IF ... THEN ... ELSE ...

Esta estructura permite ejecutar condicionalmente una o más sentencias y puede escribirse de dos formas.

La primera ocupa sólo una línea y tiene la forma siguiente:If condicion Then sentencia1 [Else sentencia2]

La segunda es más general y se muestra a continuación:If condicion Then

sentencia(s)[Else

sentencia(s)]End If

Page 4: Visual Basic

Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura adecuada es la siguiente:

If condicion1 Thensentencias1ElseIf condicion2 Thensentencias2Elsesentencia-n

End If

Page 5: Visual Basic

Por ejemplo, se desea escribir un programa que permita definir si un número a es menor que un número b,

Solución 1:If a<b Then Print a & “ es menor que ” & bIf a=b Then Print a & “ es igual que ” & bIf a>b Then Print a & “ es mayor que ” & b

Solución 2:If a<b Then

Print a & “ es menor que “ & bElseIf a=b Then

Print a & “ igual que “ & bElse

Print a & “ es mayor que “ & bEnd If

Page 6: Visual Basic

Ejemplo. Escribir un programa que de como resultado el menor de tresnúmeros a, b, c. Utilizar la sentencia de control If…Then…ElseIf…End If

Page 7: Visual Basic

Sentencia SELECT CASE

Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes valores.

Select Case expresionCase etiq1

[ sentencias1]Case etiq2

[ sentencias2]Case Else

[ sentenciasn ]End Select

donde expresion es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las formas siguientes:

1. expresion2. expresion To expresion3. Is operador-de-relación expresion4. combinación de las anteriores separadas por comas

Page 8: Visual Basic

Por ejemplo,

Numero = 8 ’ Se inicializa las variable Numero.’ Se va a evaluar la variable Numero.Select Case Numero

' Si Numero está entre 1 y 5.Case 1 To 5

Resultado = "Se encuentra entre 1 y 5“' Numero es uno de los tres valores.Case 6, 7, 8

Resultado = "Se encuentra entre 6 y 8“' Numero es 9 ó 10.Case Is = 9 , Is = 10

Resultado = "El valor es 9 o 10“‘Si Numero toma otro valorCase Else

Resultado = "El número no se encuentra entre 1 y 10"End Select

Page 9: Visual Basic

Ejemplo. Escribir un programa que de como resultado el menor de tresnúmeros a, b, c. Utilizar la sentencia de control Select Case

Page 10: Visual Basic

Ejercicio. Realizar un programa que calcule las raíces de la ecuación:a·x2 + b·x + c = 0

Teniendo en cuenta los siguientes casos:1. Si a=0 y b=0, imprimiremos un mensaje diciendo la ecuación es

degenerada.2. Si a=0 y b≠0, existe una raíz única con valor –c / b.3. En los demás casos utilizaremos la fórmula siguiente:

La expresión d=b2-4ac se denomina discriminante.- Si d≥0 entonces hay dos raíces reales- Si d<0 entonces hay dos raíces complejas de la forma

x + yj, x - yjIndicar con literales adecuados los datos a introducir, así como los resultadosobtenidos.

a2c·a·4bbx

2

i−±−

=

Page 11: Visual Basic

Solución.a. Utilizando la sentencia If … Then … Else …

Page 12: Visual Basic

b. Utilizando la sentencia Select Case

Page 13: Visual Basic

Sentencia FOR ... NEXT

La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces. Su forma general es:

For variable = expresion1 To expresion2 [Step expresion3][sentencias]

Exit For[sentencias]

Next [variable]

Page 14: Visual Basic

La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste finalice. Por ejemplo,

MyString = "Ing. Química"For Words = 3 To 1 Step -1

For Chars = Words To Words+4 MyString = MyString & Chars

Next Chars MyString = MyString & " "

Next Words

Page 15: Visual Basic

Ejercicio. Realizar un programa que permita imprimir los números del 1 al50. Utilizar la sentencia For … Next

Ejercicio. Realizar un programa que permita imprimir los números imparesdel 1 al 50. Utilizar la sentencia For … Next

Page 16: Visual Basic

Sentencia DO ... LOOP

Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:

’ Formato 1:Do [{While/Until} condición]

[ sentencias][Exit Do]

[ sentencias]Loop

Page 17: Visual Basic

’ Formato 2:Do

[ sentencias][Exit Do]

[ sentencias]Loop [{While/Until} condicion]

La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice éste.

Page 18: Visual Basic

Por ejemplo,

Check = True Counts = 0Do

Do While Counts < 20 Counts = Counts + 1.If Counts = 10 Then

Check = False Exit Do

End IfLoop

Loop Until Check = False

Page 19: Visual Basic

Ejercicio. Realizar un programa que permita imprimir los números del 1 al50. Utilizar la sentencia Do…Loop

Ejercicio. Realizar un programa que permita imprimir los números imparesdel 1 al 50. Utilizar la sentencia Do…Loop

Page 20: Visual Basic

Sentencia WHILE … WEND

Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición inicial. Su estructura es la siguiente:While condicion

[ sentencias]Wend

Por ejemplo,Counts = 0 ’ Se inicializa la variable.While Counts < 20 ’ Se comprueba el valor de Counts.

Counts = Counts + 1 ’ Se incrementa el valor de Counts.Wend ’ Se acaba el bucle cuando Counts > 19.

Page 21: Visual Basic

Ejercicio. Realizar un programa que permita imprimir los números del 1 al50. Utilizar la sentencia While…Wend

Ejercicio. Realizar un programa que permita imprimir los números del 1 al50. Utilizar la sentencia While…Wend

Page 22: Visual Basic

Sentencia FOR EACH ... NEXT

Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los Elementos de un array (o de una colección de objetos). La forma general es la siguiente:

For Each variable In grupo[ sentencias]

Next variable

Page 23: Visual Basic

Ejercicios adicionales:

3.1 Escribir un programa que de como resultado la suma de los 100 primeros números naturales

3.2 Realizar un programa que de cómo resultado la suma de los números pares comprendidos entre dos números a y b.

3.3 Realizar un programa que imprima si un número dado por el teclado es par o impar, positivo o negativo, entero o decimal.

3.4 Realizar un programa que dé como resultado una tabla donde se especifique el cuadrado y el cubo de los n primeros números.NÚMERO CUADRADO CUBO

Page 24: Visual Basic

3.5 Realizar un programa que liste la tabla de sumar entre 0 y 9 decualquier número introducido por el teclado.

3.6 Realizar un programa que liste las tablas de multiplicar de todos los números comprendidos entre otros dos a y b, introducidos por el teclado.

3.7 Realizar un programa que dé como resultado la suma y la media de un conjunto de números introducidos por el teclado. La entrada de datos finalizará, por ejemplo al teclear el número 99999.

3.8 Realizar un programa que de cómo resultado el mayor y el menor de un conjunto de números introducidos por el teclado. La entrada de datos finalizará por ejemplo, con el número 99999.

Page 25: Visual Basic

3.9 Realizar un programa que dibuje un triángulo de n filas ,empleando el carácter asterisco. Realice el programa utilizando: a. Sentencias Forb. Sentencias While

Por ejemplo, para n=4

****************

Page 26: Visual Basic

3.10 Implementar un programa que permita evaluar el factorial de unnúmero entero positivo. Por ejemploSi n = 5: S = 5*4*3*2*1Si n = 3: S = 3*2*1

3.11 Implementar programas que permitan evaluar la suma total de los n primeros términos de las siguientes series:a. La suma de los n primeros términos de la serie

S = 1 + 3 + 5 + 7 + ...

b. La suma de los n primeros términos de la serie

c. S = 1-2+3-5+8-13+21-34+…..

n1......

41

31

21

11S +−+−+−=

Page 27: Visual Basic

d. Evaluar los n primeros térmicos de la serie:

......7!1

5!1

3!1

1!1S +−+−=

3.12 Implementar un programa que permita ingresar 4 números enteros y ordenarlos de acuerdo a las opciones: de mayor amenor, o de menor a mayor.

3.13 Implementar un programa que permita determinar si unnúmero entero ingresado es primo.

Page 28: Visual Basic

3.14 Utilizando la sentencia For … Next , escribir un programa que imprima un tablerode ajedrez en el que las casillas blancas se simbolizarán con una B y las negras con unaN. Así mismo el programa deberá marcar con * las casillas a las que se puede moverun alfil desde una posición dada. La solución será similar a la siguiente:

Posición del alfil:Fila 3Columna 4

B * B N B * B NN B * B * B N BB N B * B N B NN B * B * B N BB * B N B * B N* B N B N B * BB N B N B N B *N B N B N B N B

Page 29: Visual Basic

Para información más detallada, revisar el capítulo 5 del texto: Cevallos Javier. Curso de Programación de Visual Basic 6. Alfaomega. 2000