Está en la página 1de 38

Capitulo IV

INDICE

CAPITULO IV

Funciones de Conversin
Smbolos de Comparacin
Operadores

01
02
02

And

02

AndAlso

02

Or

03

Xor

03

OrElse

05

Not

05

Is

05

To

06

Funcin Fecha

06

Now

06

Date

06

Year

06

Month

06

Day

06

WeekDay

06

DateAdd

07

DateDiff

07

DatePart

07

Instruccin Condicional

07

Solucin del Ejercicio 09

10

Solucin del Ejercicio 10

11

Solucin del Ejercicio 11

11

Solucin del Ejercicio 12

12

Solucin del Ejercicio 13

13

Condiciones Mltiples

14

Solucin del Ejercicio 14

15

Solucin del Ejercicio 15

16

Solucin del Ejercicio 16

16

Solucin del Ejercicio 17

17

Solucin del Ejercicio 18

17

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

01

For / Next

02

For Each

02

Solucin del Ejercicio 19

02

Solucin del Ejercicio 20

03

Solucin del Ejercicio 21

03

Solucin del Ejercicio 22

04

Funcin Reset

04

Funcin Exit

04

Solucin del Ejercicio 23

05

Estructuras repetitivas

06

While / End While

06

Do / Loop

06

Solucin del Ejercicio 24

08

Solucin del Ejercicio 25

08

Solucin del Ejercicio 26

09

Solucin del Ejercicio 27

10

Solucin del Ejercicio 28

11

Solucin del Ejercicio 29

12

Solucin Del Problema Propuesto


Solucin del Problema A

13
13

Ejercicios

14

Despedida

16

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

También podría gustarte