Anda di halaman 1dari 15

UNIVERSIDAD JOS ANTONIO PEZ DIRECCIN GENERAL DE ESTUDIOS BSICOS Y GENERALES COORDINACIN DE INFORMTICA

Introduccin a la Programacin de Aplicaciones en Consola y en Entorno Visual.


ESTRUCTURAS CONDICIONALES Microsoft Visual Basic 2010

Prof. Alejandro E. Bolvar P. Ingeniero Mecnico Magister en Ingeniera Mecnica

San Diego, Marzo, 2012

NDICE NDICE ........................................................................................................... 2 UNIDAD 2. ESTRUCTURAS CONDICIONALES. ........................................ 3 2.1 Operadores Relacionales. ..................................................................... 3 2.2 Operadores Lgicos. ............................................................................ 3 2.2.1 2.2.2 2.2.3 And .............................................................................................. 3 Or ................................................................................................. 4 Not ............................................................................................... 5

2.3 Prioridad de los operadores. ................................................................. 6 2.4 Orden de prioridad. .............................................................................. 6 2.5 Estructuras Condicionales. ................................................................... 7 2.5.1 2.5.2 2.5.3 Estructura Condicional Simple ...................................................... 7 Estructura Condicional Doble ....................................................... 7 Estructura Condicional Mltiple ................................................... 8

2.6 Aspectos adicionales a tomar en cuenta para la solucin de problemas en computadora con estructuras condicionales. .................................................... 10 2.7 Ejercicios Prcticos de Estructuras Condicionales. ............................. 10

UNIDAD 2. ESTRUCTURAS CONDICIONALES. Las estructuras condicionales permiten controlar la ejecucin de un conjunto de instrucciones en el programa, todo esto mediante la implementacin de expresiones lgicas sencillas o complejas realizadas en base a operadores relacionales y lgicos. Las estructuras condicionales se pueden presentar como sencillas, dobles o mltiples. 2.1 Operadores Relacionales. Los operadores relacionales (ver Tabla 3.1) permiten realizar comparaciones entre variables, valores o una combinacin de estos conformando as una expresin lgica. La siguiente tabla contiene una lista con los operadores de comparacin relacionales y las condiciones que determinan si el resultado es True o False. Tabla 3.1. Operadores relacionales.
Operador < (Menor que) True si expresin1< expresin2 False si expresin2>= expresin2

<= (Menor o igual que) expresin1<= expresin2 expresin2> expresin2 > (Mayor que) expresin1> expresin2 expresin2<= expresin2

>= (Mayor o igual que) expresin1>= expresin2 expresin2< expresin2 = (Igual a) <> (Distinto de) expresin1= expresin2 expresin2<> expresin2

expresin1<> expresin2 expresin2= expresin2

2.2

Operadores Lgicos.

2.2.1 And Realiza una conjuncin lgica entre dos expresiones Boolean o una conjuncin bit a bit entre dos expresiones numricas.

Para la comparacin booleana, resultado es True si y slo si expression1 y expression2 se evalan como True. En la tabla siguiente se ilustra cmo se determina el argumento resultado. Tabla 3.2. Resultados del operador AND.
Si expresin1 es Y expresin2 es El valor de resultado es True True False False True False True False True False False False

En el ejemplo siguiente se usa el operador And para realizar una conjuncin lgica de dos expresiones. El resultado ser un valor de tipo Boolean que indicar si las dos expresiones son True.
Dim a As Integer = 10 Dim b As Integer = 8 Dim c As Integer = 6 Dim firstCheck, secondCheck As Boolean firstCheck = a > b And b > c secondCheck = b > a And b > c

El ejemplo anterior genera unos resultados de True y False, respectivamente. 2.2.2 Or Realiza una disyuncin lgica entre dos expresiones de tipo Boolean o bien una disyuncin bit a bit entre dos expresiones numricas. Para la comparacin Boolean, resultado es False si y slo si expresin1 y expresin2 se evalan como False. En la tabla siguiente se ilustra cmo se determina el argumento resultado.

Tabla 3.3. Resultados del operador OR.


Si expression1 es Y expression2 es El valor de resultado es True True False False True False True False True True True False

En el ejemplo siguiente se usa el operador Or para realizar una disyuncin lgica inclusiva entre dos expresiones. El resultado ser un valor de tipo Boolean que indicar si alguna de las dos expresiones es True.
Dim a As Integer = 10 Dim b As Integer = 8 Dim c As Integer = 6 Dim firstCheck, secondCheck, thirdCheck As Boolean firstCheck = a > b Or b > c secondCheck = b > a Or b > c thirdCheck = b > a Or c > b

El ejemplo anterior genera unos resultados de True, True y False, respectivamente. 2.2.3 Not Lleva a cabo o la negacin lgica de una expresin de tipo Boolean o la negacin bit a bit de una numrica. En la siguiente tabla se muestra cmo se determina la variable resultado cuando las expresiones son de tipo Boolean:
Si expresin es True False El valor de resultado es: False True

En el ejemplo siguiente se utiliza el operador Not para llevar a cabo la negacin lgica de una expresin de tipo Boolean. El resultado es un valor Boolean que representa el inverso del valor de la expresin.
Dim a As Integer = 10 Dim b As Integer = 8 Dim c As Integer = 6 Dim firstCheck, secondCheck As Boolean firstCheck = Not (a > b) secondCheck = Not (b > a)

En el ejemplo anterior se generan los resultados False y True, respectivamente. 2.3 Prioridad de los operadores. Todos los operadores de comparacin tienen la misma prioridad; todos ellos tienen mayor prioridad que los operadores lgicos, pero menor prioridad que los operadores de concatenacin y los operadores aritmticos. 2.4 Orden de prioridad. Los operadores se evalan en el siguiente orden de prioridad: Operadores de comparacin. Todos los operadores de comparacin (=, <>, <, <=, >, >=) Operadores lgicos. Negacin (Not) Conjuncin (And) Disyuncin inclusiva (Or)

2.5

Estructuras Condicionales. Visual Basic permite probar condiciones y realizar diferentes operaciones en

funcin de los resultados de la prueba. Puede comprobar si una condicin es verdadera o falsa, los distintos valores de una expresin o las diferentes excepciones que se generan al ejecutar una serie de instrucciones. En el siguiente ejemplo se muestra una estructura de decisin que prueba si el valor de una condicin es true y emprende distintas acciones en funcin del resultado. 2.5.1 Estructura Condicional Simple En este tipo de estructura condicional, se ejecuta el bloque de sentencias o instrucciones solamente si despus de evaluar la expresin da como resultado True; si por el contrario el resultado es False, entonces se salta este conjunto de instrucciones y se contina con el programa.
If (Expresin) Then sentencia(s) End If

Existe tambin una forma adicional de implementar esta estructura, si solamente se va a ejecutar una sola instruccin, la cual se debe colocar en la misma lnea de la sentencia If.
If (Expresin) Then Instruccin

2.5.2 Estructura Condicional Doble La primera ocupa slo una lnea y tiene la forma siguiente:
If (Expresin) Then sentencia1 Else sentencia2

La segunda es ms general y se muestra a continuacin:


If (Expresin) Then sentencia(s) Else sentencia(s) End If

2.5.3 Estructura Condicional Mltiple Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una condicin, la estructura adecuada es la siguiente:
If (Expresin1) Then sentencias1 ElseIf (Expresin2) Then sentencias2 Else sentencias-n End If

Por ejemplo, se desea escribir un programa que permita definir si un nmero a es menor, mayor o igual que un nmero b.
If (a<b) Then Console.WriteLine(a & " es menor que " & b) ElseIf (a=b) Then Console.Writeline (a & " igual que " & b) Else Console.Writeline (a & " es mayor que " & b) End If

Visual Basic proporciona la estructura Select Case como alternativa a IfThenElse para ejecutar selectivamente un bloque de sentencias entre varios bloques. La sentencia Select Case ofrece posibilidades similares a la instruccin IfThenElse, pero hace que el cdigo sea ms legible cuando hay varias opciones. La estructura Select Case funciona con una nica expresin de prueba que se evala una vez solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresin con los valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:
Select Case expresin_prueba Case lista_expresiones1 bloque de sentencias 1 Case lista_expresiones2 bloque de sentencias 2 Case Else bloque de sentencias n End Select

donde expresin es una expresin numrica o alfanumrica, y etiq1, etiq2, ... pueden adoptar las formas siguientes: 1. expresin 2. expresin To expresin 3. Is operador-de-relacin expresin 4. combinacin de las anteriores separadas por comas Por ejemplo:

Numero = 8 ' Se inicializa la variable Numero. Select Case Numero ' Se va a evaluar la variable Numero. Case 1 To 5 ' Si Numero est entre 1 y 5 Resultado = "Se encuentra entre 1 y 5" Case 6, 7, 8 ' Numero es uno de los tres valores. Resultado = "Se encuentra entre 6 y 8" Case Is = 9 , Is = 10 ' Numero es 9 10. Resultado = "El valor es 9 o 10" Case Else ' Si Numero toma otro valor Resultado = "El nmero no se encuentra entre 1 y 10" End Select

2.6

Aspectos adicionales a tomar en cuenta para la solucin de problemas en computadora con estructuras condicionales. En este tipo de ejercicio, se requiere la implementacin de estructuras

condicionales, se debe en primer lugar decidir cual es la condicin o condiciones a implementar, as como tambin seleccionar la estructura a utilizar (sencilla, doble o mltiple), de tal manera que el programa se ejecute de manera eficiente, es decir, que resuelva el problema con la menor cantidad de preguntas posibles (debe evitar las condiciones o estructuras condicionales innecesarias). Tambin se debe validar los datos de entrada y salida del programa; s as se requiere, esto requiere verificar que los valores estn dentro del rango de valores permitidos. Por ejemplo: Dado un valor entero x con un valor de 0 a 9, determinar: ., este enunc iado sugiere la validacin del valor x desde 0 hasta 9, para poder realizar los clculos, de lo contrario estara fuera del rango vlido por lo cual no se debera realizar los clculos. 2.7 Ejercicios Prcticos de Estructuras Condicionales.

1. Determinar si un nmero ledo por teclado es par o impar. Todo valor par se determina mediante el clculo del residuo de la divisin por dos. S el residuo de la divisin es igual a cero significa que el valor evaluado es par, de lo contrario es impar. Debe tomarse en cuenta tambin que el valor cero no es par 10

ni impar y que por lo tanto se debe excluir de la verificacin.

Module Module1 Sub Main() 'Variables de Entrada Dim num As Integer 'Entrada de Datos Console.WriteLine("Introduzca un nmero entero: ") num = Console.ReadLine 'Proceso y Salida de Datos If (num <> 0) Then If (num Mod 2 = 0) Then Console.WriteLine("El nmero introducido es par") Else Console.WriteLine("El nmero introducido es impar") End If Else Console.WriteLine("El nmero es cero, no es par ni es impar") End If Console.Write("Pulse una tecla para Finalizar") Console.ReadKey() End Sub End Module

2. Dado un valor entero x de dos dgitos, indique si sus dgitos son iguales. La cifra x se debe descomponer en unidad y decena, una de las formas de realizar esta descomposicin es dividiendo el valor x por 10, al hacerlo el valor de la unidad se obtiene en el residuo y la decena se obtiene en la divisin entera; por ltimo se realiza la comparacin entre los dos valores unidad y decena para mostrar el mensaje respectivo.

Module Module1 Sub Main() 'Variables de Entrada Dim x As Integer 'Variables de Salida Dim u, d As Integer 'Entrada de Datos Console.Write("Introduzca el valor de x:") x = Console.ReadLine

11

'Proceso u = x Mod 10 d = x \ 10 'Salida de Datos If (u = d) Then Console.WriteLine("Los digitos son iguales") Else Console.WriteLine("Los digitos son distintos") End If Console.Write("Pulse una tecla para Finalizar") Console.ReadKey() End Sub End Module

3. Escriba un programa que dados tres nmeros enteros, calcule el mayor y el menor de ellos. En primer lugar se compara el valor x con respecto a y y se asigna el valor mayor a la variable mayor y por supuesto el menor valor entre ellos se asigna a la variable menor, por ltimo se realiza la comparacin con el valor de z, y se muestran las variable mayor y menor.

Module Module1 Sub Main() 'Variables de Entrada Dim x, y, z As Integer 'Variables de Salida Dim mayor, menor As Integer 'Entrada de Datos Console.WriteLine("Introduzca tres numeros enteros: ") x = Console.ReadLine y = Console.ReadLine z = Console.ReadLine 'Proceso de Datos If (x >= y) Then mayor = x menor = y Else mayor = y menor = x End If If (z > mayor) Then mayor = z

12

Else If (z < menor) Then menor = z End If End If 'Salida de Datos Console.WriteLine("Mayor = " & mayor & "Menor = " & menor) Console.Write("Pulse una tecla para Finalizar") Console.ReadKey() End Sub End Module

4. Dado un par coordenado x, y; determinar si dicho punto se encuentra entre el eje x y la curva seno(x). Al analizar la grfica del seno (ver la siguiente figura) se puede observar que el dominio son todos los nmeros reales y que el rango est comprendido entre 1 y -1. Lo ideal es hacer el anlisis en dos partes, los puntos con y positivo y los puntos con valor y negativo.

Para la y positiva se tiene que todo valor de y que es mayor que el valor del seno(x) est fuera de la zona; por otro lado para la y negativa se tiene que toda y que sea menor que el seno(x) tambin est fuera de la zona.

Module Module1 Sub Main() 'Variables de Entrada Dim x, y As Single

13

'Entrada de Datos Console.Write("Introduzca la Abscisa x:") x = Console.ReadLine Console.WriteLine("Introduzca la ordenada y:") y = Console.ReadLine 'Proceso y Salida de Datos If (y >= 0) Then If (y > Math.Sin(x)) Then Console.WriteLine("El punto no esta en la zona") Else Console.WriteLine("El punto esta en la zona") End If Else If (y < Math.Sin(x)) Then Console.WriteLine("El punto no esta en la zona") Else Console.WriteLine("El punto esta en la zona") End If End If Console.Write("Pulse una tecla para Finalizar") Console.ReadKey() End Sub End Module

5. Escriba un programa que determine la calificacin con letra de un promedio numrica dado, para un promedio de 0 a 5, 6 a 10, 11 a 15 y de 16 hasta 20 la letra es D, C, B y A respectivamente.

Module Module1 Sub Main() Dim nota As Integer 'Variables de Salida Dim nota_letra As Char 'Entrada de Datos Console.Write("Ingrese la Nota: ") nota = Console.ReadLine 'Proceso de Datos Select Case nota Case 0 To 5 nota_letra = "D" Case 6 To 10 nota_letra = "C" Case 11 To 15 nota_letra = "B" Case 16 To 20 nota_letra = "A" Case Else

14

Console.WriteLine("DATOS INCORRECTOS") End Select 'Salida de datos Console.WriteLine("La Calificacin con letra es: Console.Write("Pulse una tecla para salir") Console.ReadKey() End Sub End Module

" & nota_letra)

15

Anda mungkin juga menyukai