You are on page 1of 38

Capitulo IV

INDICE

CAPITULO IV

Funciones de Conversin Smbolos de Comparacin Operadores And AndAlso Or Xor OrElse Not Is To Funcin Fecha Now Date Year Month Day WeekDay DateAdd DateDiff DatePart Instruccin Condicional Solucin del Ejercicio 09 Solucin del Ejercicio 10 Solucin del Ejercicio 11 Solucin del Ejercicio 12 Solucin del Ejercicio 13 13 12 11 11 10 07 07 07 07 06 06 06 06 06 06 06 06 05 05 05 03 03 02 02 02 02

01

Condiciones Mltiples Solucin del Ejercicio 14 Solucin del Ejercicio 15 Solucin del Ejercicio 16 Solucin del Ejercicio 17 Solucin del Ejercicio 18 17 17 16 16 15

14

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

FUNCIONES DE CONVERSIN
Como se habrn dado cuenta que al activar la opcin de Option Strict, este nos obliga que tenemos que utilizar funciones de conversin para cada tipo de dato, con lo que no hacamos, si no lo estaba activado, como lo fue en los 8 primeros ejercicios, las funciones mas utilizadas estarn de color verde, las funciones de conversin son las siguientes:

Nombre de la Tipo de datos Valores del argumento funcin que devuelve "expresin" CBool(expresion) Boolean Cualquier valor de cadena o expresin numrica. CByte(expresion) Byte De 0 a 255; las fracciones se redondean. CChar(expresion) Char Cualquier expresin de cadena; los valores deben ser de 0 a 65535. CDate(expresion) Date Cualquier representacin vlida de una fecha o una hora. CDbl(expresion) Double Cualquier valor Double, ver la tabla anterior para los valores posibles. CDec(expresion) Decimal Cualquier valor Decimal, ver la tabla anterior para los valores posibles. CInt(expresion) Integer Cualquier valor Integer, ver la tabla anterior para los valores posibles, las fracciones se redondean. CLng(expresion) Long Cualquier valor Long, ver la tabla anterior para los valores posibles, las fracciones se redondean. CObj(expresion) Object Cualquier expresin vlida. CShort(expresion) Short Cualquier valor Short, ver la tabla anterior para los valores posibles, las fracciones se redondean. CSng(expresion) Single Cualquier valor Single, ver la tabla anterior para los valores posibles. CStr(expresion) String Depende del tipo de datos de la expresin. Nota: Todos los objetos de vb.NET tienen unos mtodos para realizar conversiones a otros tipos, al menos de nmero a cadena, ya que tienen la propiedad .ToString que devuelve una representacin en formato cadena del nmero en cuestin (igual que CStr). CType(expresion, El indicado en Cualquier tipo de datos el segundo Tipo) parmetro Val(expresion) Double Una cadena de caracteres. Fix(expresion) Depende del Cualquier tipo de datos tipo de datos de la expresin

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Int(expresion) Depende del Cualquier tipo de datos tipo de datos de la expresin

Una de las funciones ms utilizadas, para hallar restos es la funcin Mod, ya sea para diversas soluciones ya sean Matemticas, fsicas y entre otras.

Mod: Devuelve el resto de una divisin, la sintaxis es la siguiente:

Dividendo Mod Divisor

Smbolos de Comparacin

= < > <= >= <>

igual Menor que Mayor que menor o igual mayor o igual Distinto

OPERADORES

And

El operador And solo utilizamos cuando queremos que se cumpla una serie de expresiones, por ejemplo:

If a > b And a > c Then

Console.WriteLine("a es mayor que b y c")

End If

Como vemos en este ejemplo, hacemos dos comparaciones, el primero si a es mayor que b, y la segunda si a es mayor que c, si estas dos expresiones (comparaciones) resultan verdaderas, nos mostrar un mensaje dicindoos que a es mayor que b y c.

AndAlso

El operador AndAlso comprueba tambin una seria de expresiones, pero a comparacin del And, este comprueba siempre y cuando la expresin anterior resulta ser verdadera por ejemplo:

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

If a > b AndAlso a > c Then

Console.WriteLine("a es mayor que b y c")

End If

Como vemos en este ejemplo, hacemos dos comparaciones, el primero si a es mayor que b, y la segunda si a es mayor que c, si la primera expresin (a > b) resulta ser verdadera har la comparacin de la segunda expresin (a > c), pero si no lo es, ya no se evaluara la expresin siguiente. Pero si las dos resultan verdaderas, nos mostrar un mensaje dicindoos que a es mayor que b y c.

Or

El operador Or solo utilizamos cuando queremos que se cumpla una expresin de toda una serie de expresiones, por ejemplo:

If Promedio < 0 Or Promedio > 20 Then

Console.WriteLine("Ingrese la Nota Correcta (1 20)")

End If

En este ejemplo, si promedio es menor a cero o promedio es mayor a 20 nos mostrar un mensaje indicndonos que la nota que se ingreso es incorrecta, solo basta que una de las dos expresiones evaluadas sea verdadera.

Xor

El operador Xor lo utilizaremos para casos especiales ya que realiza una operacin de exclusin lgica entre dos expresiones de tipo Boolean o bien una exclusin bit a bit entre dos expresiones numricas, por ejemplo:

Resultado = expresin1 Xor expresin2

Resultado: Requerido. Cualquier variable numrica o de tipo Boolean. En una comparacin de tipo Boolean, el resultado ser la exclusin lgica de dos expresiones. En operaciones bit a bit, el resultado ser un valor numrico resultante de la disyuncin bit a bit de dos expresiones numricas.

Expresin1: Requerido. Cualquier expresin numrica o de tipo Boolean.

Expresin2: Requerido. Cualquier expresin numrica o de tipo Boolean del mismo tipo que expression1

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Si son de Tipo Bolean

Si Expresin1 es... True True False False

Y Expresin2 es... True False True False

Resultado ser False True True False

Si son de Tipo Bit (Numricos)

Si el bit en Expresin1 es 0 0 1 1

Y el bit en Expresin2 es 0 1 0 1

Resultado ser 0 1 1 0

Ejemplo:

Dim A As Integer = 10 Dim B As Integer = 8 Dim C As Integer = 6 Dim Resultado As Boolean Resultado = A > B Xor B > C Resultado = B > A Xor B > C Resultado = B > A Xor C > B

' Returns False. ' Returns True. ' Returns False.

En este ejemplo se usa el operador Xor para realizar una exclusin lgica entre cada uno de los bits de dos expresiones numricas. El bit en el modelo resultante se establecer si antes se han establecido solamente uno de los bits correspondientes a los operndoos.

Dim A As Integer = 10 Dim B As Integer = 8 Dim C As Integer = 6 Dim Resultado As Integer Resultado = (A Xor B) ' Returns 2. Resultado = (A Xor C) ' Returns 12. Resultado = (B Xor C) ' Returns 14.

Esto de Xor, he tomado referencia del MSDN de Visual Basic 2005, ya que aqu se encuentra unos ejemplos ms claros, mientras tanto sigamos haciendo los dems operadores.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


OrElse

El operador OrElse comprueba tambin una seria de expresiones, solo que bastara que una expresin sea verdadera para que no realice las dems evaluaciones. Por ejemplo:

If Promedio < 0 OrElse Promedio > 20 Then

Console.WriteLine("Ingrese la Nota Correcta (1 20)")

End If

En este ejemplo si la primera expresin resulta verdadera, ya no realizara la siguiente expresin, en cambio si resultara falsa, realizara la siguiente expresin.

Not

Este operador se utiliza para hacer negaciones, ms en los casos de tipo Bolean por ejemplo:

Dim Variable As Boolean = True Dim Resultado As Boolean Resultado = Not Variable ' Retorna False.

Primero declaramos una variable de tipo Boolean y le asignamos un valor de Trae, pero despus en la instruccin negamos el valor almacenado y lo cambiamos por False (Not Variable), as que la variable resultado tendr el valor de False, sencillo no?.

Is

Este operador nos permite hacer comparaciones ya sea Booleanas o de String, este nos devolver un valor Boolean de la expresin dada, por ejemplo:

Dim Variable As String = Joel Dim Resultado As Boolean Resultado = IsNumeric(Variable) ' Retorna False.

Este ejemplo es parecido al anterior solo que le preguntamos si la Variable es de valor Numrico (IsNumeric(Variable)), pero como es de tipo de cadena (String) nos devolver un valor de False,

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


To

Este operador lo usaremos mas en las Procesos Repetitivos o de Condiciones Mltiples, sirve para determinar un rango de nmeros, por ejemplo:

For K = 1 To 10

A=A+1

Next

Este bucle correr o mejor dicho, realizara 10 veces la instruccin de A=A+1 Ya que le indicamos que la variable K va a valer del 1 al 10.

FUNCIONES TIPO FECHA

Funcin Now()

Esta funcin nos devuelve la fecha y hora actual del sistema, en un formato largo.

Funcin Date()

Esta funcin nos devuelve la fecha actual del sistema.

Funcin Year(Fecha)

Esta funcin nos devuelve el ao de una fecha especificada.

Funcin Month(Fecha)

Obtiene el Nmero de mes de una fecha especificada.

Funcin Day(Fecha)

Obtiene el nmero de da de una fecha enviada o especificada.

Funcin WeekDay(Fecha)

Obtiene el nmero del da de la semana, tomando el domingo como valor nmero 1.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Funcin DateAdd(TipoIntervalo,ValorIntervalo,Fecha)

Suma o resta a una fecha, un intervalo determinado, para determinar si se realiza una suma o resta, el TipoIntervalo puede ser das, semanas, horas, meses, aos, etc. ValorIntervalo deber de ser positivo o negativo respectivamente.

Funcin DateDiff(TipoIntervalo,FechaPrimera,FechaSegunda)

Calcula la diferencia existente entre dos fechas.

Funcin DatePart(TipoIntervalo,fecha)

Extrae la parte de una fecha indicada.

INSTRUCCIN CONDICIONAL

Como vimos en la primera entrega, estas instrucciones nos permiten tomar decisiones, dndonos un resultado de Verdadero o Falso, a menudo esta instruccin es la ms utilizada por todos los programadores, as que tendrs que aprendrtela de memoria, y no te preocupes que es muy fcil de usar.

Sintaxis:

Primera Forma:

If <expresin a evaluar> Then <Instruccin (si la expresin devuelve Verdadero)>

Ejemplo:

If a = b Then MessageBox(Son Nmeros Iguales)

Si la expresin a evaluar de a = b devuelve o mejor dicho es verdadera, este nos mostrar un mensaje, con el texto de Son Nmeros Iguales.

Segunda Forma:

If <expresin a evaluar> Then

<Instruccin (si la expresin evaluada devuelve Verdadero)>

End If

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Ejemplo:

If b <> 0 Then

Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res)

End If

Esta segunda forma, lo utilizamos cuando tengamos que hacer mas de una instruccin si la expresin a evaluar resulta verdadera, en este caso si a es mayo que b, si es verdadero este har la siguiente instruccin de a dividir entre b y el resultado guardarlo en una variable llamada Res, que despus la mostraremos en pantalla.

Tercera Forma:

If <expresin a evaluar> Then

< Instruccin (si la expresin evaluada devuelve Verdadero)>

Else

< Instruccin (si la expresin evaluada devuelve Falso)>

End If

Ejemplo:

If b <> 0 Then

Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res)

Else

Console.WriteLine("Error: Divisin Entre Cero")

End If

Esta forma nos permite utilizar los dos tipos de resultados de la expresin evaluada, por ejemplo, si b es diferente a cero este dividir a a, pero si es falso, nos mostrara un mensaje de Error.

Cuarta Forma:

If <expresin a evaluar> Then <Instruccin (si la expresin evaluada devuelve Verdadero)> Else <Instruccin (si la expresin evaluada devuelve Falso)> (todo en una misma lnea)

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Ejemplo:

If a = b Then MessageBox(Son Nmeros Iguales) Else MessageBox(No son Nmeros Iguales)

(Todo en una misma lnea)

Esta forma no tan muy usada, solo en los casos cuando hay que hacer una sola instruccin en cada tipo de respuesta de la expresin evaluada, por ejemplo, si a es igual b nos mostrar un mensaje de Nmeros Iguales, pero si es falso nos mostrara otro mensaje dicindonos que No son Nmeros iguales, y recuerden que es en una sola lnea.

Quinta Forma:

If <expresin a evaluar> Then

< Instruccin (si la expresin evaluada devuelve Verdadero)>

ElseIf <expresin a evaluar> Then

< Instruccin (si la expresin evaluada devuelve Verdadero)>

Else

< Instruccin (si la expresin evaluada devuelve Falso)>

End If

Ejemplo:

If b = 0 Then

Console.WriteLine("Error: Divisin Entre Cero")

ElseIf a <> b Then

Res = a / b Console.WriteLine("El Resultado de La Divisin es: {0}", Res)

Else

Console.WriteLine("El Resultado de La Divisin es: 1")

End If

Wueno a mi parecer y si es que no me equivoco, esta es una de las formas mas usadas, ya que son if anidados, como lo haba en los pseudocdigos, el else es opcional, como lo ven en este ejemplo, si b es igual a cero, nos mostrara un mensaje de Error de Divisin, pero si es falso, har la siguiente evaluacin que ser si a es diferente de b har la divisin y nos mostrar el resultado de la divisin,

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


pero si es falso nos mostrar un mensaje, dicindonos que el resultado de la divisin es 1, sin ser necesario dividir.

Nota: Recuerda que para cada IF hay un THEN y un END IF, as como en el pseudocdigo.

Bueno, despus de tanta teora, empezaremos a resolver los ejercicios de la primera entrega, si, los mismo que hicimos en Pseudocdigo,

Solucin del Ejercicio 09

Module Ejercicio09 'Este algoritmo permite averiguar si una persona debe de inscribirse 'en el SMO (Servicio Militar Obligatorio), sabiendo su ao de nacimiento. Sub Main() Dim AA, AN, E As Integer Console.Write("Ingrese el Ao de Nacimiento : ") AN = CInt(Console.ReadLine) 'Capturamos el ao del sistemas y lo almacenamos 'en la variable AA AA = Microsoft.VisualBasic.Year(Now) E = AA - AN If E > 17 Then Console.WriteLine("Debe de Inscribirse en el SMO") Else Console.WriteLine("No Debe de Inscribirse en el SMO") End If Console.ReadLine() End Sub

End Module

En el pseudocdigo, nosotros pedamos el ingreso de la fecha actual, pero teniendo funciones que nos permiten capturar la fecha actual del sistema, mejor opte por resolverlo as, pero si no les gusta, pueden hacerlo como el pseudocdigo, y el otro detalle que tengo que recalcar es que ahora estoy utilizando la opcin Option Strict, el cual me obliga a utilizar funciones de conversin de datos, que ya hemos visto al principio de esta entrega, as que no se pueden quejar.

Para utilizar las funciones de fecha, tendremos que hacer mencin a la clase Microsoft, y de ah a la sub clase VisualBasic, aqu se encontrarn casi todas las funciones, ya sean de fecha, de cadenas, de conversin, etc.

Les explicare un poco, la funcin Now me devuelve la fecha actual del sistema, que seria mas o menos as: 11-02-2006 01:57:25 pm, por lo tanto nosotros no queremos saber toda esta fecha larga por decirle, as que utilizamos la funcin Year que capturara el ao de toda la fecha larga, mejor dicho solo nos obtendr el siguiente dato que es 2006, nada mas, si que es sencillo no?.

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Solucin del Ejercicio 10

Module Ejercicio10 'Este algoritmo solicita la edad de 2 hermanos y muestre un mensaje indicando 'la edad del mayor y cuantos aos de diferencia tiene con el menor. Sub Main() Dim E1, E2, DE As Integer Console.Write("Ingrese la Edad del Primer Hermano : ") E1 = CInt(Console.ReadLine) Console.Write("Ingrese la Edad del Segundo Hermano : ") E2 = CInt(Console.ReadLine) If E1 > E2 Then DE = E1 - E2 Console.Write("El Primer Hermano es Mayor por {0} {1}", DE, " aos") Else DE = E2 - E1 Console.Write("El Segundo Hermano es Mayor por {0}{1}", DE, " aos") End If Console.ReadLine() End Sub

End Module

Solucin del Ejercicio 11

Module Ejercicio11 'Este algoritmo nos muestre si el operario recibir incentivos sabiendo 'que el promedio de produccin mnima es de 100 unidades. Sub Main() Dim PL, PMa, PMi, PJ, PV, PS As Integer Dim PP As Single Console.Write("Ingrese la Produccin del dia Lunes: ") PL = CInt(Console.ReadLine) Console.Write("Ingrese la Produccin del dia Martes: ") PMa = CInt(Console.ReadLine) Console.Write("Ingrese la Produccin del dia Miercoles: ") PMi = CInt(Console.ReadLine) Console.Write("Ingrese la Produccin del dia Jueves: ") PJ = CInt(Console.ReadLine) Console.Write("Ingrese la Produccin del dia Viernes: ") PV = CInt(Console.ReadLine) Console.Write("Ingrese la Produccin del dia Sbado: ") PS = CInt(Console.ReadLine) PP = CSng((PL + PMa + PMi + PJ + PV + PS) / 6) If PP >= 100 Then Console.WriteLine("Recibira Incentivos") Else Console.WriteLine("No Recibira Incentivos") End If Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

Solucin del Ejercicio 12

Module Ejercicio12 'Este algoritmo permite leer 3 nmeros enteros diferentes entre si 'y determina el nmero mayor de los tres. Sub Main() Dim N1, N2, N3, NM As Integer Console.Write("Ingrese el Primer Nmero: ") N1 = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") N2 = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") N3 = CInt(Console.ReadLine) If N1 > N2 And N1 > N3 Then NM = N1 Else If N2 > N3 Then NM = N2 Else NM = N3 End If End If

'Segunda forma

'If N1 > N2 And N1 > N3 Then 'NM = N1 'ElseIf N2 > N3 Then 'NM = N2 'Else 'NM = N3 'End If

Console.WriteLine("El Nmero Mayor es: {0}", NM) Console.ReadLine() End Sub

End Module

Me olvidaba algo de explicarles, la funcin Console.ReadLine() nos devuelve una cadena, es por eso que tenemos que convertirlo al tipo de dato de la variable que estamos almacenando.

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

Solucin del Ejercicio 13

Module Ejercicio13 'Este algoritmo sirve para identificar el tipo de triangulo 'conociendo sus tres lados. Sub Main() Dim L1, L2, L3 As Integer Dim TT As String Console.Write("Ingrese el Lado 1: ") L1 = CInt(Console.ReadLine) Console.Write("Ingrese el Lado 2: ") L2 = CInt(Console.ReadLine) Console.Write("Ingrese el Lado 3: ") L3 = CInt(Console.ReadLine) If L1 <> L2 And L2 <> L3 And L3 <> L1 Then TT = "Escaleno" Else If L1 = L2 And L2 = L3 Then TT = "Equilatero" Else TT = "Issceles" End If End If

'Segunda Forma

'If L1 <> L2 And L2 <> L3 And L3 <> L1 Then 'TT = "Escaleno" 'ElseIf L1 = L2 And L2 = L3 Then 'TT = "Equilatero" 'Else 'TT = "Issceles" 'End If

Console.WriteLine("El Tipo de Triangulo Ingresado es {0}", TT) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

CONDICIONES MULTIPLES

Este tipo de condiciones lo usamos para tener varios tipos de compariciones (expresiones a evaluar).

Sintaxis:

Select Case <expresin a evaluar>

Case <lista de expresiones>

Instrucciones

Case <otra lista de expresiones>

Instrucciones

Case Else

'si no se cumple ninguna de las listas de expresiones

End Select

Ejemplo:

Select Case i Case 3 : 'Instruccin a realizar Case 6 To 11 ' Instruccin a realizar Case 14, 17 ' Instruccin a realizar Case Is > 25 ' Instruccin a realizar Case Else ' Instruccin a realizar End Select

En el ejemplo, hacemos varias comprobaciones, si i vale 3 haremos la instruccin que sigue despus de los dos puntos (podemos ejecutar solo una instruccin despus de los dos puntos, si en caso hubiera mas instrucciones a ejecutar, estas instrucciones las pondramos en la parte inferior del Case), en cambio si tiene un valor de 6 a 11 ejecutara la instruccin que se encuentra en su inferior, o si tiene el valor de 14 17, ejecutara la instruccin que se encuentra en su inferior, o si i es mayor que 25, realizara la instruccin que se encuentra en su inferior, y por ultimo si no cumple ninguna comparacin, existe el Case Else, que ejecutara su instruccin, siempre y cuando no se cumpla ninguna expresin en los dems Case.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

Solucin del Ejercicio 14

Module Ejercicio14 'Este algoritmo permite ingresar un nmero entero (1 a 10) 'y muestra su equivalente en romano. Sub Main() Dim NE As Integer Dim ER As String Console.Write("Ingrese Un Nmero Entero (1 - 10): ") NE = CInt(Console.ReadLine) Select Case NE Case 1 : ER = "I" Case 2 : ER = "II" Case 3 : ER = "III" Case 4 : ER = "IV" Case 5 : ER = "V" Case 6 : ER = "VI" Case 7 : ER = "VII" Case 8 : ER = "VIII" Case 9 : ER = "IX" Case 10 : ER = "X" Case Else : ER = "No Existe" End Select Console.WriteLine("Su Equivalente en Romano es: {0}", ER) Console.ReadLine() End Sub

End Module

Como se ve en este ejemplo, utilizamos una expresin por cada Case, as que esta instruccin la escribir despus de los dos puntos de la expresin evaluada.

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005


Solucin del Ejercicio 15

Module Ejercicio15 'Este algoritmo permite ingresar el monto de venta alcanzado por 'un promotor durante el mes, luego de calcular la bonificacin que le 'corresponde sabiendo: '0 a 1000 = > 0 % '1000 a 5000 = > 3 % '5000 a 20000 = > 5 % '20000 a ms = > 8 % Sub Main() Dim MV As Integer Dim TB As Single Console.Write("Ingrese el Monto de Venta: ") MV = CInt(Console.ReadLine) Select Case MV Case 0 To 999 TB = CSng((0 * MV) / 100) Case 1000 To 4999 TB = CSng((3 * MV) / 100) Case 5000 To 19999 TB = CSng((5 * MV) / 100) Case Is >= 20000 TB = CSng((8 * MV) / 100) End Select Console.WriteLine("El Total de Bonificacin es: {0}", TB) Console.ReadLine() End Sub

End Module

Solucin del Ejercicio 16

Module Ejercici16 'Este algoritmo solicita un nmero entero y muestre un mensaje 'indicando la vocal correspondiente, considerando que la vocal A = 1. Sub Main() Dim NE As Integer Dim V As String Console.Write("Ingrese Un Nmero (1 - 5): ") NE = CInt(Console.ReadLine) Select Case NE Case 1 : V = "A" Case 2 : V = "E" Case 3 : V = "I" Case 4 : V = "O" Case 5 : V = "U" Case Else : V = "No Existe" End Select Console.WriteLine("El Equivalente en vocal es: {0}", V) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo IV Programando con Visual Basic 2005

Solucin del Ejercicio 17

Module Ejercicio17 'Se desea leer un nmero entero de 2 cifras y que se muestre el nmero de 'unidades, decenas que lo componen. Sub Main() Dim NE, D, U, Q, R As Integer Console.Write("Ingrese Un Nmero Entero de 2 Dgitos: ") NE = CInt(Console.ReadLine) Q = CInt(NE / 10) R = NE - (Q * 10) D=Q U=R Console.WriteLine("Tiene {0} {1} {2} {3}", D, " Decenas y ", U, " Unidades") Console.ReadLine() End Sub

End Module

Solucin del Ejercicio 18

Module Ejercicio18 'Este algoritmo solicita un nmero entero y diferente a cero 'e indica si es par. Sub Main() Dim NE, Q, R As Integer Dim MSG As String Console.Write("Ingrese Un Nmero Entero: ") NE = CInt(Console.ReadLine) Q = CInt(NE / 2) R = NE - (Q * 2) If R = 0 Then MSG = "Es Par" Else MSG = "Es Impar" End If Console.WriteLine("El Nmero que Ingreso {0}", MSG) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 17

Capitulo V

INDICE

CAPITULO V

Procesos Repetitivos For / Next For Each Solucin del Ejercicio 19 Solucin del Ejercicio 20 Solucin del Ejercicio 21 Solucin del Ejercicio 22 Funcin Reset Funcin Exit Solucin del Ejercicio 23 Estructuras repetitivas While / End While Do / Loop Solucin del Ejercicio 24 Solucin del Ejercicio 25 Solucin del Ejercicio 26 Solucin del Ejercicio 27 Solucin del Ejercicio 28 Solucin del Ejercicio 29 Solucin Del Problema Propuesto Solucin del Problema A Ejercicios Despedida 16 14 13 13 12 11 10 09 08 08 06 06 06 05 04 04 04 03 03 02 02 02

01

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

PROCESOS REPETITIVOS

Los procesos repetitivos o llamados bucles, se utilizan para repetir el o los cdigos, un nmero determinado de veces, para esto usaremos el For, que nos permitir repetir un nmero determinado de veces el cdigo.

For / Next

Con este tipo de bucle podemos repetir un cdigo un nmero determinado de veces.

Sintaxis:

For <variable numrica> = <valor inicial> To <valor final> [Step <incremento>]

'contenido del bucle, lo que se va a repetir

Next

Primera Forma: Una de las formas mas utilizadas.

For i = 1 To 10 'contar de 1 hasta 10 'la variable i tomar los valores 1, 2, 3, etc. Next

Segunda Forma: Esta forma se utiliza para decirle como va a incrementar, ya sea como el ejemplo de 2 en 2.

For i = 1 To 100 Step 2 'contar desde 1 hasta 100 (realmente 99) de 2 en 2 'la variable i tomar los valores 1, 3, 5, etc. Next

Tercera Forma: Cuando queremos que un bucle sea en decreciente solo bastar darle un valor negativo, al nmero, como en el ejemplo, queremos que en vez que avance del 1 al 10 queremos que este vaya del 10 al 1.

For i = 10 To 1 Step -1 'contar desde 10 hasta 1 'la variable i tomar los valores 10, 9, 8, etc. Next

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

For Each

Este bucle repetir o iterar por cada uno de los elementos contenidos en una coleccin.

Sintaxis:

For Each <variable> In <coleccin del tipo de la variable>

'Lo que se har mientras se repita el bucle

Next

Ejemplo:

Dim s As String

For Each s In "Hola Mundo" Console.WriteLine(s) Next Console.ReadLine()

Este bucle recorre cada uno de los caracteres de una cadena, en este caso recorrer cada carcter de la cadena s (Hola Mundo)., comenzando por la H y de ah la o y as hasta la ultima o de la palabra Mundo.

Solucin del Ejercicio 19

Module Ejercicio19 'Elabore un algoritmo que contenga los nmero pares del 1 al 10 Sub Main() Dim N, K As Integer N=2 Console.WriteLine(N) For K = 1 To 4 N=N+2 Console.WriteLine(N) Next Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 20

Module Ejercicio20 'Este algoritmo permite mostrar el sueldo promedio de un grupo de 'empleados. Sub Main() Dim SE, NE, K, SS As Integer Dim SP As Single Console.Write("Ingrese el Numero de Empleados: ") NE = CInt(Console.ReadLine) SS = 0 For K = 1 To NE Console.Write("Ingrese el Sueldo {0}: ", K) SE = CInt(Console.ReadLine) SS = SS + SE Next SP = CSng(SS / NE) Console.WriteLine("El Sueldo Promedio es: {0}", SP) Console.ReadLine() End Sub

End Module

Solucin del Ejercicio 21

Module Ejercicio21 'Este algoritmo solicita la edad de 200 personas, y muestra 'cuantos son mayores y menores de edad hay. Sub Main() Dim EP, MAY, MEN, K As Integer MAY = 0 MEN = 0 For K = 1 To 200 Console.Write("Ingrese la Edad : ") EP = CInt(Console.ReadLine) If EP < 18 Then MEN += 1 Else MAY += 1 End If Next Console.WriteLine("Usted ha Ingresado {0} {1}", MEN, " Menores de Edad") Console.WriteLine("Usted ha Ingresado {0} {1}", MAY, " Mayores de Edad") Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 22

Module Ejercicio22 'Este algoritmo solicita 2 nmero enteros y muestra su producto 'por el mtodo de sumas sucesivas. Sub Main() Dim PN, SN, K, P As Integer Console.Write("Ingrese el Primer Nmero: ") PN = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") SN = CInt(Console.ReadLine) P=0 For K = 1 To SN P += PN Next Console.WriteLine("El Producto Hallado Por Sumas Sucesivas: {0}", P) Console.ReadLine() End Sub

End Module

Funcin Reset: Esta funcin nos permite reiniciar un ciclo de proceso, o mas aun podemos volver a un formato original de un control, esto ya lo veremos de aca mas adelante cuando tocaremos las ventanas de aplicacin, que va a ser mas o menos de aca a unas 2 o 3 entregas mas.

Funcin Exit: Esta funcin nos permite salir ya sea de un proceso o un bucle, tambin salir de toda una funcin, clase, y funcin principal Main.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 23

Module Ejercicio23 'Este algoritmo muestra 10 nmeros enteros a partir de 1 excepto 'los pares. Sub Main() Dim Q, R, K As Integer For K = 1 To 20 Q = CInt(K / 2) R = K - (Q * 2) If R = 0 Then Reset() Else Console.WriteLine("Nmero {0}", K) End If

'Segunda Forma

'If R <> 0 Then 'Console.WriteLine("Nmero {0}", K) 'End If Next Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

ESTRUCTURAS REPETITIVAS

Las estructuras repetitivas o llamados tambin bucles, se utilizan para repetir el o los cdigos, hasta que la expresin evaluada de un valor de Falso.

While / End While

Se repetir mientras se cumpla la expresin lgica que se indicar despus de While

Sintaxis:

While <expresin>

Lo que haya que hacer mientras se cumpla la expresin

End While

Ejemplo:

While i < 10 Console.WriteLine(i) i=i+1 End While

Este cdigo escribir el valor de i hasta que el valor de i tome el valor de 10 o ms.

Do / Loop

Este tipo de bucle es muy parecido al anterior. Si se utiliza slo con esas dos instrucciones, este tipo de bucle no acabar nunca y repetir todo lo que haya entre Do y Loop. Pero este tipo de bucle se puede usar con dos instrucciones que nos permitirn evaluar expresiones lgicas: While y Until Pero no debemos confundir este While con el While/End While que acabamos de ver anteriormente. La ventaja de usar While o Until con los bucles Do/Loop es que estas dos instrucciones podemos usarlas tanto junto a Do como junto a Loop, la diferencia est en que si los usamos con Do, la evaluacin se har antes de empezar el bucle, mientras que si se usan con Loop, la evaluacin se har despus de que el bucle se repita al menos una vez.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Sintaxis:

Primera Forma: Este bucle evala al principio, mejor dicho realizara el cdigo o las instrucciones un numero que digamos que sea n veces.

Do While <expresin>

Instruccin

Loop

Segunda Forma: Este bucle evala al final, mejor dicho realizara el cdigo o las instrucciones n 1 veces.

Do

Instruccin

Loop While <expresin>

Tercera Forma: Este bucle evala al principio, a diferencia que el primero realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n veces.

Do Until <expresin>

Instruccin

Loop

Cuarta Forma: Este bucle evala al final, a diferencia que el segundo realizara el cdigo siempre y cuando la expresin sea falsa, mejor dicho realizara el cdigo o las instrucciones n 1 veces

Do

Instruccin

Loop Until <expresin>

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 24

Module Ejercicio24 'Este algoritmo muestra los trminos de la serie 'que sean menores a 1000. '1, 2, 5, 26 Sub Main() Dim S As Integer S=1 While (S < 1000) Console.Write(" {0} ", S) S = CInt(Math.Pow(S, 2) + 1) End While Console.ReadLine() End Sub

End Module

Solucin del Ejercicio 25

Module Ejercicio25 'Elaborar un algoritmo que solicite ingresar letras 'hasta que este ingrese una vocal. Sub Main() Dim L, SEMAF As String SEMAF = "V" While SEMAF = "V" L = Console.ReadLine Select Case L Case "A", "a" SEMAF = "R" Case "E", "e" SEMAF = "R" Case "I", "i" SEMAF = "R" Case "O", "o" SEMAF = "R" Case "U", "u" SEMAF = "R" Case Else SEMAF = "V" End Select End While 'Presionar ENTER por cada letra ingresada End Sub

End Module

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 26

Module Ejercicio26 'Este algoritmo muestra los trminos de la serie Fibonacci que sean 'menores a 100000. '0, 1, 1, 2, 3, 5, 8, 13, 21, 34 Sub Main() Dim A, B, C As Integer A=0 B=1 C=A+B Console.Write(" {0}", A) Console.Write(" {0}", B) While (C < 100000) Console.Write(" {0}", C) A=B B=C C=A+B End While Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 27

Module Ejercicio27 'Elaborar un algoritmo que solicite 2 nmeros enteros y un operador aritmtico 'y luego debe de mostrar el resultado de la operacin correspondiente. ' + Suma ' - Resta ' * Multiplicacin ' / Divisin Sub Main() Dim N1, N2 As Integer Dim R As Single Dim OP As String Console.Write("Ingrese el Primer Nmero: ") N1 = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") N2 = CInt(Console.ReadLine) Console.Write("Ingrese el Operador: ") OP = Console.ReadLine Select Case OP Case "+" : R = CSng(N1 + N2) Case "-" : R = CSng(N1 - N2) Case "*" : R = CSng(N1 * N2) Case "/" : R = CSng(N1 / N2) Case Else : R = 0 End Select Console.WriteLine("El Resultado de la Operacin es: {0}", R) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 28

Module Ejercicio28 'Este algoritmo permite ingresar 10 letras cualquiera, y luego nos 'indica al final cuantas vocales y consonantes se ingresaron. Sub Main() Dim L As String Dim NV, NC, K As Integer For K = 1 To 10 L = Console.ReadLine Select Case L Case "A", "a" : NV += 1 Case "E", "e" : NV += 1 Case "I", "i" : NV += 1 Case "O", "o" : NV += 1 Case "U", "u" : NV += 1 Case Else : NC += 1 End Select Next Console.WriteLine("Usted Ingreso {0} {1} {2} {3}", NV, " Vocales y ", NC, " Consonantes") Console.ReadLine() 'Presionar ENTER por cada letra ingresada End Sub

End Module

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Solucin del Ejercicio 29

Module Ejercicio29 'Este algoritmo permite obtener el resultado del escrutinio en las 'elecciones del delegado del aula I - B - 10, considerar que hay 60 electores y 'se han presentado 3 candidatos, todos votaron, el algoritmo debe de declara 'al ganador por mayora simple. Sub Main() Dim VE, K As Integer Dim C1, C2, C3, C0 As Integer Dim G As String For K = 1 To 60 Console.Write("Voto: ") VE = CInt(Console.ReadLine) Select Case VE Case 1 : C1 += 1 Case 2 : C2 += 1 Case 3 : C3 += 1 Case Else : C0 += 1 End Select Next If C1 > C2 AndAlso C1 > C3 AndAlso C1 > C0 Then G = "Candidato 1" ElseIf C2 > C3 AndAlso C2 > C0 Then G = "Candidato 2" ElseIf C3 > C0 Then G = "Candidato 3" Else G = "Votos Nulos" End If Console.WriteLine("El Ganador es: {0}", G) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

SOLUCION DEL PROBLEMA PROPUESTO

Problema A.

Module ValorAbsoluto 'Este algoritmo halla el valor absoluto de cualquier nmero. Sub Main() Dim Num As Integer, Val As Double Console.Write("Ingrese Un Nmero Cualquiera: ") Num = CInt(Console.ReadLine) Val = Math.Abs(Num) Console.WriteLine("Le valor Absoluto de {0}{1}{2}", Num, " es ", Val) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

EJERCICIOS

Elaborar los siguientes programas:

1. Zodiaco, El usuario debe de ingresar el da y mes de su nacimiento, y este me debe de decir, a que signo zodiacal pertenece.

2. Ecuacin, El usuario debe de ingresar tres nmeros cualquiera, el programa me debe de mostrar las dos soluciones.

X1 = ( -b+ d ) / ( 2 *a ) X2 = ( -b- d ) / ( 2 *a )

3. Fraccin, El usuario debe de ingresar el numerado y el denominador y nos deber de mostrar la fraccin simplificada.

4. Notas, El usuario debe de ingresar su promedio obtenido y este nos mostrara un mensaje dependiendo del rango de las notas

Promedio

Mensaje

0a5 6 a 10 11 a 15 16 a 20

Psimo Deficiente Regular Bueno

5. Hora, dada la hora del da en horas, minutos y segundos encuentre la hora del siguiente segundo. Por ejemplo: si son las 10:58:40 nos deber de mostrar lo siguiente: 10:58:41.

6. Sueldo, Si el sueldo de un empleado es 1000 o menos se le descuenta el 10 %, si esta entre 1000 y 2000 el % % sobre el adicional, y si esta arriba de 2000, el 3 % sobre el adicional, Elabore un programa que lea el sueldo y muestre el salario neto y el impuesto.

7. Signo, Elabore un programa que lea un nmero y obtenga el signo, su parte entera y su parte fraccionaria.

8. Algoritmo, Elabore un programa que muestre un algoritmo que nos permita evaluar la funcin:

g(x)

Log(x-8) 2x-log(x) x+sen(x)

Si Si Si

x>8 0 < x <= 8 x <= 0

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

9. Triangulo, Elabore un programa que pida tres longitudes, y compruebe si pueden formar un triangulo y luego clasifique el triangulo segn los lados. Para saber si forman un triangulo deber de cumplir lo siguiente: LadoA<LadoB+LadoC y LadoB<LadoA+LadoC y LadoC<LadoB+LadoA.

10. Mayor, Elaborar un programa que lea tres nmero e indique cual es el mayor.

11. Expresin, Elaborar un programa, que lea un valor x y encuentre el valor numrico de la siguiente expresin: y = (x-3)/(x2-25).

12. Mltiplo, Elabore un programa que lea tres nmeros (n y d1, d2) y determine si n es mltiplo de d1 y de d2.

13. Bisiesto, Elaborar un programa que lea un ao y este nos indique si el ao es bisiesto, tomar en cuenta que un ao bisiesto es aquel ao que tiene 366 das y adems es mltiplo de 4, pero no mltiplo de 100 pero si de 400.

14. Ordenar, Elabora un programa que ordene de mayor a menor 3 nmeros ingresados por el teclado.

15. Ecuacin, Elabore un programa que resuelva una ecuacin de primer grado, teniendo en cuenta que debe de ingresar un coeficiente (a) y un termino independiente (b). x = -b/a.

16. Producto, Elabore un programa que lea dos nmeros, si los dos nmeros son positivos calcule su producto, en caso contrario calcule su suma.

17. Menor, Elaborar un programa que sin usar estructuras repetitivas, lea 5 nmeros y determine el menor.

18. Ordenados, Elaborar un programa que lea 5 nmeros y diga si estn ordenados ascendentemente.

19. rea, Elabora un programa que lea tres nmeros a, b, c y determine si pueden formar un triangulo comprobando que p>a, p>b y p>c donde p es el semiperimetro y equivale a: p=(a+b+c)/2. Luego calcule el rea del triangulo usando la frmula de Hern: A = p(p-a)(p-b)(p-c).

20.Funcin, Elabore un programa que nos permita evaluar la funcin:

f(x)

X2+1 x2+3x+2 x+1

Si Si Si

x <= 8 0<x<3 x >= 3

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo V Programando con Visual Basic 2005

Bueno seores con esto acaba la Tercera entrega de este manual, se que ha sido muy poco, pero les estoy dejando 20 pequeo ejercicios para que practiquen, mientras tanto yo seguir elaborando la cuarta entrega, en donde tocaremos lo siguiente: Arreglos Funciones Polimorfismo

Dependiendo si nos alcanza tiempo voy a ver si puedo hacer unos cuantos ejercicios sobre clases y punteros, para dar por finalizado los programas en Consolas de Aplicacin y comenzar a programar en Ventanas de Aplicacin, as que traten de resolver los ejercicios, que todo lo que hemos tocado ac lo aplican en estos ejercicios, no hay nada nuevo, pero igual les estar entregando las soluciones en la siguiente entrega, okis, bueno conmigo ser hasta la prxima entrega, ya saben aqu les dejo mi correo por si tienen alguna duda.

Joel Martin Chuco Marrufo Visual_Basic_Net_2005@hotmail.com

Donaciones a la cuenta de Ahorros del Banco de Interbank del Per


Cuenta en Soles:

067-3008573552 Cuenta en Dlares:

067-3008573560

www.interbank.com.pe

Este Manual Solo lo Puedes Descargar por la Pgina Oficial.

www.lawebdelprogramador.com

Lima, 17 de enero del 2006

Joel Martin Chuco Marrufo 16