Vous êtes sur la page 1sur 324

Capitulo I

INDICE

CAPITULO I

Lenguaje de Programacin Qu es Lenguaje de Programacin? Algoritmos Pseudocdigo Lectura Estructura Escritura Ejercicio N 1 Ejercicio N 2 Ejercicio N 3 Ejercicio N 4 Ejercicio N 5 Ejercicio N 6 Ejercicio N 7 Ejercicio N 8 Instruccin Condicional Operadores Relacionales o Comparativas Ejercicio N 9 Ejercicio N 10 Ejercicio N 11 Ejercicio N 12 Ejercicio N 13 Condiciones Mltiples Ejercicio N 14 Ejercicio N 15 Ejercicio N 16 Ejercicio N 17 Ejercicio N 18

01 01 01 02 02 02 02 03 04 05 06 07 07 08 08 10 11 11 12 13 14 15 16 17 19 20 21 22

Procesos Repetitivos Ejercicio N 19 Ejercicio N 20 Ejercicio N 21 Ejercicio N 22 Ejercicio N 23 Estructuras Repetitivas Ejercicio N 24 Ejercicio N 25 Ejercicio N 26 Tipos de Datos Ejercicio N 27 Ejercicio N 28 Ejercicio N 29 Diagrama de Flujo Ejercicio N 30 Ejercicio N 31 Ejercicio N 32 Ejercicio N 33 Despedida

23 23 24 25 25 27 28 28 29 30 31 31 32 33 35 36 36 38 39 40

Materiales Didcticos

! ! ! ! !

Microsoft Visual Basic .Net 2005 (Ingles o Espaol) Windows XP Service Pack 2 Windows 2003 Server Microsoft SQL Server 2005 Framework 2

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Lenguaje de Programacin

Qu es Lenguaje de Programacin? En informtica, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qu es y qu no es un lenguaje de programacin. Se asume generalmente que la traduccin de las instrucciones a un cdigo que comprende la computadora debe ser completamente sistemtica. Normalmente es la computadora la que realiza la traduccin. Los lenguajes de programacin permiten comunicarse con los ordenadores o computadoras. Una vez identificada una tarea, el programador debe traducirla o codificarla a una lista de instrucciones que la computadora entienda. Un programa informtico para determinada tarea puede escribirse en varios lenguajes. Segn la funcin, el programador puede optar por el lenguaje que implique el programa menos complicado. Tambin es importante que el programador elija el lenguaje ms flexible y ms ampliamente compatible para el caso de que el programa tenga varias aplicaciones.

Algoritmos: Son representaciones, estos pueden ser: 1. Lenguaje Natural.- Es el lenguaje comn (coloquial). 2. Lenguaje Estructurado.- Es un lenguaje mas limitado que el anterior, con reglas de sintaxis y semntica definidas, esto quiere decir que consiste en crear programas con instrucciones agrupadas en un estricto orden secuencial, el cual es imprescindible conservar para la resolucin de un problema. a. Pseudocdigo; lenguaje universal para comunicarse entre programadores, esto quiere decir que es un conjunto de instrucciones en lenguaje natural, como el castellano o el ingles, de acuerdo a la persona que desarrollar un algoritmo basado en dicho lenguaje natural, en conclusin, es elaborar el algoritmo usando palabras y frases que se comprendan fcilmente. b. Cdigo; lenguaje orientado a un tipo de compilador especifico, para ser interpretado por el computador, en otras palabras es un conjunto de instrucciones que son parte de un lenguaje de programacin especifico que se escriben en orden secuencial y se almacenan en un archivo al que se denomina programa, cuando el programa es pequeo se le denomina mini-programa o con el nombre de macro (en ingles se le denomina Script). 3. Lenguaje Simblico.- Es una representacin que usa smbolos predefinidos para diagramar un algoritmo, con el fin de que sea fcil de seguir la lgica de la solucin que se desea expresar en forma de un flujo de pasos a realizar, indicando el inicio y el termino de los mismos a. Diagramas de flujo; b. Carta N-S;

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

PSEUDOCODIGO
Lectura ! ! ! Obtener un dato inicial Solicitar un dato inicial Requerir un dato de entrada

En otras palabras, lectura viene a ser la entrada de datos que nosotros vamos a requerir para poder hallar la solucin, por eso, para nosotros la Entrada va ser el sinnimo de Lectura. Se deduce a: Leer <Dato> (Dato de entrada)

Estructura ! ! Operar sobre el dato obteniendo nuevo valor Procesar los datos, obteniendo nuevo valor

En otras palabras, la estructura lo conoceremos como Instrucciones, esto quiere decir que las instrucciones son todos los procesos, clculos, comparaciones etc., que nosotros haremos para hallar la solucin. Se deduce a: <Nuevo Valor> <Expresin de Clculo>

Dato Transformado Se Asigna

Operacin Sobre Dato

Escritura ! ! ! Mostrar el resultado Visualizar el resultado Imprimir el valor resultante

Como la misma palabra lo dice, vamos a escribir o mejor dicho vamos a mostrar el resultado de las instrucciones hechas (operaciones). Se deduce: Escribir <Valor Resultante>

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Bueno ya vimos la parte de concepto, se que es poco aburrida, por no decir que bastante, pero es necesario, por que sino no me entenderan lo que hago, para terminar de entender vamos a resolver alguno ejemplos, que a su tiempo lo llevaremos a un cdigo de algn programa, todava no se si usar el Visual Sharp C# o la consola de aplicacin del Visual Basic, ya ver con cual es mas fcil para que entiendan.

Ejercicios

1. Se desea calcular la distancia recorrida (m) por un mvil que tiene velocidad constante (m/s) durante un tiempo T (Sg), considerar que es un MRU (Movimiento Rectilneo Uniforme)

Solucin:

DATOS Identificadores Salida Distancia Recorrida (m) Entrada Velocidad Constante (m/s) Tiempo (Sg) V T D

Inicio Leer V Leer T D=V*T Escribir D Fin

Sencillo el algoritmo no?, bueno no se preocupen si no lo han entendido, les voy a explicar: Qu son Identificadores?, los identificadores, variables que van a tomar el valor que se le asigne, para poder hallar la solucin. Qu son Variables?, las variables son mayormente letras, es como si dijramos que son comodines en un juego de cartas, como ustedes saben un comodn en un juego de cartas, puede tomar el valor que uno le asigne, como por ejemplo, puede tomar el valor de dos trbol, cinco de corazones, tres de diamantes, etc. El valor que tu le quieras dar, es por eso que los datos de entrada, van a hacer ledos por los identificadores de V (velocidad constante) y T (tiempo), en realidad pueden poner cualquier letra que ustedes deseen, pero yo les asigno esas letras para que lo entiendan mucho mejor, ahora veamos otro ejemplo para que lo tengan mas en claro.

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

2. Se necesita obtener el promedio simple de un estudiante a partir de sus tres notas parciales.

Solucin:

DATOS Identificadores Salida Promedio Entrada Primera Nota Parcial Segunda Nota Parcial Tercera Nota Parcial N1 N2 N3 P

Inicio Leer N1 Leer N2 Leer N3 P = (N1 + N2 + N3)/3 Escribir P Fin

Que tal les pareci fcil?, bueno haber les explico un poco, como ustedes saben el promedio simple de cualquier dato, se halla, sumando todos los dato y de ah dividiendo entre el numero de datos sumados, por ejemplo, les vamos a asignar valores a los identificadores ok. N1 = 14 N2 = 13 N3 = 15 P = (14 + 13 + 15) / 3 Entonces P (Promedio) tomara el valor de 14

Llegaron a entender, les recomiendo volver a leerlo si no lo han entendi, por que mas adelante les voy a dejar unos pequeos problemas para que ustedes lo resuelvan ok, ahora sigamos con los ejemplos.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

3. Elaborar un algoritmo que solicite el nmero de respuestas correctas, incorrectas y en blanco, correspondientes a postulantes, y muestre su puntaje final considerando, que por cada respuesta correcta tendr 4 puntos, respuestas incorrectas tendr -1 y respuestas en blanco tendr 0.

Solucin:

DATOS Identificadores Salida Puntaje Final Entrada Nmero de Respuestas Correctas Nmero de Respuestas Incorrectas Nmero de Respuestas en Blanco Intermedio Puntaje de Respuestas Correctas Puntaje de Respuestas Incorrectas PRC PRI RC RI RB PF

Inicio Leer RC Leer RI Leer RB PRC = RC * 4 PRI = RI * -1 PF = PRC + PRI Escribir PF Fin

Seguro se estarn diciendo que no les haba dicho de los datos intermedios, bueno tienen razn y no es por lo que se me haya pasado, sino que tenia que explicarles con un ejemplo, buenotes explico, la parte Intermedio, aqu van todos los identificadores que solo vamos a almacenar algn valor temporalmente. Como lo es de asignarles los puntos de las respuestas correctas e incorrectas, no puse ningn intermedio para las respuestas en blanco ya que solo estas tiene un valor nulo sea cero, y para terminar con esta explicacin, aqu en el pseudocodigo existe una regla, la regla es que solo se van a usar los identificadores que definimos en la parte de datos, ya que si no lo defines, en un futuro cuando pasemos a programar en un procesador, este te botara un error. As que aprendan a definir todos los identificadores que van a usar para resolver un algoritmo.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

4. Elaborar un algoritmo que permita ingresar el nmero de partidos ganados, perdidos y empatados, por Universitario de Deportes en el torneo de apertura, se debe de mostrar su puntaje total, teniendo en cuenta que por cada partido ganado obtendr 3 puntos, empatado 1 punto y perdido 0 puntos.

Solucin:

DATOS Identificadores Salida Puntaje Total Entrada Nmero de Partidos Ganados Nmero de Partidos Empatados Nmero de Partidos Perdidos Intermedio Puntaje de Partidos Ganados Puntaje de Partidos Empatados PPG PPE PG PE PP PT

Inicio Leer PG Leer PE Leer PP PPG = PG * 3 PPE = PE * 1 PT = PPG + PPE Escribir PT Fin

Se me olvidaba, creo que no les dije los operadores del pseudocodigo, estos son los siguientes: + * / ^ Suma Resta Multiplicacin Divisin Potencia

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

5. Se requiere el algoritmo para elaborar la planilla de un empleado. Para ello se dispone de sus horas laboradas en el mes, as como de la tarifa por hora.

Solucin:

DATOS Identificadores Salida Planilla Entrada Nmero de Horas Laboradas en el mes Tarifa por Hora HL TH P

Inicio Leer HL Leer TH P = HL * TH Escribir P Fin

6. Elabore un algoritmo que lea los 3 lados de un triangulo cualquiera y calcule su rea, considerar: Si A, B y C son los lados, y S el semipermetro.

A=

S * (S A) * (S B) * (S C)

Solucin:

DATOS Identificadores Salida rea del Triangulo Entrada Longitud del Lado A Longitud del Lado B Longitud del Lado C Intermedio Longitud del Semipermetro LS LA LB LC AT

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Inicio Leer LA Leer LB Leer LC LS = (LA + LB + LC)/2 AT = [LS * (LS LA) * (LS LB) * (LS LC)] ^ 0.5 Escribir AT Fin

7. Elaborar un algoritmo que permita calcular el nmero de micro discos 3 necesarios para hacer una copia de seguridad, de la informacin almacenada en un disco cuya capacidad se conoce. Considerar que el disco duro esta lleno de informacin, adems expresado en gigabyte. Un micro disco tiene 1.44 megabyte y una gigabyte es igual a 1,024 megabyte.

Solucin:

DATOS Identificadores Salida Nmero de Micro Disco 3 Entrada Nmero de Gigabyte del Disco Duro Intermedio Nmero de Megabyte del Disco Duro MG GB MD

Inicio Leer GB MG = GB * 1,024 MD = MG / 1.44 Escribir MD Fin

8. Se tiene los puntos A y B en el cuadrante positivo del plano cartesiano, elabore el algoritmo que permite obtener la distancia entre A y B.

A B C I S A

B ORDENADA

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Solucin:

DATOS Identificadores Salida Distancia Entrada Abcisa de A Abcisa B Ordenada A Ordenada B AA AB OA OB D

Inicio Leer AA Leer AB Leer OA Leer OB D = [(AB AA) ^ 2 + (OB OA) ^ 2] ^ 0.5 Escribir D Fin

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

INSTRUCCIN CONDICIONAL

Se emplea cuando es necesario representar una decisin, en base a la cual se realizan acciones excluyentes entre si.

SI <expresin condicional (lgica booleana)> ENTONCES Instruccin Verdadera (V) SINO Instruccin Falsa (F) FIN_SI

Las acciones se representan como instruccin V (cuando es verdadera), instruccin F (cuando es falsa), despus que las acciones se realizan, en algoritmo continua su secuencia, pues la condicin a terminado (FIN_SI) ejemplo:

Se considera que A y B son nmero diferentes

SI (A > B) ENTONCES Escribir El Mayor es A SINO Escribir El Mayor es B FIN_SI

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Operadores relacionales o comparativas:

> < >= <= <> =

Mayor Menor Mayor Igual Menor Igual Diferente Igual

EJERCICIOS

9. Elabora un algoritmo que permita averiguar si una persona debe de inscribirse para el SMO (Servicio Militar Obligatorio), sabiendo su ao de nacimiento.

Solucin:

DATOS Identificadores Entrada Ao de Nacimiento Ao de Actual Intermedio Edad E AN AA

Inicio Leer AN Leer AA E = AA - AN SI (E > 17) ENTONCES Escribir Debe de Inscribirse en el SMO SINO Escribir No debe de Inscribirse en el SMO FIN_SI Fin

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

10. Elabora un algoritmo que solicite la edad de 2 hermanos y muestre un mensaje indicando la edad del mayor y cuantos aos de diferencia tiene con el menor.

Solucin:

DATOS Identificadores Entrada Edad del Primer Hermano Edad del Segundo Hermano Intermedio Diferencia de Edades DE E1 E2

Inicio Leer E1 Leer E2 SI (E1 > E2) ENTONCES Escribir El Primer Hermano es el Mayor, por DE = E1 E2 SINO Escribir El segundo Hermano es el Mayor por DE = E2 E1 FIN_SI Escribir DE Fin

Como se habrn dado cuenta, no es tan difcil lo de instrucciones condicionales no?, como ustedes ven para iniciar y encerrar un SI, lo hacemos mediante unas lneas que indica de donde a donde va la funcin SI, esto nos quiere decir que podemos tener una instruccin condicional Si dentro de otra instruccin condicional SI, me entienden?, bueno para que lo entiendan mejor lo vern en el ejercicio 12, y si se han dado cuenta que para mostrar un mensaje no es necesario declarar un identificador que va a contener el mensaje, mas fcil nos seria mostrar el mensaje directamente, ya que se trata de una cadena, o mejor dicho de un texto. Para que lo entiendan mejor, el siguiente ejercicio lo haremos mostrando el mensaje mediante un identificador declarado okis.

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

11. Se tiene registrado la produccin (unidades) logradas por un operario a lo largo de la semana (lunes a sbado). Elabore un algoritmo que nos muestre o nos diga si el operario recibir incentivos sabiendo que el promedio de produccin mnima es de 100 unidades.

Solucin:

DATOS Identificadores Entrada Produccin Produccin Produccin Produccin Produccin Produccin Intermedio Produccin Total Produccin Promedia Salida Mensaje MSG PT PP del del del del del del da da da da da da Lunes Martes Mircoles Jueves Vienes Sbado PL PMa PMi PJ PV PS

Inicio Leer PL Leer PMa Leer PMi Leer PJ Leer PV Leer PS PT = (PL + PMa + PMi + PJ + PV + PS) PP = PT / 6 SI (PP >= 100) ENTONCES MSG = Recibir Incentivos SINO MSG = No Recibir Incentivos FIN_SI Escribir MSG Fin

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

12. Elabora un algoritmo para leer 3 nmeros enteros diferentes entre si, y determinar el nmero mayor de los tres.

Solucin:

DATOS Identificadores Entrada Primer Nmero Entero Segundo Nmero Entero Tercer Nmero Entero Salida Nmero Mayor NM N1 N2 N3

Inicio Leer N1 Leer N2 Leer N3 SI (N1 > N2) y (N1 > N3) ENTONCES NM = N1 SINO SI (N2 > N3) ENTONCES NM = N2 SINO NM = N3 FIN_SI FIN_SI Escribir NM Fin

Seguro que viendo este ejercicio ya han entendido que se puede tener a una instruccin condicional dentro de otra, esto se llama, instrucciones anidadas, pero hay una regla para hacer estas instrucciones anidadas, la regla es que para cada Si que usen debe haber un FIN_SI, pero estas a la vez pueden tener un SINO o no, depende como lo usen, por ejemplo, para hacer un instruccin anidada tenemos que tener obligado un SINO en el SI general me entienden, porque si este no tendra un SINO, nunca podramos validar la comparacin que hagamos en el segundo SI, que tenemos adentro del primer SI, me entienden?, bueno creo que esto lo vana tener mas en claro cuando ya lo llevemos al compilador. Mientras tanto sigamos haciendo unos cuantos ejercicios.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

13. Elabora un algoritmo que sirva para identificar el tipo de triangulo conociendo sus tres lados.

Solucin:

DATOS Identificadores Entrada Primer Lado Segundo Lado Tercer Lado Salida Tipo de Triangulo TT L1 L2 L3

Inicio Leer L1 Leer L2 Leer L3 SI (L1 <> L2) y (L2 <> L3) y (L3 <> L1) ENTONCES TT = Escaleno SINO SI (L1 = L2) y (L2 = L3) ENTONCES TT = Equiltero SINO TT = Issceles FIN_SI FIN_SI Escribir TT Fin

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

CONDICIONES MULTIPLES

Cuando en un algoritmo se llega a un punto de realizacin de varias opciones, nos vemos obligados a usar condiciones mltiples, por que nos seria mas fcil de realizar la lgica, aunque tambin resulta hacerlo con la Instruccin condicional SI, pero este se nos hara muy tedioso, ya que tendramos que hacer varias instrucciones ya sean independientes o anidadas.

EN CASO (Expresin_Valor) Sea CASO Valor 1 Instruccin 1 CASO Valor 2 Instruccin 2 CASO Valor 3 Instruccin 3 CASO Valor 4 Instruccin 4 . . . CASO Valor n Instruccin n OTRO CASO Instruccin x [Opcional (Cuando seleccionado se realizar la instruccin imperativa)] FIN_CASO ningn valor

Al poner mas CASO la maquina no ser eficiente, para esto se utilizara otras estructuras, que mas adelante lo veremos, la mayora de uso de esta condicin mltiple se hace para nmeros. Para que lo entiendan mejor de cmo funciona veremos de cmo funciona esta condicin mltiple y despus veremos algunos ejercicios okis.

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Compara

Verdadero

Expresin

Valor 1
Falso Compara Verdadero

Hacer Instruccin

FIN_CASO

Valor 2
Falso Compara Verdadero

Hacer Instruccin

FIN_CASO

Valor 3
Falso Compara Verdadero

Hacer Instruccin

FIN_CASO

Valor 4
Falso Compara Verdadero

Hacer Instruccin

FIN_CASO

Valor 5

Hacer Instruccin

FIN_CASO

Falso

Compara

Verdadero

Valor n

Hacer Instruccin

FIN_CASO

EJERCICIOS

14. Elabore un algoritmo que permita ingresar un nmero entero (1 a 10), y muestre su equivalente en romano.

Solucin:

DATOS Identificadores Entrada Nmero Entero (1 a 10) Salida Equivalente en Romano ER NE

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005


Inicio Leer NE EN CASO NE SEA CASO 1 ER CASO 2 ER CASO 3 ER CASO 4 ER CASO 5 ER CASO 6 ER CASO 7 ER CASO 8 ER CASO 9 ER CASO 10 ER FIN_CASO Escribir ER Fin

= I = II = III = IV = V = VI = VII = VIII = IX = X

Empecemos con la explicacin, aunque si ustedes tiene lgica, ya lo habrn entendido, pero igual les voy a explicar, lo que hace este algoritmo es solicitar el ingreso de un nmero entero que este en el rango del 1 10, y este lo reemplaza por su equivalente romano, por ejemplo: si el usuario ingresa un nmero 4 este se ira a la expresin de las condiciones mltiples, y mas o menos lo que hara el compilador es lo siguiente, en case del que el numero ingresado sea, en caso sea 1, la respuesta seria falsa, entonces pasara a la siguiente condicin, en caso sea 2, la respuesta seria tambin falsa, y pasara a la siguiente condicin, en caso sea 3, la respuesta seria otra vez falsa, y pasara a l a siguiente condicin, en caso sea 4, la respuesta seria verdadero, y hara la instruccin de asignarle el nmero IV en romanos al identificador ER, y luego pasara a dar fin a las condiciones mltiples, ya que encontr una condicin verdadera y pasara a escribir la respuesta ER, en caso de no encontrarla, el algoritmo dara una respuesta en blanco. Entendieron la explicacin?, bueno no les exijo que lo tengan todo en claro ahora mismo, solo que tengan una lgica coherente y que tengan muchas ganas de aprender, por que lo terminaran de entender cuando pasemos a diagramas de flujo y luego a codificar en Visual Basic 2005, y adems ya lo decid, vamos a resolver unos cuantos ejercicios en las plantillas de Aplicacin Para Consola, y despus haremos en la plantilla de Aplicacin para Windows, as que no se impacienten, por que nos falta todava mucho por aprender.

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

15. Elabore un algoritmo que permita ingresar el monto de venta alcanzado por un promotor durante el mes, luego de calcular la bonificacin que le corresponde sabiendo:

Monto 0 1000 1000 5000 5000 20000 20000 a ms

Bonificacin (%) 0 3 5 8

Solucin:

DATOS Identificadores Entrada Monto de Venta Salida Total de Bonificacin TB MV

Inicio Leer MV EN CASO MV SEA CASO MV >= 0 y MV < 1000 TB = (0 * MV) / 100 CASO MV >= 1000 y MV < 5000 TB = (3 * MV) / 100 CASO MV >= 5000 y MV < 20000 TB = (5 * MV) / 100 CASO MV >= 20000 TB = (8 * MV) / 100 FIN_CASO Escribir TB Fin

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

16. Elabore un algoritmo que solicite un nmero entero y muestre un mensaje indicando la vocal correspondiente, considerando que la vocal A = 1.

Solucin:

DATOS Identificadores Entrada Nmero Entero Salida Vocal V NE

Inicio Leer NE EN CASO NE SEA CASO 1 V = A CASO 2 V = E CASO 3 V = I CASO 4 V = O CASO 5 V = U OTRO CASO V = Valor Incorrecto FIN_CASO Escribir V Fin

Lo nico nuevo de este pseudocdigo es la condicin de OTRO CASO, esta condicin se usa para asignarle un valor en caso que el dato que se ingresa no tenga una respuesta, por ejemplo, si el usuario ingresa un nmero 3, este le dar una respuesta de I, pero si ingresa un nmero que no esta en el rango del 1 al 5, este le dar una respuesta de Valor Incorrecto.

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

17. Se desea leer un nmero entero de 2 cifras y que se muestre el nmero de unidades, decenas que lo componen.

Solucin:

DATOS Identificadores Salida Nmero de Decenas Nmero de Unidades Entrada Nmero Entero de 2 Dgitos Intermedio Cociente Entero Residuo Q R NE D U

Inicio Leer NE Q = NE / 10 R = NE (10 * Q) D=Q U=R Escribir D Escribir U Fin

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

18. Elabore un algoritmo que solicite un nmero entero y diferente a cero, e indique si es par.

Solucin:

DATOS Identificadores Entrada Nmero Entero Intermedio Cociente Entero Residuo Salida Mensaje MSG Q R NE

Inicio Leer NE Q = NE / 2 R = NE (Q * 2) SI (R = 0) ENTONCES MSG = Es Par SINO MSG = Es Impar FIN_SI Escribir MSG Fin

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

PROCESOS REPETITIVOS
Aquellas que se desarrollan en forma repetitiva un nmero determinado de veces. Procesos Cclicos Finitos; Se conoce el nmero de repeticiones a realizar, se controlan definiendo un intervalo para un contador de ciclos.

PARA <Contador> Instruccin FIN_PARA

<Valor Inicial> A <Valor Final>

19. Elabore un algoritmo que contenga los nmero pares del 1 al 10

Solucin:

DATOS Identificadores Intermedio Contador Salida Nmero N K

Inicio N=2 Escribir N PARA K = 1 A 4 N=N+2 Escribir N FIN_PARA Fin

N 2 4 6 8 10

K Nmero ya Mostrado 1 2 3 4

El orden de las instrucciones genera casos diferentes.

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

20. Elaborar un algoritmo que permita mostrar el sueldo promedio de un grupo de empleados.

Solucin:

DATOS Identificadores Entrada Sueldo del Empleado Nmero de Empleados Intermedio Contador Suma de Sueldos Salida Sueldo Promedio SP K SS SE NE

Inicio Leer NE SS = 0 PARA K = 1 A NE Leer SE SS = SS + SE FIN_PARA SP = SS / NE Escribir SP Fin

Que les parece esto de Procesos Repetitivos, seguro que fcil, les explico un poco lo que hace este algoritmo, primero tenemos que saber cuantos sueldos de empleados van a ingresar, es por eso que le pedimos ingresar el numero de empleados (NE), despus teniendo el nmero de empleados empezamos a pedir el monto de sueldo de cada empleado (SE), y cada vez que ingrese un nuevo sueldo, lo sumaremos con los sueldos anteriores que hayan ingresado, hasta llegar el numero indicado de empleados, y al final lo dividimos la suma de todos los sueldos de todos los empleados (SS) entre en nmero de empleado (NE), y obtendremos al fin el promedio de sueldos del numero de empleados que haya ingresado el usuario (SP), por ejemplo, el usuario ingresa el nmero de empleados que va ingresar el sueldo de estos, supongamos que sea 10 empleados (NE), lo que hace el algoritmo es iniciar la suma de sueldos en valor nulo o mejor dicho cero (SS = 0) y luego har la contabilizacin, mejor dicho el usuario va a tener que ingresar 10 sueldos de 10 empleados, y este a la ves se irn sumando (SS = SS + SE), despus de ingresar todos los sueldo, se seguir a calcular el promedio de sueldos( SP = SS / NE), que va a ser la suma de sueldos (SS) dividido entre 10.

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

21. Elaborar un algoritmo que solicite la edad de 200 personas, y que muestre cuantos son mayores y menores de edad hay.

Solucin:

DATOS Identificadores Entrada Edad de Persona Salida Mayores Menores Intermedio Contador K MAY MEN EP

Inicio MEN = 0 MAY = 0 PARA K = 1 A 200 Leer EP SI EP < 18 ENTONCES MEN = MEN + 1 SINO MAY = MAY + 1 FIN_SI FIN_PARA Escribir MAY Escribir MEN Fin

22. Elaborar un algoritmo que solicite 2 nmero enteros y muestre su producto por el mtodo de sumas sucesivas.

Solucin:

DATOS Identificadores Entrada Primer Nmero Segundo Nmero Intermedio Contador Salida Producto P K PN SN

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Inicio Leer PN Leer SN P=0 PARA K = 1 A SN P = P + PN FIN_PARA Escribir P Fin

Antes de seguir con el siguiente ejercicio, veremos algo muy interesante.

PARA <Contador> Instruccin

<Valor Inicial> A <Valor Final>

Reiniciar Ciclo (Suspende las Instrucciones siguiente del bucle y Avanza a la nueva repeticin) Instruccin Terminar Ciclo (Termina las instrucciones sin regresar al siguiente Bucle) Instruccin FIN_PARA

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

23. Elaborar un algoritmo que muestre 10 nmeros enteros a partir de 1 excepto los pares.

Solucin:

DATOS Identificadores Intermedio Cociente Residuo Contador Q R K

Inicio PARA K = 1 A 10 Q=k/2 R = k (Q * 2) SI (R = 0) ENTONCES Reiniciar Ciclo SINO Escribir N FIN_SI FIN_PARA Fin

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

ESTRUCTURAS REPETITIVAS
Cuando no se conoce el nmero de ciclo a realizar. Se debe prever que las expresiones lgicas llegue a ser falsa en algn momento, sino este llegara a formar un LOOP (Proceso repetitivo infinito que nunca termina, se da cuando la expresin lgica de control nunca llega a ser falsa)

MIENTRAS <Condicin Lgica> Instruccin FIN_MIENTRAS

MIENTRAS <Condicin Lgica> Instruccin Reiniciar Ciclo (Suspende las Instrucciones siguiente del bucle y Avanza a la nueva repeticin) Instruccin Terminar Ciclo (Termina las instrucciones sin regresar al siguiente Bucle) Instruccin FIN_MIENTRAS

Las instrucciones se realizan, siempre y cuando la lgica sea verdadera, en caso contrario, por no decir si llega a ser falsa, esta dar por terminado el algoritmo o mejor dicho el programa.

24. Elabore un algoritmo que muestre los trminos de la serie que sean menores a 1000.

1, 2, 5, 26

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005


Solucin: DATOS Identificadores Intermedio Serie S

Inicio MIENTRAS (S < 1000) Escribir S S = (S ^ 2)+ 1 FIN_MIENTRAS Fin

25. Elaborar un algoritmo que solicite ingresar letras hasta que este ingrese una vocal.

Solucin:

DATOS Identificadores Entrada Letras Salida Semforo (Bandera) SEMAF L

Inicio SEMAF = V MIENTRAS (SEMAF = V) Leer L EN CASO L SEA CASO A o a SEMAF = CASO E o e SEMAF = CASO I o i SEMAF = CASO O o o SEMAF = CASO U o u SEMAF = OTRO CASO SEMAF = FIN_CASO FIN_MIENTRAS Fin

R R R R R V

Joel Martin Chuco Marrufo 29

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

26. Elabore un algoritmo que muestre los trminos de la serie Fibonacci que sean menores a 100000. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

Solucin: DATOS Identificadores Intermedio Primer Nmero Segundo Nmero Tercer Nmero A B C

Inicio A=0 B=1 C=A+B Escribir A Escribir B MIENTRAS (C < 100000) Escribir C A=B B=C C=A+B FIN_MIENTRAS Fin

Joel Martin Chuco Marrufo 30

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

TIPOS DE DATOS
A nivel de algoritmo, lo bsico es definir el tipo de dato, los siguientes tipos de datos son los siguientes:

! !

Numricos; Dgitos, cifras (Nmeros reales) Carcter; un smbolo que el computador puede reconoces (Letras, dgitos, signos de puntuacin, smbolos), representan un texto (no se utilizan en operaciones matemticas) Booleana; un valor lgico que puede ser verdadero (V) o falso (F).

27. 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 Potencia

Solucin:

DATOS Identificadores Entrada Primer Nmero Segundo Nmero Operador Salida Resultado R Numrico N1 N2 OP Numrico Numrico Carcter Tipo de Dato

Joel Martin Chuco Marrufo 31

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Inicio Leer N1 Leer N2 Leer OP EN CASO OP SEA CASO + R = N1 CASO - R = N1 CASO * R = N1 CASO ^ R = N1 OTRO CASO R=0 FIN_CASO Escribir R Fin

+ N2 N2 * N2 ^ N2

28. Elaborar un algoritmo que permita ingresar 10 letras cualquiera, y luego nos indique al final cuantas vocales y consonantes se ingresaron.

Solucin:

DATOS Identificadores Entrada Letra Intermedio Contador Salida Numero de Vocales Nmero de Consonantes NV NC Numrico Numrico K Numrico L Carcter Tipo de Dato

Joel Martin Chuco Marrufo 32

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Inicio NV = 0 NC = 0 PARA K = 1 A 10 Leer L EN CASO L SEA CASO A o a NV = NV CASO E o e NV = NV CASO I o i NV = NV CASO O o o NV = NV CASO U o u NV = NV OTRO CASO NC = NC FIN_CASO FIN_PARA Fin

+1 +1 +1 +1 +1 +1

29. Elaborar un algoritmo para 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.

Solucin:

DATOS Identificadores Entrada Voto del Elector Intermedio Contador Candidato 1 Candidato 2 Candidato 3 Voto Nulo o Blanco Salida Ganador G Numrico K C1 C2 C3 C0 Numrico Numrico Numrico Numrico Numrico VE Numrico Tipo de Dato

Joel Martin Chuco Marrufo 33

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Inicio C1 = 0 C2 = 0 C3 = 0 C0 = 0 PARA K = 1 A 60 Leer VE EN CASO VE SEA CASO 1 C1 = C1 + 1 CASO 2 C2 = C2 + 1 CASO 3 C3 = C3 + 1 OTRO CASO C0 = C0 + 1 FIN_CASO FIN_PARA SI (C1 > C2) y (C1 > C3) y (C1 > C0) ENTONCES G = C1 SINO SI (C2 > C3) y (C2 > C0) ENTONCES G = C2 SINO SI (C3 > C0) ENTONCES G = C3 SINO G = C0 FIN_SI FIN_SI FIN_SI Escribir G Fin

Joel Martin Chuco Marrufo 34

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

DIAGRAMA DE FLUJO

Representacin simblica de algoritmos.

Smbolo

Descripcin

Terminal: Indica el inicio o fin del algoritmo Asignacin (procesos o instrucciones que realizar el algoritmo)

Lectura (ingreso de datos)

Escritura (Muestra los resultados o el mensaje deseado por el programador) Condicin Simple (SI), Condicin Mltiple (EN CASO)

Repeticin Finitas (PARA y MIENTRAS) Termino: Indica el termino de una repeticin finita (PARA y MIENTRAS)

Flechas de direccin

Conectores

Joel Martin Chuco Marrufo 35

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

30. Elaborara un algoritmo que solicite 2 nmeros y muestre el promedio de ambos.

31. Elaborara un algoritmo que solicite 3 nmeros enteros y muestre un mensaje indicando si forma una Terna Pitagrica.

Joel Martin Chuco Marrufo 36

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Joel Martin Chuco Marrufo 37

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

32. Elabora un algoritmo que solicite un nmero entero y muestre el nombre del mes correspondiente. Ejemplo: Enero = 1.

Joel Martin Chuco Marrufo 38

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

33. Elabore un algoritmo que permita ingresar un nmero entero diferente a cero y muestre sus divisores.

Joel Martin Chuco Marrufo 39

Lenguaje de Programacin Capitulo I Programando con Visual Basic 2005

Bueno, ya llegamos al final de esta primera entrega, que se llama, Lenguaje de Programacin, Programando con Visual Basic .Net 2005, como se habrn dado cuenta, no es nada difcil, as que solo les recomiendo que repasen todos lo que les he explicado y hemos hecho en este primer capitulo, por ejemplo pueden hacer todos los diagramas de flujo de los ejercicios del 1 al 29, para que aprendan sobre diagramas de flujo, bueno en realidad a mi no me gusta el mtodo de solucin de algoritmos, que es mediante diagramas de flujo, prefiero el pseudocdigo, lo veo mas fcil de entender, bueno les voy adelantando lo que les tengo preparado para el segundo capitulo. ! ! ! ! ! Introduccin a Visual Studio .Net 2005 Framework .Net 2 Elementos de la Programacin Introduccin a la Programacin de la Aplicacin de Consola en VB 2005 Resolveremos los primeros 8 ejercicios que hemos hecho en pseudocdigo en este capitulo, y unos ejercicios nuevos, para que terminen de entender

Como se han dado cuenta es casi pura teora lo que tocaremos el siguiente capitulo, se que es tedioso la teora pero creedme que es necesario, y adems van a entender y a saber para que esta hecho este nuevo Visual Basic .Net 2005. As que ya nos veremos hasta la prxima entrega, si no pasa algn inconveniente lo estar publicando el da 17 de enero del prximo ao. As que Feliz Navidad y Un Prospero Ao Nuevo 2006, y no tomen mucho okis. Byes

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"

Lima, 26 de Diciembre de 2005

Joel Martin Chuco Marrufo 40

Capitulo II

INDICE

CAPITULO II

Microsoft .Net Microsoft .Net FrameWork La Plataforma Microsoft .Net El Marco .Net Los Bloques de Servicios .Net Visual Studio .Net Servidores Empresariales .Net Marco .Net Qu es el Marco .Net? Componentes del Marco .Net Common Language Runtime (CLR) Libreras de Clases del Marco .Net ADO .Net: Datos y XML ASP .Net: Formularios y Servicios Web Terminologa usada en el Marco .Net Visual Studio .Net 2005 Qu es el Visual Studio .Net? Ventajas de usar MS Visual Studio .Net Lenguajes de la Plataforma .Net Administracin de Ventanas Diseadores Herramientas de Bases de Datos Introduccin a Visual Basic .Net 2005 Lo nuevo en Visual Basic .Net 2005 Extensin de los ficheros de cdigo. Tipos de ejecutables.

01 01 02 02 02 02 02 03 03 03 03 04 04 04 04 05 05 05 05 05 05 06 07 07 07 08

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

MICROSOFT .NET
Microsoft.Net es una nueva tecnologa que responde a la necesidad de comunicacin total entre negocios de sistemas heterogneos y con gran capacidad de procesamiento. Microsoft .Net proporciona todas las herramientas y tecnologas para construir Aplicaciones Web Distribuidas usando protocolos Web estndares tales como HTTP (HiperText Transfer Protocol), XML (extensible Markup Lnguage) y SOAP (Simple Object Access Protocol). Las aplicaciones creadas en la plataforma :net podrn ser usadas por un gran nmero de clientes, tales como PC, PC de bolsillo (Palm PC), celulares digitales, PC de juegos (PC Games), PC de auto (Auto PC), PC Televisor (Ultimate TV), etc.

MICROSOFT .NET FRAMEWORK


Lo que se dice en el eBook Microsoft .NET Framework. ".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET"

Lo que dice el MSDN Library. "El .NET Framework es un entorno multi-lenguaje para la construccin, distribucin y ejecucin de Servicios Webs y aplicaciones." "El .NET Framework es una nueva plataforma diseada para simplificar el desarrollo de aplicaciones en el entorno distribuido de Internet." "El .NET Framework consta de dos componentes principales: el Common Language Runtime y la librera de clases .NET Framework."

El .NET Framework es el corazn de .NET, cualquier cosa que queramos hacer en cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes del .NET Framework.

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

LA PLATAFORMA MICROSOFT .NET


La plataforma Microsoft .NET es un conjunto de tecnologas diseadas para transformar el Internet, a que este sea completamente escalable. Esto proporciona nuevas formas de construir aplicaciones a partir de las colecciones de Servicios Web. La plataforma Microsoft .NET est compuesta por: ! ! ! ! El Marco .Net Los Bloques de Servicios .Net Visual Studio .Net Los Servidores Empresariales .Net

El Marco .Net Es la parte principal de la plataforma .Net. Esta formado por un compilador comn (CLR) y un conjunto de componentes utilizados por los lenguajes de Visual Studio .Net

Los Bloques de Servicios .Net Son un conjunto de servicios Web que permiten la integracin entre los usuarios y las aplicaciones clientes. Actualmente, Microsoft tiene construidos dos servicios. ! ! Microsoft Passport Microsoft Hailstorm

Visual Studio .Net Visual Studio .Net proporciona un entorno de desarrollo de alto nivel para construir aplicaciones basadas en el Marco .Net. Esta tecnologa permite simplificar la creacin, distribucin y evolucin continua de aplicaciones Windows, aplicaciones Web y servicios Web que sean seguras y escalables.

Servidores Empresariales .Net Estos servicios proporcionan escalabilidad, fiabilidad, administracin e integracin entre soluciones, entre los principales tenemos: ! ! ! ! ! ! ! ! Microsoft Microsoft Microsoft Microsoft Microsoft Microsoft Microsoft Microsoft Windows 2000 Server SQL Server 2000 Biz Talk Server 2000 Host Integration Exchange 2000 Enterprise Server Application Center 2000 Internet Security and Acceleration Server 2000 Commerce Server 2000

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

MARCO .Net
Qu es el Marco .Net? Es la parte central de la plataforma Microsoft .Net y consiste en un compilador comn llamado CLR (Comon Language Runtime).

Componentes del Marco .Net ! ! ! ! ! ASP .Net: Formularios Web Servicios Web Windows Form: Interfaz de usuario ADO .Net: Daros y XML Librera de clases del Marco .Net Lenguaje Comn en tiempo de ejecucin (CLR)

Common Language Runtime (CLR) Conocido como el lenguaje comn en tiempo de ejecucin. Es el Runtime comn que soportan todos los lenguajes del Marco .Net y que realiza la mayor parte de las funciones para que corran las aplicaciones .Net. Es el que se encarga de compilar y ejecutar una aplicacin. Principales tareas del CLR: ! ! ! ! ! Cargar las clases y administrar la metadata Convierte el lenguaje intermedio Microsoft a cdigo nativo Administra la ejecucin del cdigo Administra automticamente objetos Soporte de Thread, control de errores, etc.

En otras palabras: El Common Lenguage Runtime (CLR) es una serie de libreras dinmicas (DLLs), tambin llamadas assemblies, que hacen las veces de las DLLs del API de Windows as como las libreras runtime de Visual Basic o C++. Cualquier ejecutable depende de una forma u otra de una serie de libreras, ya sea en tiempo de ejecucin como a la hora de la compilacin. Pues el CLR es eso, una serie de libreras usadas en tiempo de ejecucin para que nuestros ejecutables o cualquiera basado en .NET puedan funcionar. Se acab eso de que existan dos tipos de ejecutables: los que son autosuficientes y no dependen de libreras externas o los que necesitan de libreras en tiempo de ejecucin para poder funcionar, tal es el caso de las versiones anteriores de Visual Basic. Por otro lado, la librera de clases de .NET Framework proporciona una jerarqua de clases orientadas a objeto disponibles para cualquiera de los lenguajes basados en .NET, incluido el Visual Basic. Tambin permite crear Threads o hilos o tramas de ejecucin y otras cosas que antes nos estaban vetadas

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

Libreras de Clases del Marco .Net Conjunto de clases comunes. Unifica los diferentes marcos existentes: APIs, MFC, WFC, VB y VBA. La clase base principal se llama System.

ADO .Net: Datos y XML ADO .Net proporciona soporte mejorado para el modelo de programacin desconectada. ADO .Net tambin proporciona un amplio soporte XML.

ASP .Net: Formularios y Servicios Web ASP .Net es un marco de programacin, incorporable en el CLR y puede construir aplicaciones Web potentes.

Terminologa usada en el Marco .Net

CTS: Sistema de Tipos Comn, tipos de datos y estructuras iguales en cualquier lenguaje. CLS: Especificacin en lenguaje comn, conjunto de normas que deben cumplir las DLLs. MSIL: Lenguaje intermedio de Microsoft, cdigo semicompilado independiente del CPU Datos y Cdigo Administrado: Cuando se utiliza caractersticas del Marco .Net. Assemblies: Un Assemblie es uno o mas archivos EXE y/o DLLs en que se distribuye una aplicacin. NameSpace: Un NameSpace es un nombre lgico donde se encuentra un componente.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

VISUAL STUDIO .NET 2005

Qu es el Visual Studio .Net? Visual Studio .Net es una herramienta rpida de desarrollo para crear aplicaciones usando el Marco .Net, CLR, la librera de clases, ADO .Net, ASP .Net, etc. Visual Studio .Net permite la integracin y el uso cruzado de los lenguajes de programacin .Net de Microsoft.

Ventajas de usar MS Visual Studio .Net ! ! ! Creacin de pginas Web mediante formularios Web. Creacin de Servicios Web XML

Lenguajes de la Plataforma .Net La plataforma .Net es neutral con respecto al lenguaje de programacin y admite prcticamente cualquiera de ellos, trae siguientes beneficios: ! ! ! ! Cdigo rehusable y compartido. Acceso a APIs. Herencia cruzada entre lenguajes. Manejo de errores cruzado entre lenguajes.

Administracin de Ventanas ! ! ! Auto Ocultar: Nueva caracterstica que permite ocultar una ventana automticamente permitiendo liberar espacio en el IDE. Ventana Acopladas: Al igual que en el VB 6, esta caracterstica permite acoplar la ventana, las cuales estarn fijas en el IDE. Fichas de Documentos: Nueva caracterstica que permite un acceso rpido a las ventanas a travs de las fichas que aparecen en la parte superior del editor. Ventana de Ayuda Rpida. Nueva caracterstica que permite mostrar en una ventana todos los temas relacionados al elemento donde se encuentre el cursor.

Diseadores ! Windows Form Designer: Se muestra al crear un proyecto Windows Application o Windows Control Library habilitando los controles Windows en el ToolBox. Web Form Designer: Se muestra al crear un proyecto ASP .Net Web Application habilitando los controles para Web Form y los controles HTML en el ToolBox para disear una pgina Web.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

! !

Component Designer: Se muestra al crear un proyecto Class Library o Windows Service habilitando los controles Windows en el ToolBox, creando una interfase rehusable desde otra aplicacin. Web Service Designer: Se muestra al crear un proyecto Web Service habilitando los controles Windows, Components, etc. Server Explorer: Es una excelente herramienta que permite acceder a bases de datos, administrar Servidores, Servicios Web, Aplicaciones COM+, etc. Data Adapter Wizard: Es un asistente que permite crear un objeto DataAdapter el cual es un comando con el cual se podr generar un conjunto de registros o DataSet.

Herramientas de Bases de Datos ! ! Query Designer: Es un diseador de consultas SQL de manera sencilla arrastrando tablas y eligiendo los campos que se vern. Database Project: Es un tipo de plantilla de proyecto que sirve para trabajar con una base de datos, para lo cual debe de existir una conexin con un origen de datos. Estos proyectos permiten administrar una base de datos. Editor de Script: Es una herramienta que permite administrar bases de datos remotas como SQL Server, Oracle, etc. Permite definir el Script para crear tablas, consultas, vistas, etc. Depurador de Procedimientos Almacenados. Permite realizar seguimientos paso a paso de los Stores Procedures, permitiendo un mayor control y seguimiento de errores.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

INTRODUCCIN A VISUAL BASIC .NET 2005

Visual Basic .Net es uno de cuatro lenguajes .Net que provee Microsoft para la construccin de lo ltimo en componentes, aplicaciones y servicios. Con esta nueva versin, los desarrolladores pueden construir todas las aplicaciones de ASP .Net para servicios Web XML.

Lo nuevo en Visual Basic .Net 2005 Visual Basic .Net ofrece numerosas caractersticas nuevas y mejoradas, como herencia, interfaces y sobrecarga, la palabra clave Overrides, miembros compartidos y constructores, que lo convierten en un eficaz Lenguaje de Programacin orientado a objetos. Ahora se puede crear aplicaciones multiproceso y escalables utilizando subprocesamiento mltiple explcito. Otra caracterstica nueva de Visual Basic .Net incluye el control estructurado de excepciones, atributos personalizados y compatibilidad con CLS (Common Language Specification, Especificacin de Lenguajes Comn. Tambin se incluyen el control estructurado de excepciones, delegados y varios tipos de datos nuevos. Visual Basic .Net 2005 tiene nuevas funciones que simplifican la manipulacin del bits y la declaracin de variables de bucle. Con esta nueva versin, los desarrolladores pueden construir todas las aplicaciones ASP .Net para servicios Web XML.

Caractersticas: ! ! Con Visual Basic se podr disear dos tipos de aplicaciones: Aplicaciones para Windows y Aplicaciones para Internet. El acceso de datos ser usando ADO .Net el cual nos permitir trabajar con DataSers desconectados.

Extensin de los ficheros de cdigo. En Visual Basic .NET a diferencia de lo que ocurra en las versiones anteriores de Visual Basic, slo existe un tipo de fichero de cdigo, el cual tiene la extensin .vb, en este tipo de fichero pueden coexistir distintos tipos de elementos, por ejemplo: un mdulo de clase, un formulario, un mdulo de cdigo, un control, etc.; mientras que en las versiones anteriores de Visual Basic, cada uno de estos elementos tenan su propio tipo de fichero con su respectiva extensin.

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo II Programando con Visual Basic 2005

Tipos de ejecutables. Con Visual Basic .NET puedes crear bsicamente estos dos tipos de ejecutables: de consola, no grfico, al estilo del viejo MS-DOS, y grficos, como los que normalmente estamos acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET: aplicaciones ASP.NET, (realmente no es una aplicacin o ejecutable, sino un compendio de distintos tipos de elementos...), servicios Web, servicios Windows, etc.

Joel Martin Chuco Marrufo 8

Capitulo III

INDICE

CAPITULO III

Visual Basic .Net 2005 Por qu Visual Basic? Por qu Console Application y no Windows Application? IDE de Visual Basic .Net 2005 Tipos de Datos del Visual Basic .Net 2005 Console Read ReadLine Write WriteLine mbito de Variables Dim Static Private Public Constantes Creacin de un Proyecto de Consola de Aplicacin Solucin del Ejercicio 01 Errores de Ejecucin Solucin del Ejercicio 02 Solucin del Ejercicio 03 Solucin del Ejercicio 04 Solucin del Ejercicio 05 Clase Math Campos Pblicos Mtodos Pblicos Solucin del Ejercicio 06 Solucin del Ejercicio 07

01 02 02 03 06 09 09 09 09 09 10 10 10 10 11 11 11 13 15 17 19 20 21 22 22 22 23 24

Solucin del Ejercicio 08 Ejercicio Propuesto Despedida

25 25 26

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

VISUAL BASIC .NET 2005


Primero veremos como ingresar al Visual Basic .Net 2005, lo nico que tienen que hacer es lo que ven en la imagen y darle clic en donde esta seleccionada.

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Por qu Visual Basic? La respuesta es muy sencilla, el Visual Basic te permite realizar unos buenos diseos en tus programas, adems de que el programa que realices en Visual Basic se podr correr (ejecutar) en casi todos los sistemas operativos de la Microsoft, y lo mejor, bueno a mi opinin, es mucho mas fcil de realizar los cdigos, ya que tiene una ayuda de auto complementar.

Por qu Console Application y no Windows Application? Utilizamos la Console Applicatin (Consola de Aplicacin) por que ustedes, los que tienen deseos de aprender, les ser mas fcil de aprender la lgica que van a necesitar para resolver cualquier algoritmo que se les presente, y adems por que casi todos los cdigos que vamos a usar en la Console Application, lo vamos a usar en Windows Application. Bueno, no uso el Windows Application para comenzar a programar, por que me parece que les enseara a manejar moto sin saber manejar bicicleta, me entienden no?, de lo que habla?, en otras palabras, si no aprenden a ver como uno puede capturar y mostrar datos mediante cdigo y no mediante unos controles, al principio les seria mas fcil, pero conforme avancemos no les va a quedar en claro, y es por eso que uso primero Console Application, pero no se preocupen, que solo lo vamos a usar unos cuantos captulos noms, okis.

En Visual Studio .Net 2005 existe un ambiente de trabajo o IDE (Integrated Development Environment = Ambiente Integrado de Desarrollo) el cual permite trabajar con el Visual Basic, Visual C#, Visual J# y Visual C++, el que permite disear las interfaces grficas de usuario de una o mas aplicaciones, es decir el que se puede crear formularios que contengan a otros formularios u objetos diversos como los TextBox, ComboBox, etc.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

IDE DE VISUAL BASIC .NET 2005

Primero veremos la pantalla de presentacin del Visual Basic 2005 y seguido veremos el Ambiente de Desarrollo.

Bueno como se dan cuenta, yo voy a utilizar el Visual Basic 2005 en Ingles, ya que todava la versin en espaol esta en versin Beta 2, as que va a tener algunos cambios, en cambio con la versin en ingles, la versin que yo utilizo es la final, wueno si no tienes Money (Dinero) para comprar la versin original, le hara una sugerencia de descargarse la versin de evaluacin, para que puedan aprender, aunque les dure unos 60 a 90 das, pero antes se tienen que inscribir en el MSDN de la Microsoft para poder descargarlo en Imgenes de CD (*.ISO), para que lo puedan grabar en CD y llevrselos a su casa. Eso solo es una sugerencia, okis.

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Ahora veremos el medio ambiente desarrollo de Visual Basic .Net 2005.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

1. Barra de Titulo

2. Barra de Mens

3. Barra editor de Distribucin

4. Explorador de Solucin

5. Pantalla de Propiedades

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

TIPOS DE DATOS DEL VISUAL BASIC .NET


Espacio de Valores que se pueden memoria almacenar que ocupa y comentarios 2 bytes Un valor verdadero o falso. Valores: True o False. En VB se pueden representar por 1 o 0, en CLR sern 1 y 0, aunque no es recomendable usar valores numricos, es preferible usar siempre True o False. Dim b As Boolean = True Un valor positivo, sin signo, para contener datos binarios. Valores: de 0 a 255 Puede convertirse a: Short, Integer, Long, Single, Double o Decimal sin recibir overflow Dim b As Byte = 129 Un carcter Unicode. Valores: de 0 a 65535 (sin signo). No se puede convertir directamente a tipo numrico. Para indicar que una constante de cadena, realmente es un Char, usar la letra C despus de la cadena: Dim c As Char = "N"c Una fecha. Valores: desde las 0:00:00 del 1 de Enero del 0001 hasta las 23:59:59 del 31 de Diciembre del 9999. Las fechas deben representarse entre almohadillas # y por lo habitual usando el formato norteamericano: #m-d-yyyy# Dim d As Date = #10-27-2001# Un nmero decimal. Valores: de 0 a +/79,228,162,514,264,337,593,543, 950,335 sin decimales; de 0 a +/7.92281625142643375935439503 35 con 28 lugares a la derecha del decimal; el nmero ms pequeo es:

Tipo de Visual Basic Boolean

Tipo en CLR (Framework) System.Boolean

Byte

System.Byte

1 byte

Char

System.Char

2 bytes

Date

System.DateTime 8 bytes

Decimal

System.Decimal

16 bytes

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


+/0.00000000000000000000000000 01 (+/-1E-28). En los literales se puede usar la letra D o el signo @ para indicar que el valor es Decimal. Dim unDecimal As Decimal = 9223372036854775808D Dim unDecimal2 As Decimal = 987654321.125@ Un nmero de coma flotante de doble precisin. Valores: de -1.79769313486231570E+308 a -4.94065645841246544E-324 para valores negativos; de 4.94065645841246544E-324 a 1.79769313486231570E+308 para valores positivos. Se puede convertir a Decimal sin recibir un overflow. Se puede usar como sufijo el signo almohadilla # o la letra R para representar un valor de doble precisin: Dim unDoble As Double = 125897.0235R Dim unDoble2 As Double = 987456.0125# Un nmero entero (sin decimales) Valores: de -2,147,483,648 a 2,147,483,647. Se puede convertir a Long, Single, Double o Decimal sin producir overflow. Se puede usar la letra I o el signo % para indicar que es un nmero entero: Dim unEntero As Integer = 250009I Dim unEntero2 As Integer = 652000% Un entero largo (o grande) Valores: de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. Se puede convertir a Single, Double o Decimal sin producir overflow. Se puede usar la letra L o el signo & para indicar que es un nmero

Double

System.Double

8 bytes

Integer

System.Int32

4 bytes

Long System.Int64 (entero largo)

8 bytes

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


Long: Dim unLong As Long = 12345678L Dim unLong2 As Long = 1234567890& Cualquier tipo se puede almacenar en una variable de tipo Object. Todos los datos que se manejan en .NET estn basados en el tipo Object. Un entero corto (sin decimales) Valores: de -32,768 a 32,767. Se puede convertir a: Integer, Long, Single, Double o Decimal sin producir un overflow. Se puede usar la letra S para indicar que es un nmero entero corto: Dim unShort As Short = 32000S Nmero de coma flotante de precisin simple. Valores: de -3.4028235E+38 a -1.401298E45 para valores negativos; de 1.401298E-45 a 3.4028235E+38 para valores positivos.

Object

System.Object (class)

4 bytes

Short System.Int16 (entero corto)

2 bytes

Single

System.Single

4 bytes

String (cadenas de longitud variable)

System.String (clase)

Se puede convertir a: Double o Decimal sin producir overflow. Se pueden usar la letra F y el smbolo para indicar que es un nmero Single: Dim unSingle As Single = 987.125F Dim unSingle2 As Single = 65478.6547! Depende de Una cadena de caracteres Unicode. la Valores: plataforma de 0 to aproximadamente 2 billones (2^31) de caracteres Unicode.

Se puede usar el smbolo $ para indicar que una variable es un String. (heradada de Depende de Cada miembro de la estructura Tipos definidos por System.ValueType) la tiene su rango, dependiendo del el usuario plataforma tipo de dato que representa.
(estructuras)

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


Ya vimos los tipos de dato que soporta el Visual Basic, as que antes de seguir, vamos a ver las palabras reservadas y que funciones vamos a utilizar para capturar y mostrar datos. Console Esta es la clase que vamos a utilizar, ya que aqu se encuentra las funciones para capturar y mostrar datos. Por ahora vamos a utilizar las siguientes funciones.

Read, nos captura o lee el dato que el usuario ingresa. Variable = Console.Read ReadLine, nos captura o lee el dato que el usuario ingresa, pero a la vez hace un cambio de lnea al terminar de leer el dato. Variable = Console.ReadLine Write, nos permite mostrar ya sea una cadena (texto) o un dato numrico (nmero). ! Para mostrar texto y datos calculados o capturados
Console.Write(Texto a Mostrar {0},{1}, {2}, , {n}, Var0, Var1, Var2,, Varn)

Para mostrar texto


Console.Write(Texto a Mostrar)

WriteLine, nos permite mostrar ya sea una cadena (texto) o un dato numrico (nmero), y a la vez hace un cambio de lnea, despus de haber mostrado el dato. ! Para mostrar texto y datos calculados o capturados
Console.WriteLine(Texto a Mostrar {0},{1}, {2}, , {n}, Var0, Var1, Var2,, Varn)

Para mostrar texto


Console.WriteLine(Texto a Mostrar)

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


! Como se habrn dado cuenta, que en la funcin Write y WriteLine, seguido del texto que deseamos mostrar pongo {0}, {1} etc. Pues lo pongo por que para mostrar una variable o un dato seguido del texto que muestro por ejemplo: si deseo mostrar el siguiente texto, seguido de la variable N que contiene un nmero digamos que 13, deberamos de escribir el siguiente cdigo. Console.WriteLine("El Valor de la Variable N es : {0}", N) Y lo que nos mostrara en pantalla seria lo siguiente El Valor de la Variable N es : 13

As que lo deben de tener en claro, que por cada variable o dato que queremos mostrar despus del texto que mostramos, tendremos que agregar {0}, en donde el 0 indica que numero de dato se va mostrar, mejor dicho lo convierte en un array y este muestre el valor del array comenzando del 0, as que si queremos mostrar 5 datos despus del texto tendremos que escribir {0}, {1},{2}, {3}, {4}, y si queremos mostrar tres datos despus del texto tendremos que escribir desde el 0 al 2, espero que les halla quedado en claro, jejejeje, bueno seguiremos con los conceptos.

AMBITO DE VARIABLES
El mbito indica en que lugar de la aplicacin desea utilizar la variable y puede ser una de las siguientes palabras claves. Dim, Static, Private o Public.

Dim: Se puede utilizar a nivel de procedimiento y a nivel del formulario. Si se declara una variable a nivel de procedimiento con la palabra Dim, Visual Basic reinicializa (borra su contenido) la variable cada vez que ejecuta el procedimiento. Ejemplo: Dim a As Integer Static: Se utiliza solo a nivel del procedimiento. Cuando una variable se declara con la palabra Static, Visual Basic no reinicializa la variable cada vez que se ejecuta el procedimiento, solo lo hace la primera vez. Esto quiere decir que la variable conserva su valor entre una llamada al procedimiento y otra. Ejemplo: Static b As Double Private: Se utiliza solo a nivel del modulo e indica que la variable es privada; es decir, solo va a ser reconocida dentro del mdulo donde ha sido declarada. Ejemplo: Private c As String

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


Public: Se utiliza solo a nivel de mdulo e indica que la variable es pblica; es decir, va a ser reconocida en toda la aplicacin. Public d As Date

CONSTANTES
Es un elemento con un nombre determinado que mantiene un valor constante durante el desarrollo de todo el programa el cual no se puede cambiar. Las constantes se definen con la instruccin Const por ejemplo:

Const e = 10

Nota: La definicin de las constantes puede empezar con las palabras Public o Private. Para que sean pblicas o privadas. Por defecto son privadas.

CREACIN DE UN PROYECTO DE CONSOLA DE APLICACIN


El primer paso para crear una consola de aplicacin, es crear un proyecto de Console Application de Visual Basic. Para hacer esto, siga estos pasos:

1. ingresar a Microsoft Visual Basic .Net. En la barra de estado haga clic en el botn Inicio y luego en la opcin Todos los Programas y de clic en Microsoft Visual Basic 2005 Express Edition. 2. Dentro del visual Basic tenemos dos formas para crear un nuevo proyecto, la primera es: ! File -> New Project

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Y de la otra forma es mediante Start Page (pgina de Inicio), le damos clic en Create Project.

3. Luego nos aparecer la ventana de New Project (Nuevo Proyecto), despus introduciremos el nombre de Ejecicio01, Visual Basic proporciona una ruta predeterminada para el ensamblado de los archivos peo se puede cambiar haciendo clic en el botn Browser, bueno eso lo haremos cuando guardemos el archivo. Por ahora vamos seleccionaremos el icono de Console Application y le ponemos el nombre que ya les dije.

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

4. Al dar clic en OK nos aparecer la ventana de cdigo del modulo que acabamos de crear, el modulo tendr el nombre de Module1, as que lo cambiaremos por Ejercicio01, en la ventana de propiedades.

As que todo el cdigo que vamos a escribir lo haremos del Main. Ahora resolveremos el primer ejercicio que hemos hecho en Pseudocdigo.

Solucin del Ejercicio N 01

Bueno yo estoy utilizando las variables (Identificadores) que hemos declarado en el Pseudocdigo, para que ustedes lo tengan mas en claro, por ahora utilizo el tipo de variable Integer (entero), ya que no creo que sea necesario usar el tipo Double, aunque puede ser ms exacto en el resultado (por los decimales que muestra).

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


Tambin utilizo la funcin Write ya que quiero que muestre el texto de Ingrese la Velocidad del Mvil, para que as el usuario ingrese el dato requerido, y a la vez el dato que el usuario ingresa no aparezca abajo del texto, sino al costado. Hay varias formas de realizar comentarios en pleno codito, como yo lo he hecho, este comentario no se mostrara a la hora de ejecucin, solo se utiliza dentro de la codificacin, para que as cuando tu te hayas olvidado para que es una instruccin o para que es una variable, podrs ponerle el comentario respectivo. Estos son las formas para poner un comentario. 'Comentario Mediante la Coma Flotante REM Comentario Mediante REM

5. Ejecutar el programa creado. Tenemos tres formas para hacerlo. ! ! Presionando la tecla F5 Eligiendo en el men Debug -> Start Debugging

Haciendo clic en la Barra Estndar en el icono siguiente.

La ventana que nos mostrar al ejecutar el siguiente programa ser:

Por cada dato que ingresemos tendremos que presionar la tecla Enter, para que el programa reciba ese dato.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

ERRORES DE EJECUCIN

Este error es no tan comn, por que creo que no existe personas que borraran un End Sub, End Module, Sub Main o Module Ejercicio01.

Este si es un error, digamos que cotidiano, este error se debe que cuando el usuario ingresa un tipo de dato diferente al requerido, existe un desbordamiento de Pila, as que lo podremos restringir ya sea en el cdigo, pero eso de restricciones de ingreso de datos lo veremos en los proyectos de Windows Application.

6. Guardar el proyecto que acabamos de crear, para esto existe tres formas:

Presionando las teclas Control + Shift + S

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


! Eligiendo en el men File -> Save Ejercicio01 as

Presionando cualquier de los dos iconos en la Barra Estndar.

Luego nos aparecer la siguiente ventana, aqu podemos cambiar la direccin donde se va a guardar el proyecto (Browse), por default creara una carpeta con el nombre del proyecto.

Ya vieron que no es nada del otro mundo, solo basta aprender bien el cdigo de capturar y mostrar datos, nada mas, solo por este capitulo les escribir el comentario por cada cdigo que utilice, as que aprndanlo por que en el prximo capitulo ya lo har sin comentarios okis, mientras tanto sigamos con la solucin de los ejercicios que hemos hecho en el primer capitulo, si el de los Pseudocdigos, exactamente.

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 02 Primero crearemos un nuevo proyecto llamado Ejercicio02 y luego cambiaremos el nombre del modulo, que por default tiene el de Module1.vb as que lo cambiaremos por este Ejercicio02.vb.

Antes de continuar, haremos un pequeo cambio en visual Basic, para bien de ustedes que estn empezando a programar, as que primero nos dirigiremos en la barra de men en la opcion de Tool y daremos clic en Options.

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Luego nos aparecer la siguiente ventana en donde nos ubicaremos en Projects and Solutionsn y luego daremos clic, y de nuevo daremos clic en VB Defaults y cambiaremos una sola cosa, en donde dice Option Strict por default aparece en Off, as que lo cambiaremos por On . Y luego le daremos clic en el botn de Ok.

Esta opcin, si se activa, se indica con Option Strict On, obligar a que los tipos de datos que uses sean del tipo adecuado, de esta forma, har que las cosas las hagas o las programes cmo debes... seguramente acabars dejando esa opcin en el valor que el vb.NET trae por defecto... valor que no creo que cambien en la versin del espaol, en este caso, ya que usando Option Strict On es ms complicado hacer las conversiones entre tipos diferentes de datos) Por ejemplo, con el Option Strict On no podemos hacer esto: Dim unChar As Char = "N", ya que "N" es una constante del tipo String. El compilador de Visual Basic nos dira algo as: Option Strict no permite la conversin entre Char y String

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 03 Crearemos un proyecto llamado Ejercicio03, y el modulo se llamara igual.

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 04 Crearemos un proyecto llamado Ejercicio04, y el modulo se llamara igual.

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 05 Crearemos un proyecto llamado Ejercicio05, y el modulo se llamara igual.

Sorry por ponerles imgenes del cdigo, es que si lo pongo en texto, ustedes lo pueden seleccionar, copiar y lo pegaran en el editor de cdigo del Visual Basic, y as no aprenderan mucho ya que solo se dedicaran a copiar, pegar, as que escriban noms el cdigo para que aprendan okis.

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

CLASE MATH
Permite utilizar funciones matemticas muy tiles, a continuacin veremos un cuadro extrado de la ayuda y seguidamente veremos como utilizamos la clase Math en la solucin del Ejercicio N 06.

Campos Pblicos E PI Representa la base logartmica natural, especificada por la constante e. Representa la relacin entre la longitud de la circunferencia de un circulo y su dimetro, especificada por la constante "

Mtodos Pblicos Abs Acos Asin Atan Atan2 BigMul Ceiling Cos Cosh DivRem Exp Floor IEEERemainder Log Log10 Max Min Pow Round Sign Sin Sinh Sqrt Tan Tanh Sobrecargado. Devuelve el valor absoluto de un nmero. Devuelve el ngulo cuyo coseno es el nmero especificado. Devuelve el ngulo cuyo seno es el nmero especificado. Devuelve el ngulo cuya tangente corresponde al nmero especificados. Devuelve el ngulo cuya tangente es el cociente de dos nmero especificados Calcula el producto completo de dos nmeros de 32 bits. Devuelve el nmero entero ms pequeo mayor o igual que el nmero especificado. Devuelve el coseno del ngulo especificado. Devuelve el coseno hiperblico del ngulo especificado. Sobrecargado. Devuelve el cociente de dos nmeros y pasa tambin como parmetro de salida el resto de la divisin. Devuelve e elevado a la potencia especificada. Devuelve el nmero entero ms grande menor o igual que el nmero especificado. Devuelve el resto de la divisin de dos nmeros especificados. Sobrecargado, devuelve el logaritmo de un nmero especificado. Devuelve el logaritmo en base 10 de un nmero especificado. Sobrecargado. Devuelve el mayor de dos nmeros. Sobrecargado. Devuelve el menor de dos nmeros. Devuelve un nmero especificado elevado a la potencia especificada. Sobrecargado. Devuelve el nmero ms prximo al valor especificado. Sobrecargado. Devuelve un valor que indica el signo de un nmero. Devuelve el seno del ngulo especificado. Devuelve el seno hiperblico del ngulo especificado. Devuelve la raz cuadrada de un nmero especificado. Devuelve la tangente del ngulo especificado. Devuelve la tangente hiperblica del ngulo especificado.

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005


Sintaxis: ClaseMath.NombreDelMetodo Ejemplo: N = Math.Sqrt(4) Nos dara resultado de 2, ya que la raz cuadrada de 4 es 2.

Solucin del Ejercicio N 06 Crearemos un proyecto llamado Ejercicio06, y el modulo se llamara igual.

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 07 Crearemos un proyecto llamado Ejercicio07, y el modulo se llamara igual.

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Solucin del Ejercicio N 08 Crearemos un proyecto llamado Ejercicio08, y el modulo se llamara igual.

Sintaxis del Sqrt: Math.Sqrt(NumeroASacarRaiz) Sintaxis del Pow: Math.Pow(NumeroBase,NumeroDeExponente)

Ejercicio Propuesto: A. Elaborar un algoritmo, en Pseudocdigo, diagrama de flujo y en codificacin, este algoritmo debe de hallar el valor absoluto de cualquier nmero.

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo III Programando con Visual Basic 2005

Bueno seores con esto acaba la segunda entrega de este manual, se que ha sido muy poco, pero as es la vida, mientras tanto, ir elaborando la tercera entrega, esta tercera entrega no se cuantos captulos va a tener, pero si se que temas vamos a tocar, tocaremos lo siguiente: ! ! ! ! Instruccin Condicional Condiciones Mltiples Procesos Repetitivos Estructuras Repetitivas

Y nada ms, aunque parece muy poco por los ttulos, pero creo que va a ser una de las entregas mas largas que voy a hacer, pero no se preocupen, que ya estar comenzando a hacer la tercera entre y cuarta, solo les pido algo, repacen lo que hemos hecho en este capitulo y si pueden repasen la primera entrega, me importa mucho que sepan y entiendan la lgica del Pseudocdigo, para que a la hora que entremos a programar en aplicaciones de ventanas, no estn en las nubes, 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#

Lima, 09 de enero del 2006

Joel Martin Chuco Marrufo 26

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

01 02 02 02 02 03 03 05 05 05 06 06 06 06 06 06 06 06 07 07 07 07 10 11 11 12 13

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

14 15 16 16 17 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 Ejemplo:

Y el bit en Expresin2 es 0 1 0 1

Resultado ser 0 1 1 0

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

01 02 02 02 03 03 04 04 04 05 06 06 06 08 08 09 10 11 12 13 13 14 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 0a5 6 a 10 11 a 15 16 a 20

Mensaje 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

Capitulo VI

INDICE

CAPITULO VI

Arreglos Arrays Unidimensional Arrays Multidimensional Ejercicio 34 Ejercicio 35 Ejercicio 36 Ejercicio 37

01 01 02 03 04 06 07

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

ARREGLOS

Array Unidimensional

Un Array (arreglo) es un indicador que puede almacenar varios valores simultneamente. Cada uno de estos valores se identifica mediante un nmero al cual se llama ndice. As, para acceder al primer elemento del array habra que usar el ndice cero, para el segundo el ndice uno, para el tercero el ndice dos, y as sucesivamente. Vamos a ver cmo se declara un Array

Dim Variable(NmeroDeElementos) As Tipo de Variable

En efecto, tal como pueden apreciar, el array ser utilizable nicamente a partir de su declaracin. Por ejemplo:

Dim Numeros(3) As Integer

En este ejemplo, el nmero 3 que est dentro de los parntesis indica el nmero total de elementos + 1 de que constar el array. Puesto que todos los arrays estn basados en cero, esto es, el primer elemento del array es cero. Por lo tanto, en este caso, el ltimo elemento sera 3, ya que son cuatro y no tres los elementos que lo componen (0, 1, 2 y 3). Veamos un ejemplo algo ms completo y despus lo comentamos:

Dim Numeros(3) As Integer Dim K As Integer Numeros(0) = 1 Numeros(1) = 2 Numeros(2) = 3 Numeros(3) = 4 For K = 0 to 3 Console.WriteLine("Indice [{0}{1}{2}", K, "] = ", Numeros(K)) Next

Ahora veamos la salida en la consola.

Indice Indice Indice Indice

[0] [1] [2] [3]

= = = =

1 2 3 4

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

Bueno ahora se ve mas claro lo que hablo, como se habrn dado cuenta al declarar un array e indicar los elementos que va a contener dicho array, siempre debemos de tener en cuenta de esto: Numero de elementos 1, por ejemplo, si queremos un array de 4 elementos tendramos que indicarle as: Array (3), por que seria el numero de elementos 1 en este caso 4 1 = 3. Aunque es un poco difcil de acostumbrarse, ya que en las versiones antiguas no eran as, se parecen un poco al C, C++.

Array Multidimensional

Los arrays multidimensionales son aquellos que constan de dos o ms dimensiones, es decir, que cada elemento del array viene definido por dos o ms ndices. Veamos un ejemplo de declaracin de un array multidimensional (en este caso, ser tridimensional, es decir, con tres dimensiones):

Dim Variable(x,x,x) As Tipo de Variable

Como vemos, hay tres letras dentro de los parntesis, separadas por comas, lo cual indica que el array es tridimensional, puesto que los tres ndices del mismo se separan uno de otro por comas. Veamos un pequeo ejemplo que lo clarifique un poco ms:

Dim Alumnos(1,3) As Integer

Este array es bidimensional y servira para almacenar una lista de alumnos por Nombres y Apellidos, tenemos un array bidimensional (el primer ndice del array nos almacenar los nombres y el segundo ndice nos almacenar los apellidos). Veamos un poco de cdigo y una tabla para que se hagn una idea de cmo se almacena esto:

Alumnos(0,0)="Jos"; Alumnos(0,1)="Lus"; Alumnos(0,2)="Juan"; Alumnos(0,3)="Pedro"; Alumnos(1,0)="Vargas"; Alumnos(1,1)="Moreno"; Alumnos(1,2)="Lpez"; Alumnos(1,3)="Peralta";

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

Esto sera como almacenar los datos en esta tabla:

Alumnos Alumnos Alumnos Alumnos

0 1 2 3

Nombres (0) Jos Lus Juan Pedro

Apellidos (1) Vargas Moreno Lpez Peralta

Bueno parece que esta un poco claro, lo de arrays, en esta tabla he separado por indicie, mejor dicho lo que declaro en la variable lo he graficado, como?, bueno as: tenemos nuestro array llamado Alumnos(1,3), todos sabemos que va a tener dos columnas y cuatro filas, as que en la columna 0 voy a almacenar los nombres y el la columna 1 sus apellidos, guindome de los ndices de cada nombre que ingrese, en otras palabras en el array Alumnos, en la columna 0 y en la fila 0 voy a almacenar el nombre de Jos, as que en la columna 1 y en la misma fila 0 voy a almacenar su apellido Vargas, y as sucesivamente hasta que se llene el array. Ahora veamos unos ejercicios para que lo entiendan mejor.

EJERCICIOS

34. Se desea mostrar los cuatros primeros nmeros positivos y el nmero del ndice en donde es almacenado en el array unidimensional.

Solucin:

Module Ejercicio34 'Ejemplo de un Array Unidimensional Sub Main() Dim ArrayUnidimensional(3) As Integer Dim X, Num As Integer For X = 0 To 3 Num = X + 1 ArrayUnidimensional(X) = Num Next Console.WriteLine() Console.WriteLine("Array Unidimensional 4") Console.WriteLine() For X = 0 To 3 Console.WriteLine("Indice [{0}{1}{2}", X, "] = ", ArrayUnidimensional(X)) Next Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

Ahora expliquemos, primero declaramos un array unidimensional llamado: ArrayUnidimensional, este va a contener 4 elementos, por lo tanto entre los parntesis pondremos el numero de elementos menos uno, sea 3, despus declaramos una variable que va a comportarse (funcionar) como un contador, as que primero almacenamos los valores en el array, en el ndice 0 tendr almacenado el valor de 1, en el ndice 1 tendr almacenado el valor 2 y as sucesivamente hasta almacenar los cuatro elementos. Despus pasaremos a mostrar elemento por elemento con el for, tomando desde el ndice 0 a 3, y eso es todo lo que hace ese cdigo.

35. Se desea mostrar los diecisis primeros nmeros positivos y el nmero del ndice en donde es almacenado en el array bidimensional.

Solucin:

Module Ejercicio35 'Ejemplo de un Array Bidimensional Sub Main() Dim ArrayBidimensional(3, 3) As Integer Dim X, Y, Num As Integer For X = 0 To 3 For Y = 0 To 3 Num = Y + 1 If X = 1 Then Num += 4 ElseIf X = 2 Then Num += 8 ElseIf X = 3 Then Num += 12 End If ArrayBidimensional(X, Y) = Num Next Next Console.WriteLine() Console.WriteLine("Array Bidimensional 4 x 4") Console.WriteLine() For X = 0 To 3 For Y = 0 To 3 Console.WriteLine("Indice [{0}{1}{2}{3}{4}", X, "][", Y, "] = ", ArrayBidimensional(X, Y)) Next Next Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

Bueno expliquemos, primero declaramos el array bidimensional que va a ser ArrayBidimensional(3,3), como ustedes saben, este array va a contener 16 elementos y no 9 como parece, despus almacenamos los valores mediante un For, mejor dicho, almacenamos los valores mediante una estructura de repeticin, primero almacenaremos los valores de la primera fila, as que el array bidimensional ser as: cuando X valga 0 ser y Y valga 0, ArrayBidimensional(0,0) y almacenaremos el valor de 1, por lo tanto X va a mantener su valor de 0 y Y tendr el valor de 1, por lo tanto el array ser as: ArrayBidimensional(0,1) va a tener el valor de 1 y as sucesivamente hasta que el valor de X sea 1, esto nos indicara que tocara llenar la fila 1 por lo tanto cuando X valga 1 y Y valga 0 el array ser as: ArrayBidimensional(1,0) va a contener el valor de 5, bueno si estn algo confundido, veamos grficamente como estara almacenado el array.

ArrayBidimensional(3,3)

Y 0 1 2 3 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 4 8 12 16

Grficamente eso es lo que hara la codificacin, con respecto a al almacenar de elementos en el array, y para mostrar los elementos, seria casi lo mismo, por no decir lo mismo, primero muestra el elemento que est en el ndice (0,0), y despus el del ndice (0,1), y as sucesivamente, segn lo que indique el For. Para que les quede un poco mas claro la idea de los array, resolveremos dos ejercicios ms de arrays, uno de unidimensional y el otro bidimensional, cada uno respectivamente con su grfico para que les sea ms claro.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005

36. Se desea mostrar los Nombres y Apellidos de 4 alumnos que estn almacenados en arrays unidimensionales diferentes.

Solucin: Module Ejercicio36 'Este algoritmo contiene dos Array, uno que almacena los nombres 'y el otro almacena los apellidos y despus muestra los nombres y apellidos Sub Main() Dim Nombres(3), Apellidos(3) As String Dim X As Integer Nombres(0) = "Joel" Nombres(1) = "Nahum" Nombres(2) = "Krizia" Nombres(3) = "Giselle" Apellidos(0) = "Chuco" Apellidos(1) = "Chuco" Apellidos(2) = "Rupay" Apellidos(3) = "Valverde" For X = 0 To 3 Console.Write("indice [{0}{1}{2}", X, "] = ", Nombres(X)) Console.WriteLine(" {0}", Apellidos(X)) Next Console.ReadLine() End Sub End Module

Para este ejercicio hemos declarado dos arrays uno llamado Nombres y otro llamado Apellidos ambos van a contener 4 elementos y van a ser de tipo cadena (String) ya que van a almacenar textos, despus de declararlos pasaremos a almacenar valores en los arrays, una vez almacenado mediante un For, empezaremos a mostrar los nombres y los apellidos, cuando el contador valga 0, se mostrar los elementos del ndice 0 de ambos arrays, as sucesivamente hasta mostrar los cuatro elementos, mas o menor se almacenara as los array, grficamente.

Nombres(3) Apellidos(3)

0 Joel Chuco

Indices 1 2 Nahum Krizia Chuco Rupay

3 Giselle Valverde

Como se ve en el grfico, en el ndice 0 del array Nombres figura mi nombre y en el array Apellidos figura mi apellido, y as sucesivamente con los dems elementos.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo VI Programando con Visual Basic 2005


37. Se desea mostrar los Nombres y Apellidos de 4 alumnos que estn almacenados en un array bidimensional.

Solucin: Module Ejercicio37 'Este algoritmo muestra los Nombres y Apellidos almacenados 'en un Array Bidimensional Sub Main() Dim NomApe(1, 3) As String Dim X1, X2, Y As Integer NomApe(0, 0) = "Joel" NomApe(0, 1) = "Nahum" NomApe(0, 2) = "Krizia" NomApe(0, 3) = "Giselle" NomApe(1, 0) = "Chuco" NomApe(1, 1) = "Chuco" NomApe(1, 2) = "Rupay" NomApe(1, 3) = "Valverde" Console.WriteLine("Los Nombres y Apellidos Son: ") Console.WriteLine() For X1 = 0 To 0 For Y = 0 To 3 Console.Write("{0}{1}", NomApe(X1, Y), " ") For X2 = 1 To 1 Console.WriteLine(NomApe(X2, Y)) Next Next Next Console.ReadLine() End Sub End Module

Primero declaramos un array bidimensional que contendr 8 elementos, dos filas y 4 columnas, en la primera fila se encontrarn todos los nombres y el la segunda fila, se encontrarn todos los apellidos, despus de almacenar los valores, pasaremos a mostrarlos mediante For, primero mostramos el nombre, y despus con el siguiente For mostraremos el apellido, grficamente el arrays estara almacenado as: NomApe(1,3)

Y 0 1 0 Joel Chuco 1 Nahum Chuco 2 Krizia Rupay 3 Giselle Valverde

Bueno en este grfico creo que se ve mas entendible, y tambin se puede ver que cada nombres esta con su apellido, como lo almacenamos.

Joel Martin Chuco Marrufo 7

Capitulo VII

INDICE

CAPITULO VII

Procedimientos Parmetros o argumentos de los procedimientos Ejercicio 38 Ejercicio 39 Ejercicio 40 Ejercicio 41 Ejercicio 42 Ejercicio 43 Ejercicio 44 Ejercicio 45 Ejercicio 46 Ejercicio 47 Ejercicio 48 Ejercicio 49 Enumeraciones Ejercicio 50 Ejercicio 51 Ejercicio 52 Soluciones de los Ejercicios Propuestos Ejercicio 01 Ejercicio 02 Ejercicio 03 Ejercicio 04 Ejercicio 05 Ejercicio 06 Ejercicio 07 Ejercicio 08 Ejercicio 09

01 02 03 04 04 05 05 06 07 08 09 10 11 12 13 14 15 16 17 17 19 20 20 21 22 22 23 24

Ejercicio 10 Ejercicio 11 Ejercicio 12 Ejercicio 13 Ejercicio 14 Ejercicio 15 Ejercicio 16 Ejercicio 17 Ejercicio 18 Ejercicio 19 Ejercicio 20 Despedida

25 25 26 27 27 28 28 29 30 30 31 32

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

PROCEDIMIENTOS

Los procedimientos son las sentencias de cdigo ejecutable de un programa. Las instrucciones de un procedimiento estn delimitadas por una instruccin de declaracin y una instruccin End. Existen tres tipos de procedimientos en Microsoft Visual Basic .NET: procedimientos Sub, procedimientos Function y procedimientos Property. ! Los procedimientos Sub realizan acciones pero no devuelven un valor al procedimiento que origina la llamada. Los controladores de eventos son procedimientos Sub que se ejecutan en respuesta a un evento. Los procedimientos Function pueden devolver un valor al procedimiento que origina la llamada. La instruccin MessageBox.Show es un ejemplo de funcin. Los procedimientos Property devuelven y asignan valores de propiedades de clases, estructuras o mdulos.

Un procedimiento puede ser invocado, o llamado, desde otro procedimiento. Cuando un procedimiento llama a otro procedimiento, se transfiere el control al segundo procedimiento. Cuando finaliza la ejecucin del cdigo del segundo procedimiento, ste devuelve el control al procedimiento que lo invoc. Debido a esta funcionalidad, los procedimientos resultan tiles para realizar tareas repetidas o compartidas. En lugar de escribir el mismo cdigo ms de una vez, podemos escribir un procedimiento e invocarlo desde varios puntos de nuestra aplicacin o desde otras aplicaciones. Utilizamos un modificador de acceso para definir la accesibilidad de los procedimientos que escribimos (es decir, el permiso para que otro cdigo invoque al procedimiento). Si no especificamos un modificador de acceso, los procedimientos son declarados public de forma predeterminada. Las opciones de accesibilidad para declarar un procedimiento dentro de un mdulo:

Public: Ninguna restriccin de acceso Friend: Accesible desde el programa que contiene la declaracin y desde cualquier otro lugar del mismo ensamblado Private: Accesible nicamente en el mdulo que contiene la declaracin

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Sintaxis [accesibilidad] Function NombreFuncion[(ListaDeArgumentos)] As TipoDato Instrucciones Retorna el Valor de Una Funcin End Function

Parmetros o argumentos de los procedimientos

Cuando queramos que un procedimiento realice una tarea, es posible que necesitemos indicarle alguna informacin adicional. Esa informacin se suele indicar mediante parmetros o argumentos. Los argumentos pasados a los procedimientos pueden ser pasados por valor o por referencia.

Por Valor: Cuando un argumento es pasado por valor, este valor no se podr alterar, por ejemplo:

Module Ejemplo Sub Main() MostrarNumero(1) Console.ReadLine() End Sub Sub MostrarNumero(ByVal Valor As Integer) Valor = Valor + 1 Console.WriteLine("El Valor del Parametro es: {0}", Valor) End Sub End Module

Expliquemos, nosotros llamamos al procedimiento MostrarNumero, y le mandamos el parmetro de 1, este numero 1 entra al procedimiento mediante la variable Valor, que despus lo alteramos sumndole mas uno, entonces el valor de la variable Valor seria 2, supuestamente, pero a la hora de mostrarlo en la consola, nos mostrar el valor de 1, se preguntarn Por qu?, esto solo tiene un respuesta, como es pasado por Valor, este Valor no puede ser alterado, por mas que le sumemos, dividamos, restamos, etc. El valor que va a contener la variable Valor siempre va a ser 1.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

Por Referencia: Cuando un argumento es pasado por referencia, este valor se podr alterar, por ejemplo: Module Ejemplo Sub Main() MostrarNumero(1) Console.ReadLine() End Sub Sub MostrarNumero(ByRef Valor As Integer) Valor = Valor + 1 Console.WriteLine("El Valor del Parametro es: {0}", Valor) End Sub End Module

Expliquemos, nosotros llamamos al procedimiento MostrarNumero, y le mandamos el parmetro de 1, este numero 1 entra al procedimiento mediante la variable Valor, que despus lo alteramos sumndole mas uno, entonces el valor de la variable Valor seria 2, a la hora de mostrarlo en la consola, nos mostrar el valor de 2, se preguntarn Por qu?, esto solo tiene un respuesta, como es pasado por Referencia, este Valor puede ser alterado.

Ahora veremos argumentos.

algunos ejercicios

de procedimientos, y el paso de

EJERCICIOS

38. Se desea mostrar los nmeros pasados por valor a un procedimiento.

Module Ejercicio38 'Este algoritmo usa un procedimiento extern para mostrar los 'numeros que le son enviados. Sub Main() MostrarNumero(1) MostrarNumero(1001) MostrarNumero(-532) Console.ReadLine() End Sub Sub MostrarNumero(ByVal Valor As Integer) Console.WriteLine("El Valor del Parametro es: {0}", Valor) End Sub End Module

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

39. Se desea mostrar la edad y el sueldo de un empleado mediante un procedimiento externo.

Module Ejercicio39 'Este algoritmo usa un procedimiento externo para mostrar los 'elementos que le son enviados. Sub Main() MostrarEmpleado(32, 25000.0) Console.ReadLine() End Sub Sub MostrarEmpleado(ByVal Edad As Integer, ByVal Salario As Double) Console.WriteLine("El Empleado Tiene {0}{1}", Edad, " aos") Console.WriteLine("El Empleado Gana $ {0}", Salario) End Sub End Module

40. Se desea mostrar la suma de dos nmeros enviados a un procedimiento externo.

Module Ejercicio40 'Este algoritmo usa un Procedimiento externo para realizar una operacin 'y devolver el resultado, para que despues mostrarlo Sub Main() Console.WriteLine("100 + 200 = {0}", SumaValores(100, 200)) Console.WriteLine("500 + 501 = {0}", SumaValores(500, 501)) Console.WriteLine("-1 + 1 = {0}", SumaValores(-1, 1)) Console.ReadLine() End Sub Function SumaValores(ByVal a As Integer, ByVal b As Integer) As Integer SumaValores = a + b End Function End Module

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


41. Se desea mostrar un mensaje, utilizando un procedimiento externo

Module Ejercicio41 'Este algoritmo usa un Procedimiento para mostrar un mensaje Sub Main() Console.WriteLine("LLamado a una Funcin") MuestraMensaje() Console.WriteLine("Regreso del Llamado a la Funcin") Console.ReadLine() End Sub Sub MuestraMensaje() Console.WriteLine("Hola, He Sido Rescatado por VB .Net 2005") End Sub End Module

42. Se desea mostrar dos mensajes utilizando dos procedimientos externos.

Module Ejercicio42 'Este algoritmo usa dos procedimientos para mostrar dos mensajes Sub Main() MuestraTitulo() MuestraLeccion() Console.ReadLine() End Sub Sub MuestraTitulo() Console.WriteLine("APUNTES: Apuntes de COMPUTACIN") End Sub Sub MuestraLeccion() Console.WriteLine("LECCION: Conocimientos Bsicos Sobre Funciones") Console.WriteLine() End Sub End Module

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

43. Se desea saber el mayor y el menor nmero de tres nmeros que son enviados a un procedimiento externo.

Module Ejercicio43 'Este algoritmo usa un procedimientos para determinar que nmero es mayor y 'menor de los tres numeros que le son enviados Sub Main() Console.WriteLine() grandeYpequeo(1, 2, 3) Console.WriteLine() grandeYpequeo(500, 0, -500) Console.WriteLine() grandeYpequeo(1001, 1001, 1001) Console.ReadLine() End Sub Sub grandeYpequeo(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) Dim pequeo, grande As Integer If a < b AndAlso b < c Then pequeo = a ElseIf b < a AndAlso b < c Then pequeo = b Else pequeo = c End If If b < a AndAlso c < a Then grande = a ElseIf a < b AndAlso c < b Then grande = b Else grande = c End If Console.WriteLine("El Valor Ms Grande es: {0}", grande) Console.WriteLine("El Valor Ms Pequeo es: {0}", pequeo) End Sub End Module

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

44. Se desea mostrar la tabla de multiplicar de un nmero dado, especificando hasta que nmero quiere que se muestre, esto se realizar un procedimiento externo.

Module Ejercicio44 'Este algoritmo utiliza un procedimiento para realizar y mostrar la tablar 'de multiplicar deseada, indicando de que nmero quiere que se le muestre 'la tabla y hasta que nmero quiere que se le muestre. Sub Main() Dim n, m As Integer Console.Write("Que Tabla de Multiplicar Desea? : ") n = CInt(Console.ReadLine) Console.Write("Cuantos Nmeros Desea Ver? : ") m = CInt(Console.ReadLine) Console.WriteLine() TablaMult(n, m) Console.ReadLine() End Sub Sub TablaMult(ByVal n As Integer, ByVal m As Integer) Dim i As Integer Console.WriteLine("Tabla de Multiplicar del {0}", n) Console.WriteLine() For i = 1 To m Console.WriteLine("{0}{1}{2}{3}{4}", i, " x ", n, " = ", i * n) Next End Sub End Module

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

45. Se desea mostrar los divisores comunes de dos nmeros enviados a un procedimiento.

Module Ejercicio45 'Este algoritmo muestra los divisores comunes de dos nmeros 'enviados. Sub Main() Dim a, b As Integer Console.WriteLine("Divisores Comunes de Dos Nmeros") Console.WriteLine() Console.Write("Ingrese Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese Segundo Nmero: ") b = CInt(Console.ReadLine) Console.WriteLine() Comunes(a, b) Console.ReadLine() End Sub Sub Comunes(ByVal a As Integer, ByVal b As Integer) Dim i As Integer = 1 While (i <= a And i <= b) If a Mod i = 0 AndAlso b Mod i = 0 Then Console.WriteLine(i) End If i=i+1 End While End Sub End Module

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

46. Se desea saber si una fecha es correcta, esta fecha es ingresada por el usuario.

Module Ejercicio46 'Este algoritmo utiliza un procedimiento para verificar si una fecha que se 'halla ingresado es correcta o incorrecta Sub Main() Dim dia, mes, ao As Integer Console.Write("Ingrese el Da: ") dia = CInt(Console.ReadLine) Console.Write("Ingrese el Mes: ") mes = CInt(Console.ReadLine) Console.Write("Ingrese el Ao: ") ao = CInt(Console.ReadLine) Console.WriteLine() FechaOk(dia, mes, ao) Console.ReadLine() End Sub Sub FechaOk(ByVal dia As Integer, ByVal mes As Integer, ByVal ao As Integer) Dim MaxDia As Integer Select Case mes Case 1, 3, 5, 7, 10, 12, 8 MaxDia = 31 Case 4, 6, 9, 11 MaxDia = 30 Case 2 If ao Mod 4 = 0 AndAlso ao Mod 100 <> 0 Or ao Mod 400 = 0 Then MaxDia = 29 Else MaxDia = 28 End If Case Else Console.WriteLine("Mes Incorrecto") Exit Sub End Select If dia > 0 And dia <= MaxDia And mes > 0 And mes < 13 And ao > 0 Then Console.WriteLine("La Fecha Es Correcta") Else Console.WriteLine("La Fecha Es Incorrecta") End If End Sub End Module

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

47. Se desea hallar la longitud del tercer ngulo de un triangulo cualquiera, utilizando el teorema del coseno.

Module Ejercicio47 'Este algoritmo halla la longitud del tercer lado de un triangulo 'utilizando el teorema del coseno. Sub Main() Dim a, b, c, Alfa As Double Console.WriteLine("Soluciona un Tringulo : ") Console.WriteLine("Caso: Lado - ngulo - Lado : ") Console.Write("Ingrese Lado b : ") b = CDbl(Console.ReadLine) Console.Write("Ingrese Lado c : ") c = CDbl(Console.ReadLine) Console.Write("ngulo Formado (En Radianes) : ") Alfa = CDbl(Console.ReadLine) a = LadosAngulos(b, c, Alfa) Console.WriteLine("El Tercer ngulo Mide {0}", a) Console.ReadLine() End Sub Function LadosAngulos(ByVal b As Double, ByVal c As Double, ByVal Alfa As Double) As Double Dim a As Double a = Math.Sqrt(b * b + c * c - 2 * b * c * Math.Cos(Alfa)) LadosAngulos = a End Function End Module

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

48. Se desea ingresar un nmero cualquiera y saber si es un nmero primo.

Module Ejercicio48 'Este algoritmo muestra un mensaje diciendo si un 'nmero es primo o no Sub Main() Dim n As Integer Console.Write("Ingrese el Nmero a Evaluar : ") n = CInt(Console.ReadLine) If EsPrimo(n) = True Then Console.WriteLine("El Nmero SI es Primo") Else Console.WriteLine("El Nmero NO es Primo") End If Console.ReadLine() End Sub Function EsPrimo(ByVal n As Integer) As Boolean Dim i As Integer i=n-1 While (i > 1) If n Mod i = 0 Then EsPrimo = False Exit Function End If i=i-1 End While EsPrimo = True End Function End Module

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

49. Se desea hallar lo siguiente: Si los dos nmeros son mayores que cero halla su producto y en caso contrario hallar su suma, y nos tendr que preguntar si queremos continuar con la aplicacin.

Module Ejercicio49 'Este algoritmo solicita dos nmeros, si los dos son mayores 'que cero halla su producto, en caso contrario halla su suma 'y hace una pregunta sobre si desea continuar con el programa Sub Main() Dim a, b, Resp As Integer Do Console.Clear() Console.ForegroundColor = ConsoleColor.Red Console.WriteLine() Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) If a > 0 AndAlso b > 0 Then Resp = a * b Else Resp = a + b End If Console.WriteLine("El Resultado de La Operacion es: {0}", Resp) Loop While (Pregunta() = True) End Sub Function Pregunta() As Boolean Dim Resp As Char Console.ForegroundColor = ConsoleColor.Green Console.WriteLine() Console.Write("Desea Continuar [s/n] ==> ") Resp = CChar(Console.ReadLine) If Resp = "s" Or Resp = "S" Then Pregunta = True Else Pregunta = False End If End Function End Module

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005 ENUMERACIONES

Una enumeracin es un tipo especial de variable numrica en la que los valores que dicha variable puede tomar, son constantes simblicas, es decir que en lugar de usar un nmero, se usa una palabra (constante) que hace referencia a un nmero, esta constante comenzara desde al valor de 0, por ejemplo veamos un ejemplo mas antiguo que es de los colores.

Estas enumeraciones se declaran desde afuera del Main, expliquemos, tenemos una enumeracin llamada colores, que contendr las siguientes constantes: Azul, Rojo, Verde, que por default el azul contendr el valor de 0, el rojo ser 1 y el verde ser 2, si se preguntan, Podemos cambiar esos valores? La respuesta es si, por ejemplo, ponemos lo siguiente:

Enum Colores Azul = 255 Rojo Verde End Enum

En este caso le asignamos a Azul el valor de 255, entonces el Rojo valdr 256 y el Verde ser 257. La enumeracin Colores ya viene a ser un tipo de dato, as que cuando declaramos una variable, podemos asignarles de tipo Colores.

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

Las enumeraciones pueden ser de varios tipos de datos, como integer, Byte, Long, etc. Cuando declaramos una variable de tipo enumeracin, que hayamos creado, solo podremos asignarles la constante que contenga esta enumeracin, para que me entiendan vean este grfico.

Ahora veamos algunos ejercicios de enumeracin para que les quede un poco mas claro.

50. Esta aplicacin nos muestra que valor contiene cada constante de la enumeracin Colores.

Module Ejercicio50 Enum Colores Azul Rojo Verde End Enum Sub Main() Dim Color As Colores Color = Colores.Azul Console.WriteLine("El Nmero 0 Vale: {0}", Color) Color = Colores.Rojo Console.WriteLine("El Nmero 1 Vale: {0}", Color) Color = Colores.Verde Console.WriteLine("El Nmero 2 Vale: {0}", Color) End Sub End Module

Presionar las teclas CTRL + F5 para poder visualizar bien la ventana a la hora de ejecutar.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

51. Este ejercicio usamos una enumeracin para cambiar de color a la letra de la aplicacin.

Module Ejercicio51 Enum Colores Azul Rojo Verde End Enum Sub Main() Dim Numero As Integer Dim Color As String Console.WriteLine("{0}{1}", Space(30), "ELEGIR COLOR") Console.WriteLine() Console.WriteLine("{0}{1}", Space(5), "[0] Color Azul") Console.WriteLine("{0}{1}", Space(5), "[1] Color Rojo") Console.WriteLine("{0}{1}", Space(5), "[2] Color Verde") Console.WriteLine() Console.Write("Ingrese el Nmero de Color ==> ") Numero = CInt(Console.ReadLine) If Numero < Colores.Azul Or Numero > Colores.Verde Then Console.WriteLine("Color no Vlido") Exit Sub End If Console.WriteLine() Console.Write("Usted Eligio el color ") Select Case Numero Case Colores.Azul Console.ForegroundColor = ConsoleColor.Blue Color = "Azul" Case Colores.Rojo Console.ForegroundColor = ConsoleColor.Red Color = "Rojo" Case Colores.Verde Console.ForegroundColor = ConsoleColor.Green Color = "Verde" End Select Console.WriteLine(Color) Console.ForegroundColor = ConsoleColor.Gray Console.WriteLine() End Sub End Module

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

52. Esta aplicacin nos mostrara que tipo de cuenta es asignada a un cliente usando una enumeracin, teniendo en cuenta que debe de tener mas de 2500 soles en saldo para tener una cuenta corriente.

Module Ejercicio52 Enum TipoCuenta Corriente Ahorro End Enum Sub Main() Dim Cuenta As TipoCuenta Dim Cliente As String Dim Saldo As Integer Console.Write("Ingrese el Nombre del Cliente: ") Cliente = Console.ReadLine Console.Write("Ingrese el saldo de su Cuenta: ") Saldo = CInt(Console.ReadLine) If Saldo < 2500 Then Cuenta = TipoCuenta.Ahorro Else Cuenta = TipoCuenta.Corriente End If Console.WriteLine() Console.WriteLine("{0}{1}", Space(10), "*** DETALLE DE CUENTA DEL CLIENTE ***") Console.WriteLine() Console.WriteLine("Cliente: {0}", Cliente) Console.WriteLine("El tipo de cuenta del cliente es: {0}", Cuenta) Console.WriteLine("El saldo de la cuenta del cliente es: {0}", Saldo) End Sub End Module

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

SOLUCIONES DE LOS EJERCICIOS PROPUESTOS

Ejercicio 01

Module zodiaco 'Este algoritmo me indica a que signo pertenece, segun la 'fecha que uno ingresa. Sub Main() Dim Dia, Mes As Integer Console.Write("Ingrese el Da de Nacimiento: ") Dia = CInt(Console.ReadLine) Console.Write("Ingrese el mes de Nacimiento: ") Mes = CInt(Console.ReadLine) Console.Write("Tu Signo del Zodiaco es: ") Select Case Mes Case 1 If Dia < 21 Then Console.Write("Capricornio") Else Console.Write("Acuario") End If Case 2 If Dia < 20 Then Console.Write("Acuario") Else Console.Write("Piscis") End If Case 3 If Dia < 21 Then Console.Write("Piscis") Else Console.Write("Aries") End If Case 4 If Dia < 21 Then Console.Write("Aries") Else Console.Write("Tauro") End If Case 5 If Dia < 21 Then Console.Write("Tauro") Else Console.Write("Gminis") End If Case 6 If Dia < 22 Then Console.Write("Geminis") Else

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Console.Write("Cancer") End If Case 7 If Dia < 23 Then Console.Write("Cancer") Else Console.Write("Leo") End If Case 8 If Dia < 23 Then Console.Write("Leo") Else Console.Write("Virgo") End If Case 9 If Dia < 23 Then Console.Write("Virgo") Else Console.Write("Libra") End If Case 10 If Dia < 23 Then Console.Write("Libra") Else Console.Write("Escorpio") End If Case 11 If Dia < 22 Then Console.Write("Escorpio") Else Console.Write("Sagitario") End If Case 12 If Dia < 22 Then Console.Write("Sagitario") Else Console.Write("Capricornio") End If Case Else : Console.Write("VIVO, el mes es incorrecto") End Select Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 02

Module Ecuacion 'Este algoritmo halla las dos soluciones de una ecuacin Sub Main() Dim a, b, c, d As Single Dim x1, x2 As Double Console.Write("Ingrese el Valor de a: ") a = CSng(Console.ReadLine) Console.Write("Ingrese el Valor de b: ") b = CSng(Console.ReadLine) Console.Write("Ingrese el Valor de c: ") c = CSng(Console.ReadLine) If a <> 0 Then d=b*b-4*a*c If d >= 0 Then x1 = (-b + Math.Sqrt(d)) / (2 * a) x2 = (-b - Math.Sqrt(d)) / (2 * a) Console.WriteLine("La Primera Solucin es: {0}", x1) Console.WriteLine("La Segunda Solucin es: {0}", x2) Else Console.WriteLine("Las Soluciones son Imaginarias") End If Else Console.WriteLine("El valor de <a> NO puede ser Cero (0)") End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 03 Module Fraccion 'Este algoritmo simplifica una fraccin ingresada por el usuario Sub Main() Dim a, b, i, R1, R2, Q As Integer Console.Write("Ingrese el Numerador: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Denominador: ") b = CInt(Console.ReadLine) i=2 While (i <= a And i < b) Q = CInt(a / i) R1 = a - (Q * i) Q = CInt(b / i) R2 = b - (Q * i) If R1 = 0 And R2 = 0 Then a = CInt(a / i) b = CInt(b / i) Else i=i+1 End If End While Console.WriteLine("La Ecuacin Simplificada es: {0}{1}{2}", a, "/", b) Console.ReadLine() End Sub End Module

Ejercicio 04 Module Notas 'Este algoritmo calfica al alumno, de acuerdo a la nota 'obtenida en el examn Sub Main() Dim Prom As Integer Console.Write("La Nota de tu Examen es: ") Prom = CInt(Console.ReadLine) If Prom < 0 Xor Prom > 20 Then Console.WriteLine("VIVO no Mientas") ElseIf Prom <= 5 Then Console.WriteLine("PSIMO, Estas ya Difunto") ElseIf Prom <= 10 Then Console.WriteLine("DEFICIENTE, Estas en Capilla") ElseIf Prom <= 15 Then Console.WriteLine("REGULAR, te Defiendes") Else Console.WriteLine("BUENO, Felicitaciones") End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 05 Module Hora 'Este algoritmo halla la hora correspondiente al siguiente 'segundo que pasa Sub Main() Dim h, m, s As Integer Console.Write("Ingrese la Hora: ") h = CInt(Console.ReadLine) Console.Write("Ingrese los Minutos: ") m = CInt(Console.ReadLine) Console.Write("Ingrese los Segundos: ") s = CInt(Console.ReadLine) s=s+1 If s = 60 Then s=0 m=m+1 If m = 60 Then m=0 h=h+1 If h = 24 Then h=0 End If End If End If Console.WriteLine("Hora Correspondiente al Siguiente Segundo : {0}{1}{2}{3}{4}", h, ":", m, ":", s) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 06 Module Sueldo 'Este algoritmo nos solicita que ingresemos el sueldo bruto 'para despus mostrarnos el salario neto y su descuento Sub Main() Dim sb, sn, d As Single Console.Write("Ingrese el Sueldo Bruto: ") sb = CSng(Console.ReadLine) If sb < 0 Then Console.WriteLine("Sueldo Bruto Incorrecto") Console.ReadLine() Exit Sub Else If sb <= 1000 Then d = CSng(0.1 * sb) Else If sb <= 2000 Then d = CSng(100 + 0.05 * (sb - 1000)) Else d = CSng(150 + 0.03 * (sb - 2000)) End If End If End If sn = sb - d Console.WriteLine("El Salario Bruto es: {0}", sb) Console.WriteLine("El Salario Neto es: {0}", sn) Console.WriteLine("El Descuento es: {0}", d) Console.ReadLine() End Sub End Module

Ejercicio 07 Module Signo 'Este algoritmo nos halla el signo del nmero a evaluar 'y nos muestra la parte entera y fraccionaria del nmero Sub Main() Dim x As Single Console.Write("Ingrese Numero a Evaluar: ") x = CSng(Console.ReadLine) If x >= 0 Then Console.WriteLine("Signo Positivo") Else Console.WriteLine("Signo Negativo") End If Console.WriteLine("Parte Entera: {0}", Math.Floor(x)) Console.WriteLine("Parte Fraccionaria: {0}", x - Math.Floor(x)) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

Ejercicio 08

Module Algoritmo 'Este algoritmo nos halla una funcin dada Sub Main() Dim x As Single Dim y As Double Console.Write("Ingrese el Valor de x: ") x = CSng(Console.ReadLine) If x <= 0 Then y = x + Math.Sin(x) Else If x <= 8 Then y = 2 * x - Math.Log(x) Else If x >= 8 Then y = Math.Log10(x - 8) End If End If End If Console.WriteLine("La Funcin Vale -> {0}", y) Console.WriteLine("Cuando x Vale -> {0}", x) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

Ejercicio 09

Module Triangulo 'Este algoritmo nos solicita que ingresemos tres nmeros 'y no dice si forman un triangulo y nos dice que tipo 'de triangulo se ha formado Sub Main() Dim a, b, c As Single Console.WriteLine("Ingrese Tres Numeros") Console.Write("Ingrese el Primer Nmero: ") a = CSng(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CSng(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CSng(Console.ReadLine) If a < b + c AndAlso b < a + c AndAlso c < a + b Then If a = b AndAlso b = c Then Console.WriteLine("Triangulo Equilatero") ElseIf a = b Or b = c Or a = c Then Console.WriteLine("Triangulo Issceles") Else Console.WriteLine("Triangulo Escaleno") End If Else Console.WriteLine("No Forman un Triangulo") End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 10

Module Mayor 'Este algoritmo nos indica el mayor de tres nmeros cualquiera Sub Main() Dim a, b, c, m As Integer Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CInt(Console.ReadLine) If a >= b Then If a >= c Then m=a Else m=c End If Else If b >= c Then m=b Else m=c End If End If Console.WriteLine("El Mayor Nmero es: {0}", m) Console.ReadLine() End Sub End Module

Ejercicio 11

Module Expresion 'Este algoritmo no indica si una funcion es discontinua, desde 'cualquier valor que ingresemos a X Sub Main() Dim x, y As Single Console.Write("Ingrese el Valor de x: ") x = CSng(Console.ReadLine) If x = 5 Or x = -5 Then Console.WriteLine("La Funcin es Discontinua") Else y = (x - 3) / (x * x - 25) Console.WriteLine("La Funcin Vale: {0}{1}{2}", y, " Cuando x Vale: ", x) End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 12

Module Multiplo 'Este algoritmo nos muestra si los nmeros ingresados son 'multiplos simultaneamente de cualquier nmero ingresado Sub Main() Dim n, d1, d2 As Integer 'Dim q, r1, r2 As Integer Console.Write("Ingrese el Nmero: ") n = CInt(Console.ReadLine) Console.Write("Ingrese el Primer Posible Divisor: ") d1 = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Posible Divisor: ") d2 = CInt(Console.ReadLine) 'Primera Forma If n Mod d1 = 0 And n Mod d2 = 0 Then Console.WriteLine("Es Multiplo de {0}{1}{2}{3}", d1, " y de ", d2, " Simultaneamente") Else Console.WriteLine("No es Multiplo de {0}{1}{2}{3}", d1, " y de ", d2, " Simultaneamente") End If 'Segunda Forma 'q = CInt(n / d1) 'r1 = n - (q * d1) 'q = CInt(n / d2) 'r2 = n - (q * d2) 'If r1 = 0 AndAlso r2 = 0 Then 'Console.WriteLine("Es Multiplo de {0}{1}{2}{3}", d1, " y de ", d2, " Simultaneamente") 'Else 'Console.WriteLine("No es Multiplo de {0}{1}{2}{3}", d1, " y de ", d2, " Simultaneamente") 'End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 13

Module Bisiesto 'Este algoritmo nos indica si un ao es bisiesto o no Sub Main() Dim ao As Integer Console.Write("Ingrese el Ao: ") ao = CInt(Console.ReadLine) If ao Mod 4 = 0 And ao Mod 100 <> 0 Or ao Mod 400 = 0 Then Console.WriteLine("El Ao {0}{1}", ao, " es Bisiesto") Else Console.WriteLine("El Ao {0}{1}", ao, " no es Bisiesto") End If Console.ReadLine() End Sub End Module

Ejercicio 14

Module Ordena 'Este algoritmo ordena tres nmeros cualquiera de mayor a menor Sub Main() Dim a, b, c As Integer Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CInt(Console.ReadLine) Console.WriteLine("Los Nmero Ordenados de Mayor a Menor son: ") If a >= b And b >= c Then Console.WriteLine(" {0}{1}{2}{3}{4}", a, " ; ", b, " ; ", c) ElseIf a >= c And c >= b Then Console.WriteLine(" {0}{1}{2}{3}{4}", a, " ; ", c, " ; ", b) ElseIf b >= a And a >= c Then Console.WriteLine(" {0}{1}{2}{3}{4}", b, " ; ", a, " ; ", c) ElseIf b >= c And c >= a Then Console.WriteLine(" {0}{1}{2}{3}{4}", b, " ; ", c, " ; ", a) ElseIf c >= a And a >= b Then Console.WriteLine(" {0}{1}{2}{3}{4}", c, " ; ", a, " ; ", b) Else Console.WriteLine(" {0}{1}{2}{3}{4}", c, " ; ", b, " ; ", a) End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 15

Module Ecuacion 'Este algoritmo nos indica si el coeficiente de X es una 'ecuacin de primer grado Sub Main() Dim a, b, x As Single Console.Write("Ingrese el Coeficiente de x: ") a = CSng(Console.ReadLine) Console.Write("Ingrese el Termino Independiente: ") b = CSng(Console.ReadLine) If a = 0 Then Console.WriteLine("No es una Ecuacin de Primer Grado") Else x = CSng(-b / a) Console.Write("La Raz es: {0}", x) End If Console.ReadLine() End Sub End Module

Ejercicio 16

Module Producto 'Si dos nmeros son positivos calcule su producto 'En caso contrario calcule su suma Sub Main() Dim a, b, Res As Integer Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) If a > 0 AndAlso b > 0 Then Res = a * b Else Res = a + b End If Console.WriteLine("El Resultado de la Operacin es: {0}", Res) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 17

Module Menor 'Sin usar estructuras repetitivas, lea 5 nmeros y 'Determine el menor Sub Main() Dim a, b, c, d, e, Menor As Integer Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CInt(Console.ReadLine) Console.Write("Ingrese el Cuarto Nmero: ") d = CInt(Console.ReadLine) Console.Write("Ingrese el Quinto Nmero: ") e = CInt(Console.ReadLine) If a < b AndAlso a < c AndAlso a < d AndAlso a < e Then Menor = a ElseIf b < a AndAlso b < c AndAlso b < d AndAlso b < e Then Menor = b ElseIf c < a AndAlso c < b AndAlso c < d AndAlso c < e Then Menor = c ElseIf d < a AndAlso d < b AndAlso d < c AndAlso d < e Then Menor = d Else Menor = e End If Console.WriteLine("El Menor Nmero Ingresado es: {0}", Menor) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 29

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 18 Module Ordenados 'Lea 5 nmeros y diga si estn ordenados ascendentemente Sub Main() Dim a, b, c, d, e As Integer Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CInt(Console.ReadLine) Console.Write("Ingrese el Cuarto Nmero: ") d = CInt(Console.ReadLine) Console.Write("Ingrese el Quinto Nmero: ") e = CInt(Console.ReadLine) If a < b AndAlso b < c AndAlso c < d AndAlso d < e Then Console.WriteLine("Estan Ordenados Ascendentemente") Else Console.WriteLine("No Estan Ordenados Ascendentemente") End If Console.ReadLine() End Sub End Module Ejercicio 19 Module Area 'Este programa lee tres nmeros a, b, c y determina 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))^0.5 Sub Main() Dim a, b, c As Integer Dim p, Area, Temp As Double Console.Write("Ingrese el Primer Nmero: ") a = CInt(Console.ReadLine) Console.Write("Ingrese el Segundo Nmero: ") b = CInt(Console.ReadLine) Console.Write("Ingrese el Tercer Nmero: ") c = CInt(Console.ReadLine) p = (a + b + c) / 2 If a < p AndAlso b < p AndAlso c < p Then Temp = p * (p - a) * (p - b) * (p - c) Area = Math.Sqrt(Temp) Console.WriteLine("Si Forman Un Triangulo") Console.WriteLine("El rea del Triangulo es: {0}", Area) Else Console.WriteLine("No Forman Un Triangulo") End If Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 30

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005


Ejercicio 20

Module Funcion 'Este programa nos permite evaluar la funcin: ' x^2+1 Si x <= 8 ' x^2+3x+2 Si 0 < x < 3 ' x+1 Si x >= 3 Sub Main() Dim x As Integer Dim Res As Double Console.Write("Ingrese el Valor de x: ") x = CInt(Console.ReadLine) If x <= 0 Then Res = Math.Pow(x, 2) + 1 ElseIf 0 < x AndAlso x < 3 Then Res = Math.Pow(x, 2) + (3 * x) + 2 ElseIf x >= 3 Then Res = x + 1 End If Console.WriteLine("El Resultado de La Funcin: {0}", Res) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 31

Lenguaje de Programacin Capitulo VII Programando con Visual Basic 2005

Bueno seores con esto acaba la Cuarta entrega de este manual, se que ha sido muy poco, pero les estoy dejando las 20 soluciones de los ejercicios de la tercera entrega, en la prxima entrega acabaremos con lo que es consola de aplicacin para empezar a llevar la consola de Windows, en la prxima entrega tocaremos lo siguiente, si o si: ! ! ! ! Programacin Orientada a Objetos Estructuras Polimorfismo Clases, y todo lo que nos falte

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, 09 de Febrero de 2006

Joel Martin Chuco Marrufo 32

Capitulo VIII

INDICE

CAPITULO VIII

Paradigmas Paradigmas Por Procedimientos Paradigmas Declarativos Paradigmas Funcional Paradigma Orientado a Objetos Programacin Programacin Clsica Programacin Modular Ejercicio 53 Ejercicio 54 Programacin Orientada a Objetos Introduccin Qu es la Programacin Orientada a Objetos? Los Tres Pilares de la Programacin ! ! ! Las Clases Los Objetos Los Miembros de Una Clase Crear o Definir Una Clase Definir los Miembros de Una Clase Crear un Objeto a Partir de Una Clase Acceder a Los Miembros de Una Clase Ejemplo de Usar la Herencia Las Estructuras Herencia Encapsulacin Polimorfismo

01 01 01 01 01 02 02 02 03 05 06 06 06 07 07 07 08 08 08 09 09 10 10 11 11 14

El Nombre de Espacios (NameSpace) Qu es un NameSpace? Qu Finalidad Tiene el Uso de los Namespace? Anidar Espacios de Nombres Cmo Acceder a los Tipos Declarados Dentro de un Namespace? Ejemplos de Cmo Usar Los Namespace Ejercicio 55 Ejercicio 56 Ejercicio 57 Ejercicio 58 Ejercicio 59 Ejercicio 60 Despedida

14 14 16 16 16 17 20 21 22 24 25 27 29

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

PARADIGMAS

Paradigmas por Procedimiento

Son aquellas llamadas tambin paradigmas interactivos, representan al enfoque tradicional de la programacin en donde los programas se conciben como mdulos que realizan una determinada tarea o accin, para posteriormente obtener una salida o resultado.

Paradigmas Declarativos

Este paradigma hace hincapi a la pregunta Cul es el problema?, sin interesarle al programador, que procedimiento necesita para resolver el problema, pues as tenemos el GPS, sistemas simulados de propsitos generales, que permite modelar el problema, por ejemplo los problemas particulares como el problema de las colas de un banco, simular el programa de mantenimiento de una fbrica, el problema de producir N piezas en un determinado proceso productivo.

Paradigma Funcional

Plantea el proceso de creacin de software, como un sistema de cajas negras, cada uno de las cuales acepta una entrada por arriba y produce salidas por abajo, desde el punto de vista matemtico, dichas cajas son funciones por lo que ha de ser un paradigma funcional.

Paradigma Orientado a Objetos

Es un paradigma que ha adquirido popularidad en los ltimos aos que es el resultado de la evolucin de la programacin estructurada, en la cual se subdivide en mdulos y que cada uno de ellos realiza una determinada tarea, ese mismo concepto se aplica a los objetos para que cumplan una determinada accin o tarea, pues as tenemos los lenguajes de programacin C, C++, Java. Conduce a paradigma orientado a objetos, donde sin duda es una evolucin de la programacin estructurada y adems los conceptos fundamentales son: clase, herencia, polimorfismo, reutilizacin. Los lenguajes de programacin orientada a objetos son SmallTalk, Simula, C++ y Java.

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

PROGRAMACIN

Programacin Clsica

Surge por los aos 50 y 60, es de tipo monoltica donde si el programa era grande, era difcil de corregir, y su mantenimiento era muy costoso.

Programacin Modular

Surge a principios de los 70, es uno de los mtodos de diseo ms flexible y potentes para mejorar la productividad de un programa. Todo programa contiene un mdulo denominado programa principal, que controla todo lo que sucede, es decir transfiere el control a su mdulo, de modo que ellos pueden ejecutar funciones, las tareas de los mdulos se sigue dividiendo hasta que cada uno tenga exclusivamente una funcin especfica, a este tipo de programacin se le conoce como el mtodo Divide y Venceras (Top Down).

Raz

Mdulo 1

Mdulo 2

Mdulo 3

Mdulo 4

Mdulo 5

Mdulo 6

Mdulo 7

Mdulo 8

Ahora veamos un ejercicio utilizando una programacin modular.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

53. Esta aplicacin utiliza varios procedimientos para realizar una cierta tarea, utilizando la programacin modular.

Module Ejercicio53 'Programa que muestra un men de opciones Sub Main() Dim opc, Numero As Integer Call Menu() Console.WriteLine() Console.Write("Elija Su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() While opc <> 4 Select Case opc Case 1 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call Pares(Numero) Case 2 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call EsPrimo(Numero) Case 3 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call Factorial(Numero) Case Else Console.WriteLine("Opcin No Vlida") Console.Clear() Call Menu() End Select Console.WriteLine() Console.Write("Elija Su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub Sub Menu() Console.WriteLine() Console.WriteLine("{0}{1}", Space(30), "MEN DE OPCIONES") Console.WriteLine() Console.WriteLine("[1] Pares") Console.WriteLine("[2] Es Primo") Console.WriteLine("[3] Factorial") Console.WriteLine("[4] Salir") Console.WriteLine() End Sub

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Sub Pares(ByVal Numero As Integer) Dim i As Integer = 1 Console.WriteLine() Console.WriteLine("Los Pares Menores que {0} Son: ", Numero) Console.WriteLine() While i < Numero If i Mod 2 = 0 Then Console.WriteLine("{0}", i) End If i=i+1 End While End Sub Sub EsPrimo(ByVal Numero As Integer) Dim Primo As Boolean If Numero < 6 And Numero <> 4 Then Primo = True ElseIf Numero Mod 2 = 0 Or Numero Mod 3 = 0 Or Numero Mod 5 = 0 Then Primo = False Else Primo = True End If Console.WriteLine() If Primo = True Then Console.WriteLine("El Nmero es Primo") Else Console.WriteLine("El Nmero No Es Primo") End If End Sub Sub Factorial(ByVal Numero As Integer) Dim k As Integer Dim r As Long = 1 For k = 1 To Numero r=r*k Next Console.WriteLine() Console.WriteLine("El Factorial del Nmero es : {0}", r) End Sub End Module

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

54. Esta aplicacin utiliza procedimientos y funciones para realizar una cierta tarea, utilizando la programacin modular.

Module Ejercicio54 Sub Main() Dim opc, Num As Integer Call Menu() Console.Write("Elija su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() While opc <> 4 Select Case opc Case 1 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("El rea de la circunferencia es: {0}", Area(Num)) Case 2 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("El volumen de la esfera es: {0}", Volumen(Num)) Case 3 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("La longitud de la circunferencia es: {0}", Circunferencia(Num)) Case Else Console.WriteLine("Opcin No Vlida") End Select Console.ReadLine() Console.Clear() Call Menu() Console.Write("Elija su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub Sub Menu() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine() End Sub

MEN DE OPCIONES", Space(25))

[1] [2] [3] [4]

El rea de una circunferencia", Space(10)) El volumen de una esfera", Space(10)) La longitud de una circunferencia", Space(10)) Salir del Programa", Space(10))

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Function Area(ByVal Num As Integer) As Double Area = (3.14159 * (Num * Num)) End Function Function Volumen(ByVal Num As Integer) As Double Volumen = (4 * (3.14159 * (Math.Pow(Num, 3)))) / 3 End Function Function Circunferencia(ByVal Num As Integer) As Double Circunferencia = 2 * (3.14159 * Num) End Function End Module

PROGRAMACIN ORIENTADA A OBJETOS

Introduccin

La programacin orientada a objetos es un importante conjunto de tcnicas que pueden utilizarse para hacer el desarrollo de programas eficientes en la programacin orientada a objetos, los objetos son los elementos principales de construccin sin embargo el uso de objetos en un programa no significa que estn programando en un modo orientado a objetos, lo que cuenta es el sistema, en el cual los objetos se interconectan y se comunican entre s.

Qu es la Programacin Orientada a Objetos?

La programacin orientada a objetos es una tcnica estructurada siendo los objetos los principales elementos de construccin. La programacin orientada a objetos es el producto de la evolucin de paradigma estructurada a fin de conseguir que el software sea un producto industrial, la programacin orientada a objetos es una programacin que enva mensajes a los objetos segn Grade Booch, autor del mtodo orientado a objetos, define a esta programacin como: Un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de las cuales representa una instancia de alguna clase y cuyas clases son todos los miembros de una jerarqua de clases unidos mediante relacin de herencia. Sea de tipo de dato abstracto (IDA). Todo .NET Framework est basado en clases (u objetos). A diferencia de las versiones anteriores de Visual Basic, la versin .NET de este lenguaje basa su funcionamiento casi exclusivamente en las clases contenidas en .NET Framework, adems casi sin ningn tipo de limitaciones.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Los tres pilares de la Programacin Orientada a Objetos Segn se dice por ah, cualquier lenguaje basado en objetos debe cumplir estos tres requisitos: ! ! ! Herencia Encapsulacin Polimorfismo

Herencia

La herencia es la capacidad de poder derivar una clase a partir de otra, la clase inicial se usa como clase base y la clase derivada es un nuevo tipo completamente de datos que incorpora todos los datos miembros y funciones miembros de la clase original, con cualquier dato nuevo o funcin miembro nueva y unidos en clase derivada. La clase base se conoce como clase padre o superclase y la clase derivada como clase hija o subclase. Para que lo entiendas mejor, veamos un ejemplo clsico: Supongamos que tenemos una clase Gato que est derivada de la clase Animal. El Gato hereda de Animal todas las caractersticas comunes a los animales, adems de aadirle algunas caractersticas particulares a su condicin felina. Podemos decir que un Gato es un Animal, lo mismo que un Perro es un Animal, ambos estn derivados (han heredado) de la clase Animal, pero cada uno de ellos es diferente, aunque en el fondo los dos son animales. Esto es herencia: usar una clase base (Animal) y poder ampliarla sin perder nada de lo heredado, pudiendo ampliar la clase de la que se ha derivado (o heredado).

Encapsulacin

La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos. La encapsulacin es la capacidad de separar la implementacin de la interfaz de una clase del cdigo que hace posible esa implementacin. Esto realmente sera una especie de abstraccin, ya que no nos importa cmo est codificado el funcionamiento de una clase, lo nico que nos debe interesar es cmo funciona... Para que nos vayamos entendiendo, cuando digo: la implementacin de la interfaz de una clase, me refiero a los miembros de esa clase: mtodos, propiedades, eventos, etc. Es decir, lo que la clase es capaz de hacer. Cuando usamos las clases, stas tienen una serie de caractersticas (los datos que manipula) as como una serie de comportamientos (las acciones a realizar con esos datos). Pues la encapsulacin es esa capacidad de la clase de ocultarnos sus interioridades para que slo veamos lo que tenemos que ver, sin tener que preocuparnos de cmo est codificada para que haga lo que hace... simplemente nos debe importar que lo haga.

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Polimorfismo

El polimorfismo permite que diferentes objetos respondan de modo diferente al mismo mensaje, por lo cual se dice que adquiere su mxima potencia, cuando se utiliza en unin a la herencia, el polimorfismo permite que el mismo nombre de mtodo emboque una operacin a los objetos de una clase padre y una operacin diferente en los objetos de la clase derivada. El Polimorfismo nos permite usar miembros de distintas clases de forma genrica sin tener que preocuparnos si pertenece a una clase o a otra. Siguiendo con el ejemplo de los animales, si el Gato y el Perro pueden morder podramos tener un "animal" que muerda sin importarnos que sea el Gato o el Perro, simplemente podramos usar el mtodo Morder ya que ambos animales tienen esa caracterstica "animal mordedor".

LAS CLASES

Todo lo que tiene el .NET Framework, en realidad son clases. Una clase no es ni ms ni menos que cdigo. Aunque dicho de esta forma, cualquier programa sera una clase. Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes: los datos que dicha clase puede manipular o contener y la forma de acceder a esos datos. Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos de dicho cliente y por otro la forma de acceder o modificar esos datos. En el primer caso, los datos del Cliente, como por ejemplo el nombre, domicilio etc., estarn representados por una serie de campos o propiedades, mientras que la forma de modificar o acceder a esa informacin del Cliente se har por medio de mtodos. Esas propiedades o caractersticas y las acciones a realizar son las que definen a una clase. Los Objetos Por un lado tenemos una clase que es la que define un "algo" con lo que podemos trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que exista. Aqu es cuando entran en juego los objetos, ya que un objeto es una clase que tiene informacin real. Digamos que la clase es la "plantilla" a partir de la cual podemos crear un objeto en la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por cada cliente que tengamos en nuestra cartera de clientes, pero la clase slo ser una. Dicho de otra forma: podemos tener varias instancias en memoria de una clase. Una instancia es un objeto (los datos) creado a partir de una clase (la plantilla o el cdigo).

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Para entender mejor todo este galimatas, desglosemos las clases: Los miembros de una clase Las clases contienen datos, esos datos suelen estar contenidos en variables. A esas variables cuando pertenecen a una clase, se les llama: campos o propiedades. Por ejemplo, el nombre de un cliente sera una propiedad de la clase Cliente. Ese nombre lo almacenaremos en una variable de tipo String, de dicha variable podemos decir que es el "campo" de la clase que representa al nombre del cliente. Por otro lado, si queremos mostrar el contenido de los campos que contiene la clase Cliente, usaremos un procedimiento que nos permita mostrarlos, ese procedimiento ser un mtodo de la clase Cliente. Por tanto, los miembros de una clase son las propiedades (los datos) y los mtodos las acciones a realizar con esos datos. Como te he comentado antes, el cdigo que internamente usemos para almacenar esos datos o para, por ejemplo, mostrarlos, es algo que no debe preocuparnos mucho, simplemente sabemos que podemos almacenar esa informacin (en las propiedades de la clase) y que tenemos formas de acceder a ella, (mediante los mtodos de dicha clase), eso es "abstraccin" o encapsulacin. Crear o definir una clase Al igual que existen instrucciones para declarar o definir una variable o cualquier otro elemento de un programa de Visual Basic, existen instrucciones que nos permiten crear o definir una clase. Para crear una clase debemos usar la instruccin Class seguida del nombre que tendr dicha clase, por ejemplo: Class Cliente A continuacin escribiremos el cdigo que necesitemos para implementar las propiedades y mtodos de esa clase, pero para que Visual Basic sepa que ya hemos terminado de definir la clase, usaremos una instruccin de cierre: End Class Por tanto, todo lo que est entre Class <nombre> y End Class ser la definicin de dicha clase.

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Definir los miembros de una clase Para definir los miembros de una clase, escribiremos dentro del "bloque" de definicin de la clase, las declaraciones y procedimientos que creamos convenientes. Veamos un ejemplo: Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class En este caso, la lnea Public Nombre As String, estara definiendo una propiedad o "campo" pblico de la clase Cliente. Por otro lado, el procedimiento Mostrar sera un mtodo de dicha clase, en esta caso, nos permitira mostrar la informacin contenida en la clase Cliente. Esta es la forma ms simple de definir una clase. Y normalmente lo haremos siempre as, por tanto podemos comprobar que es muy fcil definir una clase, as como los miembros de dicha clase. Pero no slo de clases vive el Visual Basic... o lo que es lo mismo, para que nos sirve una clase si no sabemos crear un objeto basado en esa clase...? As que, sepamos cmo crearlos. Crear un objeto a partir de una clase Como te he comentado antes, las clases definen las caractersticas y la forma de acceder a los datos que contendr, pero slo eso: los define. Para que podamos asignar informacin a una clase y poder usar los mtodos de la misma, tenemos que crear un objeto basado en esa clase, o lo que es lo mismo: tenemos que crear una nueva instancia en la memoria de dicha clase. Para ello, haremos lo siguiente: Definimos una variable capaz de contener un objeto del tipo de la clase, esto lo haremos como con cualquier variable: Dim cli As Cliente Pero, a diferencia de las variables basadas en los tipos visto hasta ahora, para poder crear un objeto basado en una clase, necesitamos algo ms de cdigo que nos permita "crear" ese objeto en la memoria, ya que con el cdigo usado en la lnea anterior, simplemente estaramos definiendo una variable que es capaz de contener un objeto de ese tipo, pero an no existe ningn objeto en la memoria, para ello tendremos que usar el siguiente cdigo: cli = New Cliente()

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Con esto le estamos diciendo al Visual Basic: crea un nuevo objeto en la memoria del tipo Cliente. Estos dos pasos los podemos simplificar de la siguiente forma: Dim cli As New Cliente() Acceder a los miembros de una clase Para acceder a los miembros de una clase (propiedades o mtodos) usaremos la variable que apunta al objeto creado a partir de esa clase, seguida de un punto y el miembro al que queremos acceder, por ejemplo, para asignar el nombre al objeto cli, usaremos este cdigo: cli.Nombre = "Visual Basic" Es decir, de la misma forma que haramos con cualquier otra variable, pero indicando el objeto al que pertenece dicha variable. Como podrs comprobar, esto ya lo hemos estado usando anteriormente tanto en la clase Console como en las otras clases que hemos usado en entregas anteriores, incluyendo los arrays. Y para acceder al mtodo Mostrar: cli.Mostrar() Ejemplo de cmo usar la herencia Para poder usar la herencia en nuestras clases, debemos indicar al Visual Basic que esa es nuestra intencin, para ello disponemos de la instruccin Inherits, la cual se usa seguida del nombre de la clase de la que queremos heredar. Veamos un ejemplo. Empezaremos definiendo una clase "base" la cual ser la que heredaremos en otra clase. Ya sabemos cmo definir una clase, aunque para este ejemplo, usaremos la clase Cliente que vimos anteriormente, despus crearemos otra, llamada ClienteMoroso la cual heredar todas las caractersticas de la clase Cliente adems de aadirle una propiedad a esa clase derivada de Cliente. Veamos el cdigo de estas dos clases. Para ello crea un nuevo proyecto del tipo consola y escribe estas lneas al principio o al final del fichero que el IDE aade de forma predeterminada. Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class Class ClienteMoroso Inherits Cliente

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Public Deuda As Decimal End Class Como puedes comprobar, para que la clase ClienteMoroso herede la clase Cliente, he usado Inherits Cliente, con esta lnea, (la cual debera ser la primera lnea de cdigo despus de la declaracin de la clase), le estamos indicando al VB que nuestra intencin es poder tener todas las caractersticas que la clase Cliente tiene. Haciendo esto, aadiremos a la clase ClienteMoroso la propiedad Nombre y el mtodo Mostrar, aunque tambin tendremos la nueva propiedad que hemos aadido: Deuda. Ahora vamos a ver cmo podemos usar estas clases, para ello vamos a aadir cdigo en el procedimiento Main del mdulo del proyecto: Module Module1 Sub Main() Dim cli As New Cliente() Dim cliM As New ClienteMoroso() ' cli.Nombre = "Jos" cliM.Nombre = "Luis" cliM.Deuda = 2000 ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine() End Sub End Module Lo que hemos hecho es crear un objeto basado en la clase Cliente y otro basado en ClienteMoroso. Le asignamos el nombre a ambos objetos y a la variable cliM (la del ClienteMoroso) le asignamos un valor a la propiedad Deuda. Fjate que en la clase ClienteMoroso no hemos definido ninguna propiedad llamada Nombre, pero esto es lo que nos permite hacer la herencia: heredar las propiedades y mtodos de la clase base. Por tanto podemos usar esa propiedad como si la hubisemos definido en esa clase. Lo mismo ocurre con los mtodos, el mtodo Mostrar no est definido en la clase ClienteMoroso, pero si que lo est en la clase Cliente y como resulta que ClienteMoroso hereda todos los miembros de la clase Cliente, tambin hereda ese mtodo. La salida de este programa sera la siguiente: Usando Mostrar de la clase Cliente El nombre del cliente: Jos Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Luis La deuda del moroso es: 2000

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Ahora veamos cmo podramos hacer uso del polimorfismo o al menos una de las formas que nos permite el .NET Framework. Teniendo ese mismo cdigo que define las dos clases, podramos hacer lo siguiente: Sub Main() Dim cli As Cliente Dim cliM As New ClienteMoroso() ' cliM.Nombre = "Luis" cliM.Deuda = 2000 cli = cliM ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine() End Sub En este caso, la variable cli simplemente se ha declarado como del tipo Cliente, pero no se ha creado un nuevo objeto, simplemente hemos asignado a esa variable el contenido de la variable cliM. Con esto lo que hacemos es asignar a esa variable el contenido de la clase ClienteMoroso, pero como comprenders, la clase Cliente "no entiende" nada de las nuevas propiedades implementadas en la clase derivada, por tanto slo se podr acceder a la parte que es comn a esas dos clases: la parte heredada de la clase Cliente. Realmente las dos variables apuntan a un mismo objeto, por eso al usar el mtodo Mostrar se muestra lo mismo. Adems de que si hacemos cualquier cambio a la propiedad Nombre, al existir slo un objeto en la memoria, ese cambio afectar a ambas variables. Para comprobarlo, aade este cdigo antes de la lnea Console.ReadLine(): Console.WriteLine() cli.Nombre = "Juan" Console.WriteLine("Despus de asignar un nuevo nombre a cli.Nombre") cli.Mostrar() cliM.Mostrar() La salida de este nuevo cdigo, sera la siguiente: Usando Mostrar de la clase Cliente El nombre del cliente: Pepe Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Pepe La deuda del moroso es: 2000 Despus de asignar un nuevo nombre a cli.Nombre El nombre del cliente: Juan El nombre del cliente: Juan

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Como puedes comprobar, al cambiar en una de las variables el contenido de la propiedad Nombre, ese cambio afecta a las dos variables, pero eso no es porque haya nada mgico ni ningn fallo, es por lo que te coment antes: slo existe un objeto en la memoria y las dos variables acceden al mismo objeto, por tanto, cualquier cambio efectuado en ellas, se reflejar en ambas variables por la sencilla razn de que slo hay un objeto en memoria. A este tipo de variables se las llama variables por referencia, ya que hacen referencia o apuntan a un objeto que est en la memoria. A las variables que antes hemos estado viendo se las llama variables por valor, ya que cada una de esas variables tienen asociado un valor que es independiente de los dems.

LAS ESTRUCTURAS

Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que veremos en otra ocasin con ms detalle, pero que se comportan casi como las clases, permitiendo tener mtodos, propiedades, etc., la diferencia principal entre las clases y las estructuras es que stas ltimas son tipos por valor, mientras que las clases son tipos por referencia. Las estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y tambin dentro de otras estructuras e incluso dentro de clases y mdulos.

LOS NOMBRE DE ESPACIOS

Qu es un Namespace? Un Namespace es una forma de agrupar clases (tipos) que estn relacionadas de alguna forma. El uso de los espacios de nombres nos permitir tener nuestros ensamblados agrupados segn la tarea para la que los hemos programado. De esta forma, si escribimos ensamblados que accedern al disco, los podemos agrupar para tenerlos en sitio diferente a los que, por ejemplo, accedan a una base de datos. Eso mismo es lo que se hace en las clases base de .NET Framework y por esa razn existen los espacios de nombres System.IO y System.Data, por poner slo dos. Cada vez que creamos un proyecto con Visual Studio .NET de forma automtica se crea un espacio de nombres para nuestra aplicacin. Por tanto todos los tipos (clases, estructuras, enumeraciones, etc.) que definamos en dicho proyecto estarn incluidos dentro de ese espacio de nombres. Aunque el editor de Visual Studio no nos muestra que todo esto es as, ya que para crear o definir un espacio de nombres debemos usar la instruccin Namespace y marcar el final de dicha definicin usando End Namespace, por tanto es como si el IDE aadiera esas instrucciones por nosotros. Por tanto es importante saber que, aunque no lo veamos, todos nuestros proyectos estarn dentro de un espacio de nombres. Dicho Namespace se llamar de la misma forma que nuestro proyecto, salvo si tiene espacios, en ese caso se cambiarn los espacios (o caracteres no vlidos en un nombre de .NET) por un guin bajo.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


El Visual Studio define el espacio de nombres "predeterminado" de nuestro proyecto en las propiedades del proyecto. As que si quieres cambiar el Namespace predeterminado del proyecto, puedes hacerlo modificando dicho valor. Para poder hacer esto, muestra las propiedades del proyecto: ! ! ! Selecciona el proyecto en el explorador de soluciones (Solution Explorer) En el men Proyecto (Project), selecciona Propiedades (Properties) En la ficha General (que ser la que se muestre por defecto), el espacio de nombres estar en: Espacio de nombres de la raz (Root namespace) tal como podemos ver en la figura 1.

Figura 1: El espacio de nombres predeterminado de un proyecto de VB .NET

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Qu finalidad tiene el uso de los Namespace? El escribir nuestro cdigo dentro de un bloque Namespace tiene por finalidad, el poder mantener una especie de jerarqua. Para que nos entendamos mejor, podramos comparar los espacios de nombres con los directorios de un disco. En cada directorio tendremos ficheros que de alguna forma estn relacionados, de esta forma no mezclaremos los ficheros de msica con los de imgenes ni con los proyectos de Visual Basic, por poner algunos ejemplos. Pues lo mismo ocurre con las jerarquas creadas con los Namespace, de forma que podamos tener de alguna forma separados unos tipos de datos (clases, etc.) de otros. Anidar espacios de nombres: Espacios de nombres dentro de otros espacios de nombres Siguiendo con el ejemplo de los directorios, es habitual que dentro de un directorio podamos tener otros directorios, de forma que tengamos ficheros que estando relacionados con el directorio principal no queremos que se mezclen con el resto de ficheros. Pues con los Namespace ocurre lo mismo, podemos declarar bloques Namespace dentro de otro bloque existente. Esto se consigue definiendo un bloque dentro de otro bloque. Por ejemplo: Namespace VisualBasic Namespace Entrega5 Module Module1 Sub Main() End Sub End Module End Namespace End Namespace En este cdigo, tenemos dos espacios de nombres anidados, el espacio de nombres Entrega5 est dentro del espacio de nombres VisualBasic. Cmo acceder a los tipos declarados dentro de un Namespace? De igual forma que para acceder a los ficheros de un directorio debemos indicar el "path" en el que se encuentran, con los espacios de nombres ocurre lo mismo, existen formas abreviadas de realizar ese acceso. Por ejemplo, si queremos usar la clase StringBuilder que se encuentra declarada en el espacio de nombres System.Text, tendremos que indicar el espacio de nombres en el que se encuentra: Dim sb As New System.Text.StringBuilder() Es decir, debemos indicar el "path" completo de la clase, para poder acceder a ella. En teora si declaramos un mtodo dentro del mdulo Module1, (mostrado en el cdigo anterior), deberamos llamar a dicho mtodo usando el espacio de nombres completo, pero cuando estamos dentro de un espacio de nombres, no hace falta indicar el nombre completo, ocurre lo mismo que cuando estamos dentro de en un directorio, no tenemos que indicar el path completo para acceder a un

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


fichero de ese mismo directorio, pero si queremos tambin podemos hacerlo, tal como se muestra en el siguiente cdigo: Namespace VisualBasic Namespace Entrega5 Module Module1 Sub Main() VisualBasic.Entrega5.Module1.Ejemplo() End Sub Public Sub Ejemplo() Console.WriteLine("Saludos desde el Sub Ejemplo") End Sub End Module End Namespace End Namespace Por tanto, para acceder a los miembros declarados dentro de un espacio de nombres, debemos usar la sintaxis: Espacio_de_nombres Punto Nombre_de_la_clase Punto Nombre_Del_Mtodo Si dicha clase est dentro de un espacio de nombres anidado, tambin debemos indicar dicho espacio de nombres. Ya que incluso para acceder a las propias clases de .NET usamos esta forma sintaxis, tal como se mostr antes para declarar la variable del tipo StringBuilder. En dicha declaracin vimos que haba dos espacios de nombres: System y dentro de ste est el espacio de nombres Text, el cual contiene la definicin de la clase StringBuilder. Es decir, siempre debemos indicar los espacios de nombres en los que se encuentran las clases, salvo que la clase (o tipo) est definido en el mismo espacio de nombres desde el que se va a usar. Aunque existen ciertas formas de hacer que esto no siempre tenga que ser as, ya que el cdigo se puede convertir en algo ms engorroso de leer si siempre tenemos que indicar los espacios de nombres que contienen las clases. Ejemplos de cmo usar los Namespace En el ejemplo que vamos a usar, es de la pagina web de www.elguille.info, ya que lo eo mas interesante y mas entendible para ustedes, vamos a definir dos espacios de nombres y en cada uno de ellos declararemos algunas una clase, con idea de que veamos cmo usarlos desde cada uno de esos espacios de nombres. El cdigo sera el siguiente: Namespace Entrega16 Module Module1 Sub Main() ' declarar una clase del espacio de nombres ClaseUno Dim c1 As New ClasesUno.PruebaA("Pepe", "Ruiz") ' ' declarar una clase del espacio de nombres ClaseDos Dim c2 As New ClasesDos.PruebaB("Maria", "Snchez") '

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.WriteLine("c1 = {0}", c1) Console.WriteLine("c2 = {0}", c2) ' Console.ReadLine() End Sub End Module End Namespace ' Namespace ClasesUno Public Class PruebaA Private _nombre As String Private _apellidos As String ' Public Sub New() End Sub Public Sub New(ByVal nombre As String, ByVal apellidos As String) Me.Nombre = nombre Me.Apellidos = apellidos End Sub ' Public Property Nombre() As String Get Return _nombre End Get Set(ByVal value As String) _nombre = value End Set End Property Public Property Apellidos() As String Get Return _apellidos End Get Set(ByVal value As String) _apellidos = value End Set End Property ' Public Overrides Function ToString() As String Return Apellidos & ", " & Nombre End Function End Class End Namespace ' Namespace ClasesDos Public Class PruebaB Inherits ClasesUno.PruebaA ' Public Sub New() End Sub Public Sub New(ByVal nombre As String, ByVal apellidos As String) Me.Nombre = nombre Me.Apellidos = apellidos End Sub End Class End Namespace

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Es este cdigo tenemos tres espacios de nombres: ! ! ! Entrega16 que es donde est declarado el mdulo que se usar para iniciar la aplicacin. ClasesUno en el que se define la clase PruebaA ClasesDos en el que se define la clase PruebaB, la cual simplemente hereda (o se basa en) la clase definida en ClasesUno.

Para poder acceder a las clases desde Main, tenemos que indicar en que espacio de nombres est cada una de las clases, esto es as porque el mdulo que contiene el mtodo Main est declarado dentro de un espacio de nombres diferente. Lo mismo ocurre con la instruccin Inherits ClasesUno.PruebaA de la clase PruebaB, ya que cada una de las clases est dentro de un espacio de nombres distinto y si no indicamos expresamente ese espacio de nombres, el compilador no sabr donde localizar la clase PruebaA. Por supuesto, si hacemos una importacin del espacio de nombres ClasesUno, podramos acceder a la clase ClaseA sin necesidad de indicar el espacio de nombres que la contiene. Algunas cosas que debes saber sobre los Namespace "automticos" y los definidos por t Para ir finalizando esta entrega quiero decirte que si quitas el espacio de nombres predeterminado que utiliza el Visual Studio y aades al cdigo tus propios espacios de nombres, debo decirte que hay dos cosas que debes tener en cuenta: La primera es que seguramente al ejecutar la aplicacin, el VS no encuentre la clase que usar como punto de inicio, debido a que ahora est en otro espacio de nombres distinto, por tanto tendrs que mostrar las propiedades del proyecto (ver figura 1) e indicar en Objeto inicial el mdulo o clase que se usar o bien, en el caso de las aplicaciones de consola, indicar Sub Main. La segunda, y ms importante, es que ya no existir un espacio de nombres que "contenga" tus clases (o tipos), por tanto, si en un fichero indicas tu propio espacio de nombres, en el resto de ficheros tambin debes indicar ese mismo espacio de nombres, al menos si tu intencin es que estn todas las declaraciones dentro del mismo "directorio". Todo esto viene al caso porque en un mismo proyecto podemos definir varios espacios de nombres y si no somos precisos con la ubicacin de cada tipo que tenemos en el proyecto, puede que el compilador se queje y nos diga que no encuentra tal o cual clase (o tipo). Tambin debes saber que si nuestro proyecto usa libreras creadas por nosotros, pero que simplemente las tenemos referenciadas, (es decir, podemos usar otras DLLs creadas por nosotros y ya compiladas), esos otros ensamblados (assemblies) pueden tener tambin un espacio de nombres que se llame igual que el que tenemos en nuestro proyecto, en ese caso no ser necesario indicar el espacio de nombres de la otra librera, ya que podemos tener un mismo espacio de nombres "repartido" por varios ensamblados. Esto es muy til si queremos definir una serie de clases, enumeraciones, etc., en un proyecto, crear un ensamblado DLL a partir de ese proyecto y posteriormente usarlo en otro proyecto diferente, pero sin cambiar el espacio de nombres en el que tenemos definidos todos los tipos. Con la ventaja adicional de que esa DLL la podemos usar en proyectos de otros lenguajes de .NET, por tanto podemos crear con VB una librera de clases y usarla desde C#.

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Resumiendo un poco: En un proyecto (ensamblado) podemos definir varios espacios de nombres. Un espacio de nombres puede estar definido en varios ensamblados y todas las clases (tipos) definidos se podrn acceder como si estuviesen en el mismo proyecto. Podemos importar espacios de nombres para que el compilador sepa dnde buscar las clases.

EJERCICIOS

55. Esta aplicacin utiliza una estructura para realizar una cierta tarea, como la de es halla el rea y permetro de un cuadrado.

Module Ejercicio55 Structure Cuadrado Dim Lado As Double Sub Inicio(ByVal L As Double) Lado = L End Sub Function Area() As Double Area = Lado * Lado End Function Function Perimetro() As Double Perimetro = 4 * Lado End Function End Structure Sub Main() Dim X As Cuadrado X.Inicio(7) Console.WriteLine("El rea del cuadrado es: {0}", X.Area) Console.WriteLine("El perimetro del cuadrado es: {0}", X.Perimetro) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


56. Esta aplicacin utiliza una clase para realizar una cierta tarea, como la de es halla el rea y permetro de un cuadrado, tambin este sera un claro ejemplo de polimorfismo, ya que es una forma diferente de programar, pero tenga en claro siempre la diferencia entre una clase y estructura, Las clases usan parmetros por referencia, mientras que las estructuras la usan por valor..

Module Ejercicio56 Public Class Cuadrado Dim Lado As Double Public Sub Inicio(ByVal L As Double) Lado = L End Sub Public Function Area() As Double Return Lado * Lado End Function Public Function Perimetro() As Double Return 4 * Lado End Function End Class Sub Main() Dim X As Cuadrado Dim L As Double = 5.0 X = New Cuadrado X.Inicio(L) Console.WriteLine("El rea del cuadrado es: {0}", X.Area) Console.WriteLine("El perimetro del cuadrado es: {0}", X.Perimetro) Console.ReadLine() End Sub End Module

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

57. Esta aplicacin utiliza una estructura, procedimientos (Sub y Function) para realizar una cierta tarea, como la de es hallar el rea y permetro de distintos tipos de triangulo.

Module Ejercicio57 Structure Triangulo Dim a, b, c, p, h As Double Sub TrianRec(ByVal d As Double, ByVal e As Double) a=d b=e End Sub Sub TrianNor(ByVal d As Double, ByVal e As Double, ByVal f As Double) a=d b=e c=f End Sub Function AreaTrianRec() As Double Return (a * b) / 2 End Function Function AreaTrianNor() As Double p = (a + b + c) / 2 Return Math.Sqrt(p * (p - a) * (p - b) * (p - c)) End Function Function PeriTrianRec() As Double h = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)) Return h + a + b End Function Function PeriTrianNor() As Double Return a + b + c End Function End Structure Sub Main() Dim Rec, Nor As Triangulo Dim n, a, b, c As Double Call Menu() Console.Write("Elija una Opcin ==> ") n = CDbl(Console.ReadLine) Console.WriteLine() While n <> 3 Select Case n Case 1 Console.Write("Ingrese la altura: ") a = CDbl(Console.ReadLine)

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.Write("Ingrese la base: ") b = CDbl(Console.ReadLine) Rec.TrianRec(a, b) Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianRec) Console.WriteLine("El paremitro del triangulo es: {0}", Rec.PeriTrianRec) Case 2 Console.Write("Ingrese el primer lado: ") a = CDbl(Console.ReadLine) Console.Write("Ingrese el segundo lado: ") b = CDbl(Console.ReadLine) Console.Write("Ingrese el tercer lado: ") c = CDbl(Console.ReadLine) Nor.TrianNor(a, b, c) Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianNor) Console.WriteLine("El paremitro del triangulo es: {0}", Rec.PeriTrianNor) Case Else Console.WriteLine("Opcin no Vlida") End Select Console.ReadLine() Console.Clear() Call Menu() Console.Write("Elija una Opcin ==> ") n = CDbl(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub Sub Menu() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} MEN DE OPCIONES", Space(25)) Console.WriteLine() Console.WriteLine("{0} [1] Halla el rea y el permetro de un triangulo rectangulo", Space(10)) Console.WriteLine("{0} [2] Halla el rea y el permetro de un triangulo normal", Space(10)) Console.WriteLine("{0} [3] Salir", Space(10)) Console.WriteLine() End Sub End Module

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

58. Esta aplicacin utiliza dos espacios de nombre, cada uno con sus clases y procedimientos, para esto primero aadiremos una clase llamada ClaseDatos y de ah un mdulo llamado Ejercicio58 en donde importaremos los espacios de nombres creados.

Clase Datos Namespace Esposa Public Class Datos Sub Nombre(ByVal nom As String) Console.WriteLine("El Nombre del esposa es: {0}", nom) End Sub Sub Apellidos(ByVal ape As String) Console.WriteLine("El Apellido del esposa es: {0}", ape) End Sub Sub Edad(ByVal AoNac As Integer) Dim Edad As Integer Edad = Microsoft.VisualBasic.Year(Date.Now) - AoNac Console.WriteLine("La edad de la esposa es: {0}", Edad) End Sub End Class End Namespace

Namespace Esposo Public Class Datos Sub Nombre(ByVal nom As String) Console.WriteLine("El Nombre del esposo es: {0}", nom) End Sub Sub Apellidos(ByVal ape As String) Console.WriteLine("El Apellido del esposo es: {0}", ape) End Sub Sub Edad(ByVal AoNac As Integer) Dim Edad As Integer Edad = Microsoft.VisualBasic.Year(Date.Now) - AoNac Console.WriteLine("La edad de la esposo es: {0}", Edad) End Sub End Class End Namespace

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Modulo

Imports Ejercicio58.Esposa Imports Ejercicio58.Esposo Module Ejercicio58 Sub Main() Dim Mujer As New Esposa.Datos Dim Marido As New Esposo.Datos Console.WriteLine() Mujer.Nombre("Giselle") Mujer.Apellidos("Valverde") Mujer.Edad(1985) Console.WriteLine() Marido.Nombre("Joel") Marido.Apellidos("Chuco") Marido.Edad(1984) End Sub End Module

59. Esta aplicacin utiliza dos espacios de nombre, cada uno con sus clases y procedimientos, para esto primero aadiremos una clase llamada ClaseBanco y de ah un mdulo llamado Ejercicio59 en donde importaremos los espacios de nombres creados. Clase Banco Namespace Cliente Public Class Datos Public Function Cliente(ByVal Nombre As String, ByVal Apellidos As String) As String Return (Apellidos + ", " + Nombre) End Function Public Function Direccion(ByVal dir As String) As String Return dir End Function Public Function Telefono(ByVal telf As Integer) As String Return CStr(telf) End Function Public Function DNI(ByVal LE As Long) As String Return CStr(LE) End Function End Class End Namespace

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Namespace Cuenta Public Class Cuenta Public Dinero As Double Sub Saldo(ByVal Money As Double) Dinero = Money End Sub Public Function TipoCuenta() As String If Dinero < 2500 AndAlso Dinero > 0 Then Return ("Cuenta Ahorros") ElseIf Dinero >= 2500 Then Return ("Cuenta Credito") Else Return ("Error: No Existe Saldo Negativo") End If End Function End Class End Namespace

Mdulo Imports Ejercicio59.Cliente Imports Ejercicio59.Cuenta Module Ejercicio59 Sub Main() Dim Datos As Cliente.Datos Dim DatoCuenta As Cuenta.Cuenta Dim Nombre, Apellidos, Direccion As String Dim Telefono, DNI As Integer Dim Monto As Double Datos = New Cliente.Datos DatoCuenta = New Cuenta.Cuenta Console.WriteLine() Console.WriteLine("{0} Nueva Cuenta", Space(25)) Console.WriteLine() Console.Write("Nombres del Cliente: ") Nombre = CStr(Console.ReadLine) Console.Write("Apellidos del Cliente: ") Apellidos = CStr(Console.ReadLine) Console.Write("Direccin del Cliente: ") Direccion = CStr(Console.ReadLine) Console.Write("Numero de DNI: ") DNI = CInt(Console.ReadLine) Console.Write("Numero Telefonico: ") Telefono = CInt(Console.ReadLine)

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.Write("Monto de Cuenta: ") Monto = CDbl(Console.ReadLine) Console.WriteLine() Console.WriteLine("Presione ENTER para ver el Detalle de la Cuenta") Console.ReadLine() Console.Clear() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}*** DETALLE DE CUENTA ***", Space(25)) Console.WriteLine() Console.WriteLine() Console.WriteLine("Cliente: {0}", Datos.Cliente(Nombre, Apellidos)) Console.WriteLine("Direccin: {0}", Datos.Direccion(Direccion)) Console.Write("DNI: {0}", Datos.DNI(DNI)) Console.WriteLine("{0}Telfono: {1}", Space(10), Datos.Telefono(Telefono)) DatoCuenta.Saldo(Monto) Console.WriteLine("Tipo de Cuenta: {0}", DatoCuenta.TipoCuenta()) Console.WriteLine("Saldo de Cuenta: {0}", DatoCuenta.Dinero) End Sub End Module

60. Esta aplicacin utiliza un modulo, es algo mas suave, despus de ver espacios de nombres, clases, estructuras, y como despedida de las consolas de aplicacin.

Module Ejercicio60 Sub Main() Dim i, d As Integer Dim salir As Integer Dim s As Char Do Console.Clear() Console.WriteLine() Console.ForegroundColor = ConsoleColor.Blue Console.WriteLine() Console.WriteLine("{0}INSTITUTO SUPERIOR TECNOLGICO ARGENTINA", Space(30)) Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}DEMOSTRATIVO DE UN ARREGLO UNIDIMENSIONAL", Space(29)) Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}ESCRITO POR: Joel Martin Chuco Marrufo", Space(32)) Console.WriteLine() Console.WriteLine() Console.WriteLine() Console.ForegroundColor = ConsoleColor.DarkGreen Console.Write("Ingrese Nmero de datos del Arreglo: ") d = CInt(Console.ReadLine)

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Dim A(d - 1) As Integer Console.WriteLine() Console.WriteLine() Console.WriteLine("Elementos Ingresados: ") For i = 0 To d - 1 Console.Write("A [{0}] = ", i) A(i) = CInt(Console.ReadLine) Next Console.WriteLine("Presione una tecla para ver la lista ingresada") Console.ReadLine() Console.Clear() Console.WriteLine() Console.WriteLine() Console.WriteLine("Lista Ingresada") Console.WriteLine() For i = 0 To d - 1 Console.WriteLine("{0} ", A(i)) Next Console.WriteLine() Console.WriteLine() Console.WriteLine("Presione S para salir, ") Console.WriteLine("Presione C para continuar, ") Console.WriteLine("(Continuar / Salir) ...") s = CChar(Console.ReadLine) If s = "s" Or s = "S" Then salir = 1 End If Loop While (salir <> 1) End Sub End Module

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Bueno seores con esto acaba la Quinta entrega de este manual, con lo que acabamos las aplicaciones en consola, se que ha sido muy poco, pero lo hago para tener separadas las entregas entre consolas de aplicacin y consolas de ventanas, as que la prxima entrega ser de aplicaciones de ventanas aunque va a ser un poco de teora, pero despus de la teora nos dedicaremos de llenos a la programacin, en la prxima entrega tocaremos mas o menos lo siguiente: ! Controles ! Formularios ! Algunos Ejercicios

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, 20 de Febrero de 2006

Joel Martin Chuco Marrufo 29

Capitulo IX

INDICE

CAPITULO IX

Aplicacin de Ventanas Crear un Nuevo Proyecto El IDE de WindowsApplication ! ! ! ! ! ! ! ! ! Ventana de Diseo Ventana de Cdigo Caja de herramientas Explorador de Soluciones Explorador de Base de Datos Base de Datos Ventana de Propiedades Ventana de Errores Barra de Herramientas

01 01 02 02 03 03 04 06 06 07 07 08

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005

APLICACIN DE VENTANAS

El IDE de Visual Basic 2005, ya lo conocen, por lo tanto ya no les voy a ensear, les enseare las nuevas ventanas con que se tienen que familiarizar de hoy en adelante.

Crear Nuevo Proyecto

Como ustedes ya saben hay dos formas de crear un nuevo proyecto, lo nico que veremos, lo que tenemos que escoger, al crear un proyecto esta vez seleccionaremos WindowsApplication, le pondremos un nombre y luego daremos clic en aceptar.

Ac un recordatorio, tengan en cuenta que nuestro proyecto siempre se llamara el nombre y el numero de nuestro ejercicio, por ejemplo, si vamos a hacer el ejercicio 61, nuestro proyecto se llamara Ejercicio61.

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005

El IDE de WindowsApplication

A comparacin de las consolas de aplicacin tenemos un nuevo IDE, en este IDE cada vez que creamos un nuevo Item, se abrir una nueva ventana, esto ya lo veremos en la aplicacin que realizaremos mas adelante.

Ventana de Diseo Al crear una nueva solucin de WindowsApplication, siempre nos aparecer la siguiente ventana.

Como se darn cuenta ac el archivo siempre tendr un nombre de Form1, que es el primer formulario del proyecto. Qu es un Formulario? Es la ventana principal, porque sirve de fondo para los controles que se dibujan en una aplicacin, como cajas de textos, etiquetas, botones, etc. se podra decir que es un contenedor de controles y objetos.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005

Ventana de Cdigo

Esta ventana contendr todo el cdigo que realizara los diferentes eventos, procedimientos, instrucciones del formulario.

Mayormente para activar esta ventana y aadir cualquier cdigo, siempre se tendr que hacer doble clic en el control deseado.

Caja de Herramientas Contiene los controles que se dibujan en el formulario, en tiempo de diseo y no en tiempo de ejecucin.

Estos controles estn divididos por clases, los controles ms usados son los de CommonControls, mas adelante ya veremos con ms detalle cada control.

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005

Explorador de Soluciones En esta ventana se encuentra el formulario, tambin vas a poder encontrar todos los Item que agregas de aqu en adelante, ya sean formularios, mdulos, clases, etc.

Botn

Funcin Este botn nos permitir visualizar las propiedades de la solucin, proyecto, formulario, etc., todos lo Item que se encuentran en esta ventana. Nos permitir actualizar los tems de la solucin Al dar clic en este botn nos mostrara todos los tems de la solucin, ya sean Referencias, XML, formulario, etc. Nos mostrar el cdigo del Item seleccionado, puede ser formulario, mdulo, clase, etc. Este botn nos permitir visualizar la ventana de diseo del formulario o de cualquier Item seleccionado.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005


Para agregar un nuevo Item nos ubicaremos en el nombre de la solucin y luego daremos clic derecho y seleccionaremos Add y despus New Item.

Despus de dar clic en New Item nos aparecer la siguiente ventana en donde seleccionaremos el Item que queramos aadir, como ustedes lo ven en la figura de abajo, una vez seleccionado el Item daremos clic en add (Aadir).

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005


Explorador de Base de Datos

En esta ventana veremos todas las bases de datos creadas y cada una con su conexin a ella respectivamente.

Mas adelante ya veremos con detalle esta ventana.

Base de Datos Desde esta ventana podremos crear una base de datos nueva.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005


Ventana de Propiedades Esta ventana nos mostrara todas las propiedades del Item seleccionado, puede ser de un formulario, mdulo, control, etc.

Ventana de Errores

Esta ventana nos mostrara todos los errores que ocurran en tiempo de ejecucin del programa.

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo IX Programando con Visual Basic 2005


Barra de Herramientas

Esta barra contendr diversos botones que suelen facilitar al programador en el uso del programa, al principio ya vimos que botones usbamos en las consolas de aplicaciones.

Botn

Funcin Este botn ejecutara el proyecto, tambin se puede ejecutar el proyecto presionando la tecla F5 Este botn mostrar la ventana de Lista de Errores Este botn nos mostrara una ventana en donde podremos hallar ya sean los mtodos, eventos de un control seleccionado, tambin podremos ver esa ventana presionando la tecla F2. Este botn realiza una pausa a la ejecucin del proyecto. Al dar clic en este botn, podremos visualizar la ventana de propiedades del item seleccionado. Cuando queramos convertir varias lneas en comentario, primero seleccionaremos el cdigo y luego daremos clic en este botn. Y cuando queramos ya no tener como comentario un cdigo, solo tendremos que dar clic en este botn. Nos mostrara la ventana de Explorador de Soluciones Detendr la aplicacin Nos mostrara la Caja de Herramientas

Joel Martin Chuco Marrufo 8

Capitulo X

INDICE

CAPITULO X

Formularios (Forms) Introduccin Tipos Propiedades Mtodos Eventos Controles Common Controls Components Containers Data Dialog Menus & TollBars Propiedades Mtodos Eventos Ejercicio 61 Ejercicio 62 Ejercicio 63 Ejercicio 64 Ejercicio 65 Ejercicio 66 Ejercicio 67 Ejercicio 68 Ejercicio 69 Ejercicio 70 Despedida

01 01 01 02 04 05 07 07 08 09 09 10 10 11 11 11 12 13 14 15 16 18 19 20 21 23 26

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Formularios (Forms)

Introduccin

Es una ventana muy importante porque aqu se dibujan o pegan todos los controles que necesitamos utilizar en nuestro programa o aplicacin. Se pueden utilizar tantos formularios como se necesiten, y dependiendo de la utilidad que se les d, estos sern de diferentes tipos. As, se puede crear un formulario que contenga un grfico, para visualizar informacin o para ingresar datos. Para dejar un poco ms en claro, un formulario es una ventana tpica de Windows. Estos estn contenidos en forma automtica en el escritorio de Windows o en su defecto dentro de otros formularios a los que llamaremos formularios MDI (Multiple Document Interface Interfaz de Mltiples Documentos). Toda ventana es a su vez una interfaz grfica de usuario la que permite interactuar a un usuario no muy experimentado de una manera muy simple con ella. Cada una de estas interfaces puede tener una gran funcionalidad inherente la que se concentra en la misma ventana o en determinados controles que estn inmersos en ella. Como todo objeto, un formulario posee propiedades y mtodos, as como a su vez soporta eventos que veremos a continuacin.

Tipos Hay cuatro tipos de formularios, que son los ms usados, como son: ! El formulario MDI, que es un contenedor de otros formularios, por ejemplo tenemos las ventanas de Word que es un formulario MDI, ya que contiene o puede contener diversas ventanas de documentos abiertos. Los formularios Child, que son aquellos formularios hijos, en otras palabras son todos aquellos formularios que van a ser contenidos en el formulario MDI. El formulario normal, que el que ms vamos a usar, y el ms comn. El formulario Parents, que es aquel formulario que va a contener todos los controles de otro formulario, por ejemplo, si tenemos un formulario llamado frmPadre, que contiene un men y un botn grabar y creamos un nuevo formulario de tipo parents llamado frmHijo y le especificamos en su propiedad de parents el formulario frmPadre, automticamente el formulario frmHijo aparecer con el men y el botn grabar, bueno, eso ya lo veremos mas adelante para que les quede mas claro, as que no se preocupen.

! !

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Propiedades

Propiedad

Descripcin

(Name) AccepButton AccesibleDescription AccesibleName AccesibleRole AllowDrop AutoScaleMode

AutoScroll AutoScrollMargin AutoScrollMinSize AutoSize AutoSizeMode BackColor BackGroundImage BackGroundImageLayout CancelButton CausesValidation ContextMenuStrip ControlBox Cursor Enabled Font ForeColor

Permite identificar el formulario, su prefijo de cualquier formulario es frm Si esta establecido, el botn se activa cuando el usuario presiona la tecla [Enter] ([INTRO]) Descripcin que se proporciona a clientes con accesibilidad. Nombre que se proporciona a los clientes con accesibilidad. Funcin que se proporciona a clientes con accesibilidad. Determina si el control recibe notificaciones de arrastrar y colocar. Determina cuando el formulario o el control, cuando la escala de la resolucin de la pantalla o de la fuente de letra a cambiado. Determina si aparecen automticamente las barras de desplazamiento cuando los controles estn situados fuera del rea de clientes del formulario. Establece el margen alrededor del control durante el AutoScroll. Tamao lgico mnimo para la zona de desplazamiento automtico. Establece si el formulario se adecua al tamao especificado de los controles. Especifica el modo del tamao del formulario Color de fondo a utilizar para mostrar texto o grficos en el control. Imagen de fondo utilizada para el formulario. Especifica como se presentara la imagen de fondo del formulario, puede ser en mosaico, estirado, centrada. Si esta establecido, el botn se activa cuando el usuario presiona la tecla ESC Indica si este control causa y genera eventos de validacin. Indica el men contextual que se muestra cuando el usuario hace clic derecho. Determina si el formulario tiene un cuadro de men control el que se encuentra en la esquina superior derecha de la ventana. Indica el tipo de cursor que aparece al pasar el Mouse por el control Indica si el control esta habilitado Indica la fuente utilizada para mostrar texto en el control. Indica el color de primer plano utilizado para mostrar texto o grficos en el control.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


FormBorderStyle HelpButton Controla la apariencia del borde del formulario. Esto tambin influye en como se muestra la barra de titulo y que botones pueden aparecer en ella. Determina si un formulario tiene botn de ayuda en la barra de titulo. Indica el icono para un formulario. Esto se muestra en el cuadro de men del formulario del sistema y cuando el formulario se minimiza, Width: Ancho, Height: Altura. Determina el estado IME (Editor de Mtodos de Entrada) del objeto cuando se selecciona. Determina si el formulario es un contenedor MDI. Determina si los eventos de teclado para los controles del formulario se registran junto con el formulario. Indica el idioma traducido actualmente. Determina si se va a generar el cdigo localizable para este objeto. Posicin de la esquina superior izquierda del control, respecto al contenedor. Determina si se puede mover o cambiar de tamao el control. Indica el men principal del formulario. Debe establecerse en un componente de tipo MainMenuStrip. Determina si el formulario contendr el botn de maximizar. Indica el tamao mximo de la ventana al maximizar. Determina si el formulario contendr el botn de minimizar. Indica el tamao mnimo de la ventana al minimizar. Determina la opacidad o transparencia del formulario; 0% es transparente, 100% es opaco (visible) Indica el espacio entre los controles que va a contener el formulario. Indica si el control debe dibujarse de derecha a izquierda para idiomas que se escriben en esa direccin. Determina si se muestra el icono del formulario en la barra de titulo. Determina si el formulario aparece en la barra de tareas de Windows. Determina el tamao del formulario o control en pxeles. Determina cuando se muestra SizeGrip en un formulario. Determina la posicin del formulario cuando aparece por primera. Datos definidos por el usuario asociado con el control. Muestra el texto contenido en el formulario en la barra de titulo.

Icon

ImeMode IsMDIContainer KeyPreview Language Localizable Location Locked MainMenuStrip MaximizeBox MaximunSize MinimizeBox MinimunSiza Opacity Padding RightToLeft ShowIcon ShowInTaskBar Size SizeGripStyle StarPosition Tag Text

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


TopMost TransparencyKey UseWaitCursor WindowsState Determina si el formulario est sobre todos los dems formularios que no son de nivel superior, incluso cuando esta desactivado. Indica el color que parece transparente cuando se aplica al formulario. Indica si se muestra un cursor de espera. Determina el estado visual inicial del formulario, puede ser minimizado, maximizado o normal.

Mtodos Vamos a tocar los mtodos mas utilizados, ya que existen un sin fin de mtodos.

Mtodo

Descripcin

Activate Close CreateControl CreateGraphics Dispose FindForm Finalize Focus GetType Hide Invalidate LayoutMdi Refresh RemoveOwnedForm ResetText Select Show ShowDialog Update Validate

Activa el formulario y le otorga el foco Cierra el formulario Obliga a que se cree el control, incluidos el identificador y los controles secundarios. Crea el objeto Graphics para el control Sobrecargado. Libera los recursos utilizados por componentes. Recupera el formulario en el que se encuentra el control. Libera todos los recursos del formulario y del sistema. Establece el foco de entrada al control. Obtiene el objeto Type de la instancia actual. Oculta el formulario o control al usuario. Sobrecargado, Invalida una regin especfica del control y hace que se envi un mensaje de dibujo al control. Organiza los formularios MDI secundarios del formulario MDI principal. Obliga al control invalidar su rea cliente y acto seguido obliga a que vuelva a dibujarse el control y sus controles secundarios. Quita un formulario con propietario de este formulario. Restablece el valor predeterminado de la propiedad Text. Sobrecargado, activa un control. Muestra el control o formulario al usuario. Sobrecargado. Muestra el formulario como un cuadro de dialogo modal. Hace que el control vuelva a dibujar las regiones no vlidas en su rea de cliente. Valida el ltimo control no validado y sus predecesores, pero sin incluir el control actual.

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Eventos Vamos a tocar los eventos ms utilizados, ya que existen una cierta cantidad considerables de eventos.

Evento

Descripcin

Activated BackGroundImageChanged Click Disponed DoubleClick EnabledChanged Enter FormClosed FormClosing GotFocus Invalidated KeyDown KeyPress KeyUp Layout Leave Load LostFocus MenuComplete MenuStart MouseDown MouseEnter

Se produce cuando el formulario se activa por cdigo de programa o por parte del usuario. Se produce cuando el valor de la propiedad BackGroundImage cambia. Se produce cuando el usuario hace clic en el control. Agrega un controlador de eventos para escuchar al evento Disponed en el componente. Se produce cuando se hace doble clic en el control. Se produce cuando cambia el valor de la propiedad enabled. Se produce cuando se entra en el control. Tiene lugar cuando el formulario esta cerrado. Tiene lugar cuando se cierra el formulario. Se produce cuando el control recibe el foco. Se produce cuando es necesario volver a dibujar un control. Se produce cuando se presiona una tecla mientras el control tiene el foco. Se produce cuando se presiona una tecla mientras el control tiene el foco. Se produce cuando se suelta una tecla mientras el control tiene el foco. Se produce cuando el foco de entrada deja el control Se produce cuando el foco de entrada deja el control. Se produce antes de que se muestre un formulario por primera vez. Se produce cuando el control pierde el foco. Se produce cuando el men de un formulario pierde el foco. Se produce cuando el men de un formulario recibe el foco. Se produce cuando el puntero del Mouse esta sobre el control y se presiona un botn del Mouse. Se produce cuando el puntero del Mouse entra en el control.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


MouseHover MouseLeave MouseMove MouseUp MouseWheel Move VisibleChanged Se produce cuando el puntero del Mouse se sita encima del control. Se produce cuando el puntero del Mouse deja el control. Se produce cuando el puntero del Mouse se mueve sobre el control. Se produce cuando el puntero del Mouse esta encima del control y se suelta el botn del Mouse. Se produce cuando la rueda del Mouse se mueve mientras el control tiene el foco. Se produce cuando se mueve el control. Se produce cuando cambia el valor de la propiedad visible.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Controles

Con el .NET Framework 2.0 tenemos una diversidad de control y objetos que podemos usar en nuestras aplicaciones, ahora veremos algunos controles que mas vamos a usar divididos en categoras.

Common Controls Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripcin.

Icono

Nombre

Prefijo

Descripcin

Button CheckBox

btn chk

CheckedListBox ComboBox DateTimePicker Label LinkLabel ListBox ListView MaskedTextBox MonthCalender

clb cbo dtp lbl llbl lst lstv msk mnc

NotifyIcon

nti

NumericUpDown

nud

Se utiliza para iniciar, detener o interrumpir un proceso. Muestra una casilla de verificacin y una etiqueta para texto. Se utiliza n general para establecer opciones. Muestra una lista desplazable de elementos, cada uno acompaado por una casilla de verificacin. Muestra una lista desplegable de elementos. Muestra un calendario grfico desplegable, que permite que los usuarios seleccionen una fecha o una hora. Muestra texto que los usuarios no pueden modificar directamente. Muestra texto en forma de vnculo de estilo Web y desencadena un evento cuando el usuario hace clic en el texto. Muestra una lista de textos, tambin llamados elementos. Muestra los elementos ya sean texto solo o con grficos (iconos). Captura texto escrito por el usuario, ya sea teniendo un formato de entrada. Muestra un calendario grfico que permite que los usuarios seleccionen un intervalo de fechas. Muestra un icono, en el rea de notificacin de estado de la barra de tareas, que representa una aplicacin que se ejecuta en segundo plano. Muestra una lista de nmero a travs de la cual los usuarios se pueden desplazar mediante botones hacia arriba y hacia abajo.

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


PictureBox ProgressBar RadioButton RichTextBox pic pgb rdb rtb Muestra archivos de imgenes, tales como mapas bits e iconos, gifs, etc. Muestra una barra de progreso, mientras realiza una instruccin. Muestra un botn que puede activarse o desactivarse. Habilita la presentacin del texto con formato de texto sencillo o de texto enriquecido (RTF). Muestra texto escrito en tiempo de diseo que puede ser editado por los usuarios en tiempo de ejecucin. Este control activa la propiedad ToolTip en los dems controles, su funcin es brindar una pequea informacin al pasar el Mouse por el control que queramos. Muestra una coleccin jerrquica de objetos de nodo que puede constar de texto con casilla de verificacin o iconos opcionales. Permite crear un explorador de Internet con fcil navegacin, tambin se puede abrir mltiples archivos.

TextBox

txt

ToolTip

ttp

TreeView

trv

WebBrowser

wbr

Nota: Los prefijos son una referencia, se utiliza para saber de que control se habla en tiempo de diseo, no es obligatorio usarlo, pero es recomendable que se familiaricen, ya que la mayora de programadores lo usan.

Components Solo les muestro dos controles, que son los ms usados.

Icono

Nombre

Prefijo

Descripcin

ImageList Timer

img tmr

Es un contenedor de imgenes, para que despus se use con otros controles. Sirve para realizar un conteo de tiempo, en tiempo de ejecucin.

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Containers Esta categora se encuentran todos aquellos controles que sirven para contener otros controles.

Icono

Nombre

Prefijo

Descripcin

FlowLayoutPanel

flp

GroupBox

gpb

Panel

pnl

SplitContainer

spc

TabControl

tbc

TableLayoutPanel

tlp

Es un contenedor de controles que no permite la modificacin de la posicin del control. Agrupa un conjunto de controles (tales como botones de opcin) en un marco con etiqueta. Agrupa un conjunto de controles en un marco sin etiqueta que permite el desplazamiento. Es un contenedor de controles con dos paneles, en donde se puede insertar cualquier tipo de control. Proporciona una pgina con fichas para organizar y tener acceso a controles agrupados de forma eficiente. Es un organizador de controles, ya que podemos aadir filas o columnas para control que queramos.

Data Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripcin.

Icono

Nombre

Prefijo

Descripcin

BindingNavigator

bgn

BindingSource DataGripView DataSet

bgs dgv dts

Este control nos permite la navegacin de datos, conectada a una base de datos. Este control nos permite la conexin y la navegacin de datos, de una base de datos. Nos permite visualizar los datos de una tabla o de una base de datos. Nos permite la creacin y la conexin de una base de datos.

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Dialog Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripcin.

Icono

Nombre

Prefijo

Descripcin

ColorDialog

cdg

FolderBrowserDialog

fbd

FontDialog

fdg

OpenFileDialog

ofd

SaveFileDialog

sfd

Muestra el cuadro de dilogo de seleccin de colore, que permite que los usuarios seleccionen el color de un elemento de la interfaz. Muestra un cuadro de dilogo que permite buscar o una carpeta de destino. Muestra un cuadro de dilogo que permite que los usuarios establezcan una fuente y sus atributos. Muestra un cuadro de dialogo que permite que los usuarios se desplacen hasta un archivo y lo seleccionen. Muestra un cuadro de dialogo que permite que los usuarios guarden un archivo.

Menus & ToolBars Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripcin.

Icono

Nombre

Prefijo

Descripcin

ContextMenuStrip

cms

MenuStrip

mnu

StatusStrip

sts

ToolStrip ToolStripContainer

tls tsc

Implementa un men que aparece cuando el usuario hace clic en un objeto con el botn secundario del Mouse. Proporciona una interfaz en tiempo de diseo para la creacin de mens. Muestra informacin acerca del estado actual de la aplicacin mediante una ventana con marco, habitualmente en parte inferior de un formulario. Contiene una coleccin de botones, combos, etiquetas, etc. Muestra una interfaz de botones con men.

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Propiedades: Ahora veremos algunas propiedad mas comunes que tienen los controles, solo tocaremos lo que no hemos mencionado, ya que casi todos los controles y formularios tienen las mismas propiedades.

Propiedad

Descripcin

AccessKey Anchor Attributes BorderColor BorderStyle BorderWidth FlatStyle Image ImageAlign TextAlign ToolTip

Obtiene o establece la clave de acceso (la letra subrayada) que permite desplazarse rpidamente al control de servidor Web. Establece la alineacin del control con respecto a un objeto, cuando se maximiza o minimiza. Obtiene la coleccin de atributos arbitrarios (slo para procesar) que no corresponden a propiedades del control. Obtiene o establece el color de borde del control Web. Obtiene o establece el estilo del borde del control. Obtiene o establece el ancho del borde del control. Determina el comportamiento del control, cuando es pasado el Mouse o cuando hacen clic en el control. Estable la imagen que contendr el control. Establece la alineacin de la imagen. Establece la alineacin del texto del control. Se activa cuando el objeto TooTip esta en el diseo del formulario, normalmente contiene una pequea informacin del control.

Mtodos Los mtodos son casi los mismos que tiene el formulario, as que conforme vamos avanzando veremos uno que otro mtodo propio de cada control.

Eventos Los eventos tambin son muy parecidos a los eventos del formulario, solo tocaremos algunos eventos propios de cada control, conforme avancemos.

Ahora veremos unos cuantos ejemplos usando primero un Label, TextBox, Button.

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005 Ejercicios

61. En esta aplicacin usaremos tres Label (etiquetas), cambindoles algunas propiedades.

Label1

Label2

Label3

Primero crearemos un nuevo proyecto con el nombre de Ejercicio61, para este ejercicio todava no alteraremos ningn nombre de los controles, solo cambiaremos las propiedades de algunos controles y pondremos en la propiedad de texto de cada Label, el texto que se muestra en la imagen. Control Label1 Propiedad Font Control Label2 Propiedad AutoSize BorderStyle Font TextAlign Descripcin False Fixed3D Verdana, Negrita 10 pt MiddleCenter Descripcin Verdana, Normal 20 pt

Control Label3 Propiedad Font Descripcin Verdana, Negrita Subrayada 8 pt

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Eso es todo con respecto a nuestra primera aplicacin, no se olviden que para poner un control primero daremos clic sobre el control en la barra de herramientas y haremos clic en el formulario podemos hacer doble clic en el control de la barra de herramientas. Para ejecutar el programa presionaremos la tecla F5 o daremos clic en el botn Star Debugging, que ya lo conocen, por que es el mismo que se usa para ejecutar las aplicaciones de consola.

62. Ahora en este ejercicio usaremos dos tipos de controles uno es el Label y el otro es el TextBox.

Label1

Label2

TextBox1

Label3 TextBox2 Label4 TextBox3

Label5

TextBox4

Label6

TextBox5

Control Label1 Propiedad AutoSize BorderStyle Font TextAlign Descripcin False Fixed3D Microsoft Sans Serif, Negrita 9 pt MiddleCenter

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Control TextBox5 Propiedad Multiline ScrollBars Descripcin True Vertical

Estos dos controles son los nicos al que le cambiaremos las propiedades. La propiedad de Multiline del control TextBox nos permite que podamos ingresar una cantidad considerable de caracteres y la propiedad ScrollBars nos mostrara una barra de desplazamiento sobre el control.

63. bueno esta aplicacin les dejo para que practiquen un poco, recuerden que las aplicaciones de ventanas son para mejorar la calidad de diseo de otras aplicaciones con lo son las de consola.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


64. En este ejercicio aprenderemos a usar algunas propiedades que es de importancia en el control del TextBox.

Label1 TextBox1 Label2 TextBox2

Label3

TextBox3

Label4

TextBox4

Label5 TextBox5

Label6

Caractersticas: ! ! ! ! En el ciclo solo debe ingresar hasta 03 caracteres. El sexo solo un carcter. En la clave hasta 05 caracteres y no se debe de visualizar a media que ingrese. No se debe permitir el ingreso en la direccin electrnica.

Control TextBox2 Propiedad MaxLength Control TextBox3 Propiedad MaxLength Control TextBox4 Propiedad MaxLength PasswordChar 5 * Descripcin 1 Descripcin 3 Descripcin

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Control TextBox5 Propiedad ReadOnly True Descripcin

Ahora ejecuten el programa y listo. La propiedad MaxLength nos permite que especifiquemos que cantidad de caracteres va a contener el control mientras que la propiedad PasswordChar nos indica mediante que carcter va a ser reemplazado el carcter que ingresemos. 65. Este ejercicio es muy parecido al ejercicio nmero 62, le aadiremos solos dos controles mas, que son el Button y el ToolTip.

TextBox1

TextBox2

TextBox3

TextBox4

TextBox5

Button1 Button2

Recuerda que tienes que poner en la propiedad de Text de cada control el texto que se muestra en ellos en la figura.

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Control Button1 Propiedad ToolTip on ToolTip1 Descripcin Adiciona un Nuevo Alumno

Control Button2 Propiedad ToolTip on ToolTip1 Descripcin Finaliza la Aplicacin

Como se darn cuenta al aadir un ToolTip este aparece en la parte inferior como en la figura de abajo, esto sucede por que es un objeto, la propiedad ToolTip del control Button siempre va a aparecer acompaado del nombre que le pongamos a nuestro TooTip.

Ahora veremos nuestra pequea codificacin que tendrn los botones.

Button1 (Evento Cick) Para entrar a este evento solo basta darle doble clic en el botn y aparecer la siguiente ventana.

As que escribiremos el siguiente cdigo dentro del procedimiento. Me.TextBox1.Text = "" Me.TextBox2.Text = "" Me.TextBox3.Text = "" Me.TextBox4.Text = "" Me.TextBox5.Text = "" Me.TextBox1.Focus()

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Como ustedes saben que la propiedad Text del control, nos muestra el texto que queramos as que al ponerle dos comillas, se interpreta que no va a tener ningn texto, pero si queremos que se muestre un texto lo haremos tambin entre comillas. Mientras tanto el mtodo Focus del control, nos indica que el foco sea el cursor se va a ubicar en el control TextBox1.

Button2 (Evento Cick) Me.Close()

Como se darn cuenta escribo Me.Close, el Me nos indica el objeto actual, que es el formulario y close es un mtodo de este objeto que tiene por funcin cerrar el formulario, por ejemplo si olvidamos el nombre de un control, basta que pongamos Me. y seguido el prefijo del control y nos ser mas til de encontrar el nombre del control, es por eso que se dice que estas dos ultimas versiones de VB .Net estn orientadas a objetos.

66. En este ejercicio aprenderemos a alterar propiedades de controles en tiempo de ejecucin.

Label1

Button1

Button2 Button3

Button4

Button1 (Evento Cick) Me.Label1.Text = "Joel Martin Chuco Marrufo"

Button2 (Evento Cick) Me.Label1.Text = "Yo Estudie en el Instituto Superior Tecnolgico Argentina"

Button3 (Evento Cick) Me.Label1.Text = "Naci el 15 de septiembre de 1984"

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Button4 (Evento Cick) Me.Close()

67. En este ejercicio aprenderemos ya a ponerle nombre a cada control, en la propiedad Name de cada uno de ellos como se muestra en la figura.

txtNombre

txtFecNac

txtDNI

txtDomAct

btnNuevo btnSalir

btnNuevo (Evento Cick) Me.txtNombre.Text = "" Me.txtFecNac.Text = "" Me.txtDNI.Text = "" Me.txtDomAct.Text = "" Me.txtNombre.Focus()

btnSalir (Evento Cick) Me.Close()

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

68. Bueno con este ejercicio veremos la diferencia entre una Variable de tipo Dim y otra de tipo Static, si no les quedo claro en la explicacin de las entregas anteriores.

lblValA lblValB

btnIncrementa

btnIncrementa (Evento Cick) Dim A As Integer Static B As Integer A=A+1 B=B+1 Me.lblValA.Text = CStr(A) Me.lblValB.Text = B.ToString

Como ven en el ejercicio cada vez que damos clic en el botn el valor de A siempre va a ser 1, en cambio en el valor de B aumenta de 1 en 1, esto se debe a que B es una variable de tipo Static, mejor dicho es una variable que va a almacenar su valor anterior, en caso contrario la variable A, no va a almacenar ningn valor anterior, ya que es declarada cada vez que presionamos el botn y se le asigna el mismo valor de 1. Tambin se darn cuenta que uso dos formas de convertir el nmero a cadena como es el CStr o el .ToString, cualquiera de las dos es vlida, pero la de CStr pertenece a las versiones anteriores del Visual Basic, en cambio el .ToString pertenece a las versiones .Net del Visual Basic.

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

69. En este ejercicio veremos una variable a nivel de procedimiento.

lblVariable

btnProcA

btnProcB

Primero veremos el siguiente cdigo, as copien el cdigo tal como esta y ejectenlo y vean lo que pasa.

btnProcA (Evento Cick) Dim N As Integer N=5 Me.lblVariable.Text = N.ToString N = 10

btnProcB (Evento Cick) Me.lblVariable.Text = N.ToString

Como se darn cuenta en el procedimiento btnProcB la letra N aparece con una raya azul ms o menos como en la imagen.

Esto sucede por que la variable N que declaramos en el procedimiento btnProcA es solo para ese procedimiento y no se puede utilizar en otro procedimiento.

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Y cuando tratamos de ejecutar nos aparecer la siguiente ventana.

Para ver el error daremos clic en No y luego nos ubicaremos en la ventana de Error List, en donde nos mostrar cual es el error.

Aqu nos indica en lnea y en que columna se ubica el error, y si hubiera ms proyectos en la solucin, tambin nos indica en que proyecta esta el error. Esta explicacin lo hago para que a la hora en que ejecuten sus aplicaciones sepan en donde se ubica el error, la solucin a este error seria la siguiente codificacin. Declararamos la variable N a nivel del formulario como se muestra en la figura.

Y luego el cdigo en los botones seria lo siguiente.

btnProcA (Evento Cick) N=5 Me.lblVariable.Text = N.ToString N = 10

btnProcB (Evento Cick) Me.lblVariable.Text = N.ToString

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

70. En este ejercicio aprenderemos ya a cambiar y realizar un poco de codificacin para los siguientes botones y realizacin de clculo, tambin usaremos un procedimientos, casi todo lo que hemos aprendido en las entregas anteriores.

txtNombre

txtHTN

txtHE btnCalcular

txtPHN btnNuevo txtPHE txtTHN btnSalir

txtTHE

txtSubTotal

txtDesc

txtTotal

Caractersticas Se debe de ingresar el nombre de un trabajador, las horas normales que ha trabajado, las horas extras, el pago por cada hora normal y extra. Al hacer un clic en el botn calcular, se deber calcular y mostrar el total por las horas normales, el total por las horas extras, el subtotal, un descuento del 10% del subtotal y el total que se le debe pagar.

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


Procedimiento LimpiarControles Sub LimpiarControles() Me.txtHE.Text = "" Me.txtHTN.Text = "" Me.txtNombre.Text = "" Me.txtPHE.Text = "" Me.txtPHN.Text = "" Me.lblDesc.Text = "" Me.lblSubTotal.Text = "" Me.lblTHE.Text = "" Me.lblTHN.Text = "" Me.lblTotal.Text = "" Me.txtNombre.Focus() End Sub

Como ustedes saben los procedimientos procedimientos, en este caso a nivel del formulario.

se

hacen

fuera

de

otros

frmEjercicio70 (Evento Load) LimpiarControles()

btnNuevo (Evento Cick) Call LimpiarControles()

btnSalir (Evento Cick) Me.Close()

btnCalcular (Evento Cick) Dim HTN, HTE, PHN, PHE, THN, THE, ST, DES, TP As Single Const Descuento = 10 HTN = Val(Me.txtHTN.Text) 'Horas Normales Trabajadas HTE = Val(Me.txtHE.Text) 'Horas Extras Trabajadas PHN = Val(Me.txtPHN.Text) 'Pago por Hora Normal PHE = Val(Me.txtPHE.Text) 'Pago por hora Extra THN = HTN * PHN 'Total por Horas Normales THE = HTE * PHE 'Total por Horas Extras ST = THN + THE 'Sub Total DES = ST * Descuento / 100 'Descuento TP = ST - DES 'Total a Pagar Me.lblDesc.Text = DES.ToString Me.lblSubTotal.Text = ST.ToString Me.lblTHE.Text = THE.ToString Me.lblTHN.Text = THN.ToString Me.lblTotal.Text = TP.ToString

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005


REM Seguna Forma, sin usar variables 'Me.lblTHN.Text = (Val(Me.txtHTN.Text) * Val(Me.txtPHN.Text)).ToString 'Me.lblTHE.Text = (Val(Me.txtHE.Text) * Val(Me.txtPHE.Text)).ToString 'Me.lblSubTotal.Text = (Val(Me.lblTHN.Text) + Val(Me.lblTHE.Text)).ToString 'Me.lblDesc.Text = (Val(Me.lblSubTotal.Text) * 10 / 100).ToString 'Me.lblTotal.Text = (Val(Me.lblSubTotal.Text) - Val(Me.lblDesc.Text)).ToString

Aqu uso dos formas de calcular, una es usando variables, la uso para que entiendan mucho mejor la aplicacin y la otra es sin usar variables, que es mejor, ya que variable que se declara, queda almacenada en la memoria. Si recuerdan en las aplicaciones de consolas usamos lo que es otro tipo de conversin de cadena a tipo Single, en cambio en las aplicaciones de ventanas podemos usar la funcin Val que nos captura el valor de la caja de texto.

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo X Programando con Visual Basic 2005

Bueno seores con esto acaba la Sexta entrega de este manual, si se habrn dado cuenta la codificacin es la misma de las aplicaciones de consola, podrin practicar haciendo los ejercicios del 1 al 8, ya que son parecidos a lo que hemos hecho, en la prxima entrega, aprenderemos a: ! Usar Controles Avanzado ! Restringir el acceso de datos ! Mejorar el diseo de formulario

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, 04 de Marzo de 2006

Joel Martin Chuco Marrufo 26

Capitulo XI

INDICE

CAPITULO XI

MessageBox Variables de Tipo MsgBoxResult Tipos Funciones Tipo Cadena IF THEN - ELSE Ejercicio 71 Ejercicio 72 InputBox Ejercicio 73 Format Ejercicio 74 Ejercicio 75 SELECT CASE Ejercicio 76 Ejercicio 77 Ejercicio 78 Ejercicio 79 Funciones Pblicas Ejercicio 80 Clases y NameSpace en un Modulo Ejercicio 81 Ejercicio 82 Funcin Shell Ejercicio 83 Despedida

01 02 01 02 03 03 06 11 12 15 16 17 19 19 21 23 26 28 28 30 30 34 35 36 38

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

MSGBOX

El MSGBOX es una ventana que nos muestra un mensaje en el centro de la pantalla. Su sintaxis es la siguiente: MsgBox(Mensaje, Tipo de Mensaje, Titulo)

Por ejemplo: MsgBox("Desea Salir de la Aplicacin?", MsgBoxStyle.YesNo, "Sistema") El mensaje que nos mostrara ser el siguiente:

Tipo de Mensaje

Icono No No No No No

Botones (Botn Cerrar) Abortar, Reintentar, Ignorar (Desactivado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar, Ayuda (Activado) Aceptar (Activado) Aceptar (Activado y al lado Izquierdo) Aceptar (Activado) Aceptar, Cancelar (Activado) Aceptar (Activado) Aceptar (Activado) Reintentar, Cancelar (Activado) Aceptar (Activado) Icono en el Titulo Si, No (Desactivado) Si, No, Cancelar (Activado)

No No No No No No No No No No

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


Variable tipo MsgBoxResult

La variable tipo MsgBoxResult, almacena los resultados que se obtenga mediante un Message Box, que despus no sirva compararala y ejecutar instrucciones, por ejemplo:

Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir?", MsgBoxStyle.YesNo, "Sistema") If Resp = MsgBoxResult.Yes Then Me.Close() End If

Explicacin: Primero declaramos una variable Resp de tipo MsgBoxResult, esta variable almacena el valor devuelto del mensaje, si el usuario responde SI, este valor que es verdadero (True) va a ser comparado con la siguiente instruccin IF que compara la variable Resp, que seria mas o menos as: Si la variables Resp tienes almacenado el valor SI, cerrara la ventana, sino, no har ninguna instruccin.

FUNCIONES TIPO CADENA

Una cadena es un dato de tipo String (Carcter); es decir se refiere a letras o letras y nmeros, ahora veremos las funciones de cadenas mas utilizadas y posteriormente realizaremos una aplicacin para que les quede mas claro, sobre las funciones de cadena.

! ! ! ! ! ! ! ! ! !

Right: Obtiene de una cadena, una cantidad de caracteres empezando por la derecha: Sintaxis; Microsoft.VisualBasic.Right(Cadena,N) Left: Obtiene de una cadena, una cantidad de caracteres empezando por la izquierda: Sintaxis; Microsoft.VisualBasic.Left(Cadena,N) Mid: Obtiene de una cadena, una cantidad de caracteres a partir de una posicin determinada: Sintaxis; Microsoft.VisualBasic.Mid(Cadena,N) Len: Obtiene la longitud de una cadena, es decir la cantidad de caracteres que contiene incluyendo los espacios en blanco: Sintaxis; Len(Cadena) Trim: Quita los espacios en blanco al final de una cadena: Sintaxis; Trim(Cadena) RTrim: Quita los espacios en blanco al final de una cadena: Sintaxis; RTrim(Cadena) LTrim: Quita los espacios en blanco al inicio de una cadena: Sintaxis; LTrim(Cadena) UCase: Convierte una cadena en maysculas: Sintaxis; UCase(Cadena) LCase: Convierte una cadena en minsculas: Sintaxis; LCase(Cadena) StrConv: Convierte una cadena en 3 formas diferentes, en maysculas = 1, minsculas = 2, la primera letra de cada palabra en maysculas = 3 : Sintaxis; StrConv(Cadena,Valor) InStr: Obtiene un nmero que indica la posicin de una subcadena dentro de una cadena: Sintaxis; InStr(Cadena,SubCadena)

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

IF - THEN - ELSE

Como ya hemos visto antes esta instruccin condicional, en las consolas de aplicacin, ahora veremos en las aplicaciones de ventanas, que por cierto no cambian nada, ahora veremos unos cuantos ejercicios usando el IF y el MessageBox.

71. Ahora desarrollaremos nuevamente el ejercicio anterior (62).

txtNombre

txtDireccion

txtTelefono

txtCE

txtObservaciones

btnNuevo

btnFinalizar

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Esta aplicacin deber tener las siguientes caractersticas:

! ! !

Al ejecutar la aplicacin el botn Nuevo Alumno debe estar desactivado. Slo se debe activar cuando comience a ingresar el nombre del alumno. Cuando el usuario ingrese un campo y pulse Enter, el cursor debe pasar automticamente al siguiente campo. Al hacer clic en el botn finalizar se debe mostrar un mensaje de advertencia. Las instrucciones de este botn se deben ejecutar cuando el usuario pulse la tecla Esc.

txtNombre (Evento KeyPress) If Asc(e.KeyChar) = 13 Then Me.txtDireccion.Focus() End If

txtDireccion (Evento KeyPress) If Asc(e.KeyChar) = 13 Then Me.txtTelefono.Focus() End If

txtTelefono (Evento KeyPress) If Asc(e.KeyChar) = 13 Then Me.txtCE.Focus() End If

txtCE (Evento KeyPress) If Asc(e.KeyChar) = 13 Then Me.txtObservaciones.Focus() End If

frmEjercicio71 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir de la Aplicacin?", MsgBoxStyle.YesNo, "Sistema") If Resp = MsgBoxResult.No Then e.Cancel = True End If

frmEjercicio71 (Evento Load) Me.btnNuevo.Enabled = False

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

btnFinalizar (Evento Click) Me.Close()

btnNuevo (Evento Click) Me.txtCE.Text = "" Me.txtDireccion.Text = "" Me.txtNombre.Text = "" Me.txtObservaciones.Text = "" Me.txtTelefono.Text = "" Me.txtNombre.Focus()

txtNombre (Evento TextChanged) If Trim(Me.txtNombre.Text) = "" Then Me.btnNuevo.Enabled = False Else Me.btnNuevo.Enabled = True End If

Para que se active o realice las instrucciones que se encuentren en el botn Finalizar, con solo presionar Esc, tendrn que especificar CancelButton en la propiedad del formulario, indicando el botn btnFinalizar.

Explicacin

Seguro se estarn haciendo algunas preguntas como lo son: e.KeyChar, e.Cancel, Asc, ahora les explico: ! e.KeyChar: Esta instruccin nos devuelve el carcter que ha sido digitado en ese momento, por ejemplo si digitamos la letra a, esta instruccin nos devuelve el valor de a pero como carcter. Asc: Esta funcin convierte cualquier carcter enviado en un cdigo ASCII , siguiendo del ejemplo anterior, ya que e.KeyChar tiene el carcter de a, si esto lo enviamos a la funcin Asc, quedara mas o menos as: Asc(e.KeyChar), esta instruccin nos devolvera el valor de 97, porq?, wueno el valor de a en cdigo ASCII es 97, as de simple. e.Cancel: Esta instruccin nos permite cancelar cualquier evento que se este realizando, por ejemplo si estamos cerrando el formulario, podemos indicarle que lo cancele, envindole o instan cindole un valor verdadero, para la cancelacin del evento.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

72. La siguiente aplicacin nos ingresar los apellidos y nombres, fecha de ingreso, turno y promedio de un alumno. Este programa debe contar con las siguientes caractersticas: ! ! ! ! ! El primer carcter de cada nombre o apellido debe convertirse en maysculas y el reto en minsculas. Se debe de verificar que la fecha ingresada sea correcta En el turno solo se debe aceptar las letras M, T y N. El promedio debe ser un nmero entre 0 y 20. Los botones Nuevo y Salir deben permanecer desactivados hasta que se ingresen todos los datos correctos.

txtApeNom

txtFecNac

btnNuevo

txtTurno btnSalir txtPromedio

Funcin Mayscula Esta funcin indica si la letra ingresada esta en mayscula. Function Mayuscula(ByVal v As Integer) As Boolean If v >= 65 And v <= 90 Then Mayuscula = True Else Mayuscula = False End If End Function

Funcin Minscula Esta funcin indica si la letra ingresada esta en minscula. Function Minuscula(ByVal v As Integer) As Boolean If v >= 97 And v <= 122 Then Minuscula = True Else Minuscula = False End If End Function

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Funcin Nmero Esta funcin indica si el carcter ingresado es un nmero. Function Numero(ByVal v As Integer) As Boolean If v < 48 Or v > 57 Then Numero = False Else Numero = True End If End Function

Funcin Especial Indica si a ingresado una vocal con tilde, la letra o o pulso ENTER, la barra espaciadora o de retroceso (BackSpace). Function Especial(ByVal v As Integer) As Boolean If v = 13 Or v = 32 Or v = 8 Or v = 225 Or v = 233 Or v = 237 Or v = 243 Or v = 250 Or v = 241 Or v = 209 Then Especial = True Else Especial = False End If End Function

Funcin Ingresados Esta funcin verifican si todos lo datos han sido ingresados correctamente. Sub Ingresados() If Trim(Me.txtApeNom.Text) <> "" And IsDate(Me.txtFecNac.Text) And Trim(Me.txtTurno.Text) <> "" And Trim(Me.txtPromedio.Text) <> "" Then Me.btnNuevo.Enabled = True Me.btnSalir.Enabled = True Else Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False End If End Sub

Funcin Limpiar Esta funcin limpia los controles TextBox. Sub Limpiar() Me.txtApeNom.Text = "" Me.txtFecNac.Text = "" Me.txtPromedio.Text = "" Me.txtTurno.Text = "" Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False Me.txtApeNom.Focus() End Sub

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

txtApeNom (Evento KeyPress) Static anteriorespacio As Boolean If Asc(e.KeyChar) = 13 Then Me.txtFecNac.Focus() End If If Asc(e.KeyChar) = 32 Then anteriorespacio = True Else If Mayuscula(Asc(e.KeyChar)) Or Minuscula(Asc(e.KeyChar)) Or Especial(Asc(e.KeyChar)) Then If Trim(Me.txtApeNom.Text) = "" Or anteriorespacio Then REM Convierte a Mayuscula e.KeyChar = UCase(e.KeyChar) Else REM Convierte a Minuscula e.KeyChar = LCase(e.KeyChar) End If anteriorespacio = False Else MsgBox("Debe de Ingresar slo Letras", MsgBoxStyle.Information, "Cuidado") e.KeyChar = ChrW(0) Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False End If End If

txtFecNac (Evento KeyPress) If Asc(e.KeyChar) = 13 Then Me.txtTurno.Focus() End If

txtFecNac (Evento LostFocus) If IsDate(Me.txtFecNac.Text) Then Ingresados() Else MsgBox("Debe de Ingresar una Fecha Correcta", MsgBoxStyle.Information, "Cuidado") Me.txtFecNac.SelectionStart = 0 Me.txtFecNac.SelectionLength = Len(Me.txtFecNac.Text) Me.txtFecNac.Text = Me.txtFecNac.Text Me.txtFecNac.Focus() End If

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

frmEjercicio72 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Esta Seguro de Salir", MsgBoxStyle.YesNo, "Cuidado") If Resp = MsgBoxResult.No Then REM Si respondio que NO e.Cancel = True End If

frmEjercicio72 (Evento Load) Limpiar()

txtTurno (Evento KeyPress) Dim Letra As String If Asc(e.KeyChar) = 13 Then Me.txtPromedio.Focus() Else Letra = UCase(e.KeyChar) If Letra = "M" Or Letra = "T" Or Letra = "N" Or Asc(e.KeyChar) = 8 Then REM Convierte la Letra a Mayusculas e.KeyChar = UCase(e.KeyChar) Else MsgBox("Debe Ingresar slo las Letras M,T o N", MsgBoxStyle.Information, "Error") REM Ignora el Carcter Ingresado e.KeyChar = ChrW(0) Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False End If End If

txtPromedio (Evento KeyPress) If Numero(Asc(e.KeyChar)) Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 13 Then Ingresados() Else MsgBox("Debe Ingresar Slo Nmeros", MsgBoxStyle.Information, "Cuidado") e.KeyChar = ChrW(0) Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False End If

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

txtPromedio (Evento TextChanged) If Val(Me.txtPromedio.Text) < 0 Or Val(Me.txtPromedio.Text) > 20 Then MsgBox("El Valor Debe Estar Entre 0 y 20", MsgBoxStyle.Information, "Error") Me.txtPromedio.SelectionStart = 0 Me.txtPromedio.SelectionLength = Len(Me.txtPromedio.Text) Me.txtPromedio.Text = Me.txtPromedio.SelectedText Me.txtPromedio.Focus() Me.btnNuevo.Enabled = False Me.btnSalir.Enabled = False Else Ingresados() End If

txtApeNom, txtTurno (Evento TextChanged) Ingresados()

btnNuevo (Evento Click) Limpiar()

btnSalir (Evento Click) Me.Close()

En este ejercicio no casi nada que explicar en el cdigo, ya que es casi lo mismo que hemos usado en el ejercicio anterior, solo me queda dejarle una pequea tabla de cdigo ASCII que hemos usado. De A a la Z = del 65 al 90 De a a la z = del 97 al 122 = 255, = 233, = 237, = 243, = 250, = 241, = 209 De 0 al 9 = del 48 al 57 ENTER = 13 BACKSPACE = 8 ESC = 27 Barra Espaciadora = 32

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

INPUTBOX

El INPUTBOX es una ventana que permite que el usuario pueda ingresar un dato. Su sintaxis es la siguiente:

InputBox(Mensaje, Titulo, Valor Pred., Columna, Fila)

! ! ! ! !

Mensaje Es el mensaje que se desea mostrar cuando se pida el dato a ingresar. Titulo Es el titulo de la ventana. Valor Predeterminado Es el valor que se muestra en forma automtica para ser ingresado. Columna Es un valor que indica la posicin horizontal del formulario, donde se desea que se muestre la ventana. Fila Es un valor que indica la posicin vertical del formulario, donde se desea que se muestre la ventana.

Ejemplo:

Dim resp As String resp = InputBox("Ingrese el Nombre de la Persona", "Nuevo Registro", "Joel Martin Chuco Marrufo")

En este ejemplo hemos declarado una variable resp de tipo cadena, para poder almacenar el nombre que el usuario ingrese, tambin se puede obtener otro tipo de dato, ya sea nmero, fecha.

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

73. Este ejercicio cuenta el nmero de depsitos y retiros realizados por un cliente, adems almacena el total de los montos tanto de retiros como de depsitos efectuados incluyendo el saldo actual.

txtCliente

btnOk

txtMonto

btnDeposito

btnRetiro

lblCantDep lblTotalDep

btnNuevo

lblCantRet

lblTotalRet

btnSalir

lblSaldo

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


Variables a nivel del formulario Dim cd, cr As Integer Dim td, tr, saldo As Single

Funcion Limpia Sub Limpia() cd = 0 cr = 0 td = 0 tr = 0 saldo = 0 Me.txtCliente.Text = "" Me.txtMonto.Text = "" Me.lblCantDep.Text = "" Me.lblCantRet.Text = "" Me.lblSaldo.Text = "" Me.lblTotalDep.Text = "" Me.lblTotalRet.Text = "" Me.btnOk.Visible = True Me.btnDeposito.Enabled = False Me.btnRetiro.Enabled = False Me.txtCliente.ReadOnly = False Me.txtMonto.ReadOnly = True Me.txtCliente.Focus() End Sub

frmEjercicio73 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir de la Aplicacion", MsgBoxStyle.YesNo, "Banco El Amigo") If Resp = MsgBoxResult.No Then e.Cancel = True End If

frmEjercicio73 (Evento Load) Call Limpia()

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnOk (Evento Click) Me.txtCliente.ReadOnly = True Me.txtMonto.ReadOnly = False Me.btnOk.Visible = False Me.btnDeposito.Enabled = True Me.btnRetiro.Enabled = True REM Utilizamos un InputBox para ingresar el saldo inicial saldo = Val(InputBox("Monto de Apertura " + Chr(13) + Chr(13) + "La Cuenta se Apertura con cualquier monto ", "Nueva Cuenta", 350)) Me.lblSaldo.Text = CStr(saldo) td = saldo cd = 1 Me.lblCantDep.Text = CStr(cd) Me.lblTotalDep.Text = CStr(td) Me.txtMonto.Focus()

btnDeposito (Evento Click) Dim deposito As Single deposito = CSng(Me.txtMonto.Text) td = td + deposito cd = cd + 1 Me.lblCantDep.Text = CStr(cd) Me.lblTotalDep.Text = CStr(td) saldo = CSng(Me.lblSaldo.Text) Me.lblSaldo.Text = CStr(saldo + deposito) Me.txtMonto.SelectionStart = 0 Me.txtMonto.SelectionLength = Len(Me.txtMonto.Text) Me.txtMonto.Focus()

btnRetiro (Evento Click) Dim retiro As Single retiro = CSng(Me.txtMonto.Text) saldo = CSng(Me.lblSaldo.Text) If saldo < retiro Then MsgBox("La cantidad que desea retirar excede su saldo actual", MsgBoxStyle.Critical, "Disculpe") Me.txtMonto.Text = "" Me.txtMonto.Focus() Else tr = tr - retiro cr = cr + 1 Me.lblCantRet.Text = CStr(cr) Me.lblTotalRet.Text = CStr(tr) Me.lblSaldo.Text = CStr(saldo - retiro) End If Me.txtMonto.SelectionStart = 0 Me.txtMonto.SelectionLength = Len(Me.txtMonto.Text) Me.txtMonto.Focus()

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

btnNuevo (Evento Click) Call Limpia()

btnSalir (Evento Click) Me.Close()

FORMAT

Esta funcin format nos permite darle un formato a un dato, ya sea una fecha, nmero, hora, etc. Sus formatos mas utilizados son:

Formato devuelto 152,125.32 04 - May - 2006 04/05/06 Jueves, May 04 2006 02:49:35 pm 14:49:35

Formato ###,##0.00 dd MMM - yyyy dd/mm/yy dddd, MMM d yyyy hh:mm:ss tt HH:mm:ss

Su sintaxis seria la siguiente: Format(Variable,Formato) Ejemplo: Dim Numero As Double Numero = 100000/3 Me.Label1.Text = Format(Numero, "###,##0.00") Y lo que nos mostrara el Label en la pantalla seria lo siguiente

33,333.33

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

74. Esta aplicacin nos permite ingresar el nombre del producto, precio anterior y precio actual, luego nos permite calcular el alza en soles y el alza en porcentajes. El alza en porcentaje es igual al alza en soles por 100 entre precio anterior.

txtProducto

txtPrecAn

txtPrecAct

lblAlzaS

lblAlzaP

btnNuevo

btnCalcular

btnSalir

Funcion Limpia Sub Limpia() Me.txtPrecAct.Text = "" Me.txtPrecAnt.Text = "" Me.txtProducto.Text = "" Me.lblAlzaP.Text = "" Me.lblAlzaS.Text = "" Me.txtProducto.Focus() End Sub

frmEjercicio74 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir de la Aplicacion", MsgBoxStyle.YesNo, "Cuidado") If Resp = MsgBoxResult.No Then e.Cancel = True End If

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


frmEjercicio74 (Evento Load) Call Limpia()

btnCalcular (Evento Click) Me.lblAlzaS.Text = CStr(Val(Me.txtPrecAct.Text) - Val(Me.txtPrecAnt.Text)) Me.lblAlzaS.Text = Format(Val(Me.lblAlzaS.Text), "###,##0.00") Me.lblAlzaP.Text = CStr(Val(Me.lblAlzaS.Text) * 100 / Val(Me.txtPrecAnt.Text)) Me.lblAlzaP.Text = Format(Val(Me.lblAlzaP.Text), "###,##0.00") Me.lblAlzaP.Text = Me.lblAlzaP.Text + " %"

btnNuevo (Evento Click) Call Limpia() btnSalir (Evento Click) Me.Close()

75. Esta aplicacin nos permite ingresar el nombre del profesor, el nmero de horas normales que ha trabajado y el nmero de horas extras, luego se debe calcular el total que se le debe pagar por el nmero de horas normales, el total por horas extras y el total a pagar. Si trabajo mas de 48 horas su pago por hora es de S/. 8.00 soles y S/. 7.00 en caso contrario. Por hora extra S/. 9.50.

txtNomProf

txtHT

txtHE

lblPH

btnCalcular

lblTHN btnNuevo

lblTHE

btnSalir

lblTP

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Funcion Limpia Sub Limpia() Me.txtHE.Text = "" Me.txtHT.Text = "" Me.txtNomProf.Text = "" Me.lblPH.Text = "" Me.lblTHE.Text = "" Me.lblTHN.Text = "" Me.lblTP.Text = "" Me.txtNomProf.Focus() End Sub

frmEjercicio75 (Evento Load) Call Limpia()

btnCalcular (Evento Click) Dim PHN As Single PHN = IIf(Val(Me.txtHT.Text) > 48, 8.0, 7.0) Me.lblPH.Text = Format(PHN, "##0.00") Me.lblTHE.Text = Format(Val(Me.txtHE.Text) * 9.5, "###,##0.00") Me.lblTHN.Text = Format(Val(Me.txtHT.Text) * PHN, "###,##0.00") Me.lblTP.Text = Format(Val(Me.lblTHE.Text) + Val(Me.lblTHN.Text), "###,##0.00")

btnNuevo (Evento Click) Call Limpia()

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

SELECT - CASE

Como ya hemos visto antes esta instruccin de seleccin, en las consolas de aplicacin, ahora veremos en las aplicaciones de ventanas, que por cierto no cambian casi nada, y utilizaremos las diversas sintaxis que existen, junto con funciones, clases etc

76. En esta aplicacin se debe de ingresar el nombre del un producto, su precio unitario y la cantidad comprada de dicho producto, luego se debe calcular y visualizar el sub Total, el descuento en porcentaje, el descuento en soles y el total a pagar. El descuento en porcentaje se depende del sub total, de acuerdo a la siguiente tabla.

SUBTOTAl 100 101 De 101.1 a 200 De 200.1 a 500 A partir de 500

DESCUENTO % 2% 4% 6% 10 %

txtProducto

txtPrecUnit

txtCantComp

btnCalcular

lblSubTotal btnNuevo lblDescP btnSalir lblDescS

lblTotal

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Funcion Limpia Sub Limpia() Me.txtCantComp.Text = "" Me.txtPrecUnit.Text = "" Me.txtProducto.Text = "" Me.lblDescP.Text = "" Me.lblDescS.Text = "" Me.lblSubTotal.Text = "" Me.lblTotal.Text = "" Me.txtProducto.Focus() End Sub

frmEjercicio76 (Evento Load) Call Limpia()

btnCalcular (Evento Click) Dim Desc As Integer Me.lblSubTotal.Text = CStr(Val(Me.txtPrecUnit.Text) * Val(Me.txtCantComp.Text)) Select Case Val(Me.lblSubTotal.Text) Case 100, 101 : Desc = 2 Case 101.1 To 200 : Desc = 4 Case 200.1 To 500 : Desc = 6 Case Is > 500 : Desc = 10 Case Else : Desc = 0 End Select Me.lblDescP.Text = CStr(Desc) Me.lblDescS.Text = Format(Val(Me.lblSubTotal.Text) * Desc / 100, "###,##0.00") Me.lblTotal.Text = Format(Val(Me.lblSubTotal.Text) - Val(Me.lblDescS.Text), "###,##0.00") Me.lblSubTotal.Text = Format(Val(Me.lblSubTotal.Text), "###,##0.00")

btnNuevo (Evento Click) Call Limpia()

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

77. En este programa se debe de ingresar el nombre del alumno, su nota nmero 1 y su nota nmero 2, al hacer clic en el botn obtener promedio se debe de visualizar: el promedio del alumno, una observacin que indica si el alumno esta aprobado o desaprobado, la cantidad de puntos que le faltan para aprobar, si esta desaprobado o los puntos para llegar a veinte en caso que este aprobado. Tambin se debe visualizar la nota cualitativa del alumno de acuerdo al promedio. Se debe de controlar que solo se ingresen notas entre 0 y 20.

SUBTOTAl Entre Entre Entre Entre Entre 0y5 5.1 y 10.4 10.5 y 14.4 14.5 y 17.4 17.5 y 20

DESCUENTO % Psimo Malo Regular Bueno Excelente

txtAlumno

txtCurso

txtN1

btnOtro

txtN2

btnObtener

lblPromedio

btnSalir

lblObservacion

lblPuntos

lblCualidad

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Funcin Limpiar Esta funcin limpia los controles TextBox. Sub Limpiar() Me.txtAlumno.Text = "" Me.txtCurso.Text = "" Me.txtN1.Text = "" Me.txtN2.Text = "" Me.lblCualidad.Text = "" Me.lblObservacin.Text = "" Me.lblPromedio.Text = "" Me.lblPuntos.Text = "" Me.txtAlumno.Focus() End Sub

frmEjercicio77 (Evento Load) Limpiar()

txtN1 (Evento GotFocus) Me.txtN1.SelectionStart = 0 Me.txtN1.SelectionLength = Len(Me.txtN1.Text)

txtN2 (Evento GotFocus) Me.txtN2.SelectionStart = 0 Me.txtN2.SelectionLength = Len(Me.txtN2.Text)

txtN1 (Evento LostFocus) If Not IsNumeric(Me.txtN1.Text) Or Val(Me.txtN1.Text) < 0 Or Val(Me.txtN1.Text) > 20 Then MsgBox("Solo Debe Ingresar Notas Entre 0 y 20", MsgBoxStyle.Information, "Cuidado") Me.txtN1.Focus() End If

txtN2 (Evento LostFocus) If Not IsNumeric(Me.txtN2.Text) Or Val(Me.txtN2.Text) < 0 Or Val(Me.txtN2.Text) > 20 Then MsgBox("Solo Debe Ingresar Notas Entre 0 y 20", MsgBoxStyle.Information, "Cuidado") Me.txtN2.Focus() End If

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnObtener (Evento Click) Me.lblPromedio.Text = CStr((Val(Me.txtN1.Text) + Val(Me.txtN2.Text)) / 2) If Val(Me.lblPromedio.Text) >= 10.5 Then Me.lblObservacin.Text = "Aprobado(a)" Me.lblPuntos.Text = "Le faltan " + CStr(20 - Val(Me.lblPromedio.Text)) + " puntos para tener 20" Else Me.lblObservacin.Text = "Desaprobado(a)" Me.lblPuntos.Text = "Le faltan " + CStr(11 - Val(Me.lblPromedio.Text)) + " puntos para aprobar" End If Select Case Val(Me.lblPromedio.Text) Case 0 To 5 : Me.lblCualidad.Text = "Psimo" Case 5.1 To 10.4 : Me.lblCualidad.Text = "Malo" Case 10.5 To 14.4 : Me.lblCualidad.Text = "Regular" Case 14.5 To 17.4 : Me.lblCualidad.Text = "Bueno" Case 17.5 To 20 : Me.lblCualidad.Text = "Excelente" End Select

btnOtro (Evento Click) Limpiar()

btnSalir (Evento Click) Me.Close()

78. En esta aplicacin se debe de ingresar el nombre y el ao de nacimiento de una persona y se tiene que visualizar: su edad, una observacin que indica si es mayor o menor de edad, Si es menor de edad se debe mostrar cuantos aos le faltan para se mayor de edad y si es mayor de edad se debe mostrar hace cuantos aos es mayor de edad. Tambin se debe mostrar la etapa de la persona teniendo en cuenta lo siguiente.

Edad 0 y 12 13 y 17 18 y 30 31 y 70 70 a mas

Etapa Nio Adolescente Joven Adulto Anciano

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

txtNombre btnResultados txtAoNac

lblEdad

btnNuevo

lblObservacion btnSalir

lblAos

lblEtapa

Funcion Limpia Sub Limpia() Me.txtAoNac.Text = "" Me.txtNombre.Text = "" Me.lblAos.Text = "" Me.lblEdad.Text = "" Me.lblEtapa.Text = "" Me.lblObservacion.Text = "" Me.txtNombre.Focus() End Sub

frmEjercicio78 (Evento Load) Call Limpia()

btnNuevo (Evento Click) Call Limpia()

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnResultados (Evento Click) If Not IsNumeric(Me.txtAoNac.Text) Then MsgBox("Ingrese un ao correcto", MsgBoxStyle.Information, "Error") Me.txtAoNac.SelectionStart = 0 Me.txtAoNac.SelectionLength = Len(Me.txtAoNac.Text) Me.txtAoNac.Focus() Exit Sub End If Me.lblEdad.Text = CStr(Val(Year(Now())) - Val(Me.txtAoNac.Text)) If Val(Me.lblEdad.Text) < 18 Then Me.lblObservacion.Text = "Es Menor de Edad" Me.lblAos.Text = "Le Falta " + CStr(18 - Val(Me.lblEdad.Text)) + " aos para ser mayor de edad" Else Me.lblObservacion.Text = "Es Mayor de Edad" Me.lblAos.Text = "Es mayor de edad " + CStr(Val(Me.lblEdad.Text) - 18) + " aos" End If Select Case Val(Me.lblEdad.Text) Case 0 To 12 : Me.lblEtapa.Text = "Nio" Case 13 To 17 : Me.lblEtapa.Text = "Adolescente" Case 18 To 30 : Me.lblEtapa.Text = "Joven" Case 31 To 70 : Me.lblEtapa.Text = "Adulto" Case Is > 70 : Me.lblEtapa.Text = "Anciano" End Select

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

79. Esta aplicacin es un ejemplo del uso de las funciones de cadena que ya hemos visto el concepto.

txtFrase

lblLongitud btnMuestra lblPrimero btnNuevo lblUltimo

lblSegSex

btnSalir

lblPosA lblMinusculas

lblMayusculas

lblSoloPrim

Funcion Limpia Sub Limpia() Me.txtFrase.Text = "" Me.lblLongitud.Text = "" Me.lblMayusculas.Text = "" Me.lblMinusculas.Text = "" Me.lblPosA.Text = "" Me.lblPrimero.Text = "" Me.lblSegSex.Text = "" Me.lblSoloPrim.Text = "" Me.lblUltimo.Text = "" Me.txtFrase.Focus() End Sub

frmEjercicio79 (Evento Load) Call Limpia()

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnNuevo (Evento Click) Call Limpia()

btnMuestra (Evento Click) Me.lblLongitud.Text = Len(Trim(Me.txtFrase.Text)) Me.lblPrimero.Text = Microsoft.VisualBasic.Left(Trim(Me.txtFrase.Text), 1) Me.lblUltimo.Text = Microsoft.VisualBasic.Right(Trim(Me.txtFrase.Text), 1) Me.lblSegSex.Text = Microsoft.VisualBasic.Mid(Trim(Me.txtFrase.Text), 2, 5) Me.lblPosA.Text = InStr(Me.txtFrase.Text, "a") Me.lblMinusculas.Text = LCase(Me.txtFrase.Text) Me.lblMayusculas.Text = UCase(Me.txtFrase.Text) Me.lblSoloPrim.Text = StrConv(Me.txtFrase.Text, 3)

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

UTILIZANDO FUNCIONES DE FECHA Y PUBLICAS Y TAMBIEN MODULOS, CLASES Y NAMESPACE

Funciones Pblicas en un Mdulo

80. En esta aplicacin se debe de ingresar el nombre y la fecha de nacimiento de una persona y se debe de visualizar por separado: el da, mes, ao, nmero del da de la semana, la fecha en letras y la fecha y hora actual. Utilizando dos funciones publicas codificadas en un modulo.

txtNombre

txtFecNac

lblDia btnOk lblMes btnSalir lblAo

lblDiaSem

lblFecIng

lblFecAct

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Primero agregaremos un modulo llamado mdFecha y codificaremos lo siguiente:

Module mdFecha Public Function Dia(ByVal ndia As Integer) As String Dia = Choose(ndia, "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado") End Function Public Function Mes(ByVal nmes As Integer) As String Select Case nmes Case 1 : Mes = "Enero" Case 2 : Mes = "Febrero" Case 3 : Mes = "Marzo" Case 4 : Mes = "Abril" Case 5 : Mes = "Mayo" Case 6 : Mes = "Junio" Case 7 : Mes = "Julio" Case 8 : Mes = "Agosto" Case 9 : Mes = "Setiembre" Case 10 : Mes = "Octubre" Case 11 : Mes = "Noviembre" Case 12 : Mes = "Diciembre" End Select End Function End Module

La funcin da nos hallara el da de la semana segn el nmero de da enviado a esta funcin, igualmente la funcin mes.

btnOk (Evento Click) If Not IsDate(Me.txtFecNac.Text) Then MsgBox("Ingrese una Fecha Correcta", MsgBoxStyle.Information, "Error") Me.txtFecNac.SelectionStart = 0 Me.txtFecNac.SelectionLength = Len(Me.txtFecNac.Text) Me.txtFecNac.Focus() Exit Sub End If Me.lblAo.Text = Year(CDate(Me.txtFecNac.Text)) Me.lblDia.Text = Microsoft.VisualBasic.Day(CDate(Me.txtFecNac.Text)) Me.lblDiaSem.Text = Microsoft.VisualBasic.Weekday(CDate(Me.txtFecNac.Text)) Me.lblMes.Text = Microsoft.VisualBasic.Month(CDate(Me.txtFecNac.Text)) Me.lblFecIng.Text = Dia(Val(Me.lblDiaSem.Text)) + ", " + Me.lblDia.Text + " de " + Mes(Val(Me.lblMes.Text)) + " de " + Me.lblAo.Text

Joel Martin Chuco Marrufo 29

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnSalir (Evento Click) Me.Close()

frmEjercicio80 (Evento Load) Me.lblFecAct.Text = "Hoy es " + CStr(Now)

Clases y NameSpace en un Mdulo

81. En esta aplicacin se debe de ingresar la fecha de nacimiento de una persona y se debe de visualizar por separado: la estacin de la fecha en que naci, su signo zodiacal la semana del ao en que naci, los meses transcurridos desde el ao que naci y la fecha actual despus de tres semanas. Para esto crearemos un NameSpace que contendr la clase y las funciones para hallar la estacin y el signo zodiacal.

txtNombre

txtFecNac

lblDia btnOk lblMes btnSalir lblAo

lblDiaSem

lblFecIng

lblFecAct

Joel Martin Chuco Marrufo 30

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Primero agregaremos un modulo llamado Informacion y codificaremos lo siguiente: Primero borramos todo el cdigo que aparece y cambiamos por lo siguiente:

Namespace Informacion Public Class FecNac Public Function Estacion(ByVal dia As Integer, ByVal mes As Integer) As String If (dia >= 23 And mes = 12) Or mes = 1 Or mes = 2 Or (dia <= 22 And mes = 3) Then Estacion = "Verano" If (dia >= 23 And mes = 3) Or mes = 4 Or mes = 5 Or (dia <= 22 And mes = 6) Then Estacion = "Otoo" If (dia >= 23 And mes = 6) Or mes = 7 Or mes = 8 Or (dia <= 22 And mes = 9) Then Estacion = "Invierno" If (dia >= 23 And mes = 9) Or mes = 10 Or mes = 11 Or (dia <= 22 And mes = 12) Then Estacion = "Primavera" End Function Public Function SignoZodiacal(ByVal dia As Integer, ByVal mes As Integer) As String Select Case mes Case 1 If dia < 21 Then SignoZodiacal = "Capricornio" Else SignoZodiacal = "Acuario" End If Case 2 If dia < 20 Then SignoZodiacal = "Acuario" Else SignoZodiacal = "Piscis" End If Case 3 If dia < 21 Then SignoZodiacal = "Piscis" Else SignoZodiacal = "Aries" End If Case 4 If dia < 21 Then SignoZodiacal = "Aries" Else SignoZodiacal = "Tauro" End If Case 5 If dia < 21 Then SignoZodiacal = "Tauro" Else SignoZodiacal = "Geminis" End If Case 6

Joel Martin Chuco Marrufo 31

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


If dia < 22 Then SignoZodiacal Else SignoZodiacal End If Case 7 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 8 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 9 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 10 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 11 If dia < 22 Then SignoZodiacal Else SignoZodiacal End If Case 12 If dia < 22 Then SignoZodiacal Else SignoZodiacal End If End Select End Function End Class End Namespace = "Geminis" = "Cancer"

= "Cancer" = "Leo"

= "Leo" = "Virgo"

= "Virgo" = "Libra"

= "Libra" = "Escorpio"

= "Escorpio" = "Sagitario"

= "Sagitario" = "Capricornio"

La funcin Estacion nos hallara la estacin del ao en que naci, igualmente la funcin SignoZodiacal que nos hallara el signo zodiacal correspondiente.

Joel Martin Chuco Marrufo 32

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


Al principio de la ventana de codificacin del formulario, escribiremos el siguiente cdigo que nos permite importar el espacio de nombre que hemos creado. Para que lo importamos?, lo importamos para poder utilizar sus clases, funciones que hemos creado. Imports Ejercicio81.Informacion

Funcin Limpia Sub Limpia() Me.txtFecNac.Text = "" Me.lblEstacion.Text = "" Me.lblFecAct.Text = "" Me.lblMesesTrans.Text = "" Me.lblNumSem.Text = "" Me.lblSigno.Text = "" Me.txtFecNac.Focus() End Sub

frmEjercicio81 (Evento Load) Call Limpia() Me.Text = "La Fecha Actual es: " + CStr(Format(Now, "dd / MMMM / yyyy"))

btnOk (Evento Click) Dim ndia, nmes As Integer Dim Estacion, Signo As New Informacion.FecNac If Not IsDate(Me.txtFecNac.Text) Then MsgBox("Ingrese una Fecha Correcta", MsgBoxStyle.Information, "Error") Exit Sub End If ndia = Microsoft.VisualBasic.Day(CDate(Me.txtFecNac.Text)) nmes = Microsoft.VisualBasic.Month(CDate(Me.txtFecNac.Text)) Me.lblEstacion.Text = Estacion.Estacion(ndia, nmes) Me.lblSigno.Text = Signo.SignoZodiacal(ndia, nmes) Me.lblNumSem.Text = Microsoft.VisualBasic.DatePart(DateInterval.WeekOfYear, CDate(Me.txtFecNac.Text)) Me.lblMesesTrans.Text = Microsoft.VisualBasic.DateDiff(DateInterval.Month, CDate(Me.txtFecNac.Text), Now) Me.lblFecAct.Text = Microsoft.VisualBasic.DateAdd(DateInterval.WeekOfYear, 3, Now)

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 33

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

82. Esta aplicacin nos muestra un ejemplo de la utilidad de las funciones de tipo numricas.

txtNumero

lblEntero

lblDecimal

btnMuestra

lblValAbs btnNuevo lblRaiz btnSalir lblSigno

lblValOct

lblValHex

Funcin Limpia Sub Limpia() Me.txtNumero.Text = "" Me.lblDecimal.Text = "" Me.lblEntero.Text = "" Me.lblRaiz.Text = "" Me.lblSigno.Text = "" Me.lblValAbs.Text = "" Me.lblValHex.Text = "" Me.lblValOct.Text = "" Me.txtNumero.Focus() End Sub

frmEjercicio82 (Evento Load) Call Limpia()

Joel Martin Chuco Marrufo 34

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnOk (Evento Click) If Not IsNumeric(Me.txtNumero.Text) Then MsgBox("Ingrese un Nmero", MsgBoxStyle.Information, "Error") Me.txtNumero.Text = "" Me.txtNumero.Focus() Exit Sub End If Me.lblEntero.Text = CStr(CInt(Val(Me.txtNumero.Text))) Me.lblDecimal.Text = CStr(Val(Me.txtNumero.Text) - Val(Me.lblEntero.Text)) Me.lblValAbs.Text = CStr(Math.Abs(Val(Me.txtNumero.Text))) If Val(Me.txtNumero.Text) > 0 Then Me.lblRaiz.Text = CStr(Math.Sqrt(Val(Me.txtNumero.Text))) Else Me.lblRaiz.Text = "No Existe" End If Me.lblSigno.Text = CStr(Math.Sign(Val(Me.txtNumero.Text))) Me.lblValOct.Text = CStr(Microsoft.VisualBasic.Oct(Val(Me.txtNumero.Text))) Me.lblValHex.Text = CStr(Microsoft.VisualBasic.Hex(Val(Me.txtNumero.Text)))

btnSalir (Evento Click) Me.Close()

btnNuevo (Evento Click) Call Limpia()

FUNCION SHELL

La funcin Shell se utiliza para ejecutar programas (archivos ejecutables como *.exe, *.com etc.) desde el visual Basic. Su sintaxis es la siguiente: Shell("Ruta y Nombre del programa", Estilo de Presentacin)

Joel Martin Chuco Marrufo 35

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

83. Esta aplicacin nos permitir ejecutar algunos programas desde el visual Basic.

btnCalc

btnWord

btnExcel

btnExplorador

btnDOS

btnFinalizar

btnCacl (Evento Click) Shell("C:\Windows\System32\calc.exe", AppWinStyle.NormalFocus)

btnWord (Evento Click) Shell("C:\Archivos de programa\Microsoft Office\OFFICE11\winword.exe", AppWinStyle.MaximizedFocus)

btnExcel (Evento Click) Shell("C:\Archivos de programa\Microsoft Office\OFFICE11\excel.exe", AppWinStyle.MaximizedFocus)

Joel Martin Chuco Marrufo 36

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005


btnExplorador (Evento Click) Shell("C:\WINDOWS\explorer.exe", AppWinStyle.MaximizedFocus)

btnDOS (Evento Click) Shell("C:\WINDOWS\system32\cmd.exe", AppWinStyle.NormalFocus)

btnFinalizar (Evento Click) If MsgBox("Deseas salir de la aplicacin?", MsgBoxStyle.YesNo, "Uso de Shell") = MsgBoxResult.Yes Then Me.Close()

Joel Martin Chuco Marrufo 37

Lenguaje de Programacin Capitulo XI Programando con Visual Basic 2005

Bueno seores con esto acaba la Sptima entrega de este manual, les pido disculpas por la demora, pero estaba con trabajo estos dos ltimos meses, aqu les dejo o mejor dicho les envo los programas elaborados hasta ahora y en la prxima entrega realizaremos lo siguiente: ! Arrays ! Procedimientos Cclicos ! Y mejoraremos el aspecto del formulario con mtodos grficos

Bueno conmigo ser hasta la prxima entrega.

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, 04 de mayo de 2006

Joel Martin Chuco Marrufo 38

Capitulo XII

INDICE

CAPITULO XII

Arreglos Ejercicio 84 Ejercicio 85 Ejercicio 86 GDI Los Grficos GDI Ejercicio 87 Control PictureBox Ejercicio 88 Control ListBox y ComboBox Ejemplo Ejercicio 89 Ejercicio 90 Despedida

01 01 02 06 11 11 12 15 17 19 19 23 25 46

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

ARREGLOS

Como hemos visto en el capitulo VI de la entrega 4, hay dos tipos de arreglos, que son los unidimensionales y los multidimensional, como lo sabemos, estos arreglos nos permiten almacenar una cierta informacin, es como si fuera nuestra base de datos, ahora es aqu donde los que no me entendieron en la entrega 4 cuando hable de arreglos, lo puedan entender aqu con un ejemplo, primero veremos un ejercicio de un arreglo unidimensional, y de ah uno bidimensional y al ultimo de esta entrega veremos un ejercicio sobre una pro forma de insumos de computo, hecho con arreglos, funciones y procedimientos.

84. Esta aplicacin nos permite ingresar un nmero del 1 al 7 y visualizar el nombre del da de la semana.

Para esta aplicacin los nombres de los controles son los siguientes:

! ! ! !

El TextBox1 se llamara txtNumero El Label2 se llamara lblNombDia El Button1 se llamara btnOk El Button2 se llamara btnSalir

Si se preguntan por que no puse los nombres de cada control con una figura de llamada, lo que pasa, es que uno se tiene que acostumbra a ponerle nombre a los controles con su prefijo y que el nombre que le pongan tiene que ir con referencia a lo que va a capturar, hacer, mostrar etc.

Declaramos variables a Nivel del Formulario Dim Dias(6) As String

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


frmAplicacion84 (Evento Load) Dias(0) Dias(1) Dias(2) Dias(3) Dias(4) Dias(5) Dias(6) = = = = = = = "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sbado" "Domingo"

btnOk (Evento Click) Dim N As Integer N = Val(Me.txtNumero.Text) If N >= 1 And N <= 7 Then Me.lblNombDia.Text = "El nmero ingresado representa el da " + CStr(Dias(N - 1)) Else MsgBox("Solo nmeros del 1 al 7", MsgBoxStyle.Information, "Por Favor") Me.txtNumero.Text = "" Me.txtNumero.Focus() End If

btnSalir (Evento Click) Me.Close()

85. Esta aplicacin llena los valores al azar entre 1 y 80 en un array de 4 x 4, luego se pueden ordenar en forma ascendente y restaurar los valores iniciales.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Para este caso los controles se llamaran: ! ! Los Buttons se llamaran de acuerdo al texto que llevan, anteponindose su prefijo, ejemplo: el botn Salir se llamara btnSalir. En el caso de las cajas de texto, aunque le pueden colocar unos Labels, el nombre de cada control ser as, teniendo en cuenta que la tabla representa a una matriz y al dibujo de los controles.

txtArray00 txtArray10 txtArray20 txtArray30

txtArray01 txtArray11 txtArray21 txtArray31

txtArray02 txtArray12 txtArray22 txtArray32

txtArray03 txtArray13 txtArray23 txtArray33

Una vez diseada la interfaz y asignada con sus nombres respectivamente, procederemos a codificar.

Declaramos variables a Nivel del Formulario Dim Arreglo(3, 3), Restaurar(3, 3) As Integer Dim Llenar As Boolean

Crearemos un procedimiento llamado almacenar el array con valores del 1 al 80.

LlenarArray,

que

nos

permitir

Sub LlenarArray() Dim J, K As Integer For J = 0 To 3 For K = 0 To 3 Arreglo(J, K) = CInt((80 - 1 + 1) * Rnd() + 1) Next Next End Sub

Crearemos un procedimiento llamado LlenarControles, que nos permitir almacenar los valores del array en las cajas de texto. Sub LlenarControles() Me.txtArray00.Text Me.txtArray01.Text Me.txtArray02.Text Me.txtArray03.Text Me.txtArray10.Text Me.txtArray11.Text Me.txtArray12.Text Me.txtArray13.Text Me.txtArray20.Text

= = = = = = = = =

Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(2,

0) 1) 2) 3) 0) 1) 2) 3) 0)

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Me.txtArray21.Text Me.txtArray22.Text Me.txtArray23.Text Me.txtArray30.Text Me.txtArray31.Text Me.txtArray32.Text Me.txtArray33.Text End Sub = = = = = = = Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(3, Arreglo(3, Arreglo(3, Arreglo(3, 1) 2) 3) 0) 1) 2) 3)

btnNuevo (Evento Click) Me.txtArray00.Text = "" Me.txtArray01.Text = "" Me.txtArray02.Text = "" Me.txtArray03.Text = "" Me.txtArray10.Text = "" Me.txtArray11.Text = "" Me.txtArray12.Text = "" Me.txtArray13.Text = "" Me.txtArray20.Text = "" Me.txtArray21.Text = "" Me.txtArray22.Text = "" Me.txtArray23.Text = "" Me.txtArray30.Text = "" Me.txtArray31.Text = "" Me.txtArray32.Text = "" Me.txtArray33.Text = "" Me.txtArray00.Focus() Llenar = False

btnLlenar (Evento Click) Call LlenarArray() Call LlenarControles() Me.btnOrdenar.Enabled = True Me.btnRestaurar.Enabled = False Llenar = True

btnOrdenar (Evento Click) Dim J, K, X, May As Integer Dim Temp(15) As Integer X=0 REM Guardando los valores del array Arreglo en un array Restaurar REM Almacendo los valores del array Arreglo en un array Temp For J = 0 To 3 For K = 0 To 3 Restaurar(J, K) = Arreglo(J, K) Temp(X) = Arreglo(J, K) X=X+1 Next Next REM Ordenando los valores del array Temp mediante el mtodo

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


REM de la burbuja For J = 0 To 15 For K = 0 To 15 If K < 15 Then If Temp(K) > Temp(K + 1) Then May = Temp(K) Temp(K) = Temp(K + 1) Temp(K + 1) = May End If End If Next Next X=0 REM Asignando los valores del array Temp ordenados en el array Arreglo For J = 0 To 3 For K = 0 To 3 Arreglo(J, K) = Temp(X) X=X+1 Next Next Call LlenarControles() Me.btnRestaurar.Enabled = True

btnRestaurar (Evento Click) Dim J, K As Integer For J = 0 To 3 For K = 0 To 3 Arreglo(J, K) = Restaurar(J, K) Next Next Call LlenarControles()

btnSalir (Evento Click) Me.Close()

Bueno con estos dos ejercicios, creo que ya se les esta quedando en claro lo de los arrays no?, wueno si no es as, haremos un ultimo ejercicio de un arreglo bidimensional, aunque otros seguro estarn diciendo, por que no toca el tema de matriz de matrices?, wueno no lo hago para que no se confundan, adems la programacin a la que yo estoy haciendo es a la programacin comercial, creo que es en donde hay mas trabajo que hacer no?, y adems para que complicarnos la vida, si tenemos diseadores de base de datos, como lo es el MSACCESS o el SQLSERVER, con eso diseadores, no necesitaremos mucho de arreglos, pero siempre es bueno aprender aunque sea los mas principales.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

86. Esta aplicacin nos permite manejar elementos de un Array de 4 x 4. Estos elementos son valores numricos de tipo entero con los cuales se realizaran procesos como Suma de Filas, de Columnas y Diagonales.

Para los nombres de los controles, sea cajas de texto y etiquetas, ser segn el cuadro. txtArreglo00 txtArreglo10 txtArreglo20 txtArreglo30 lblD2 lblC1 txtArreglo01 txtArreglo11 txtArreglo21 txtArreglo31 lblC2 txtArreglo02 txtArreglo12 txtArreglo22 txtArreglo32 lblC3 txtArreglo03 txtArreglo13 txtArreglo23 txtArreglo33 lblC4 lblF1 lblF2 lblF3 lblF4 lblD1

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Para el nombre de los botones ser el siguiente:

Text Limpiar el Array Limpiar los Resultados Suma las Columnas Suma las Filas Llenar el Array Columna 1 Columna 2 Columna 3 Columna 4 Fila 1 Fila 2 Fila 3 Fila 4 Diagonal N 1 [ \ ] Diagonal N 2 [ / ]

Name btnLimpArray btnLimpResult btnSumaCol btnSumaFila btnLlenarArray btnCol1 btnCol2 btnCol3 btnCol4 btnFila1 btnFila2 btnFila3 btnFila4 btnDiagonal1 btnDiagonal2

Una vez diseada la interfaz y asignada con sus nombres respectivamente, procederemos a codificar.

Declaramos variables a Nivel del Formulario Dim Arreglo(3, 3) As Integer Dim J, K, Suma As Integer

Crearemos un procedimiento llamado almacenar el array con valores del 1 al 100.

LlenarArray,

que

nos

permitir

Sub LlenarArreglo() For J = 0 To 3 For K = 0 To 3 Arreglo(J, K) = CInt((100 - 1 + 1) * Rnd() + 1) Next Next End Sub

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Crearemos un procedimiento llamado LlenarControles, que nos permitir almacenar los valores del array en las cajas de texto. Sub LlenarControles() Me.txtArreglo00.Text Me.txtArreglo01.Text Me.txtArreglo02.Text Me.txtArreglo03.Text Me.txtArreglo10.Text Me.txtArreglo11.Text Me.txtArreglo12.Text Me.txtArreglo13.Text Me.txtArreglo20.Text Me.txtArreglo21.Text Me.txtArreglo22.Text Me.txtArreglo23.Text Me.txtArreglo30.Text Me.txtArreglo31.Text Me.txtArreglo32.Text Me.txtArreglo33.Text End Sub

= = = = = = = = = = = = = = = =

Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(3, Arreglo(3, Arreglo(3, Arreglo(3,

0) 1) 2) 3) 0) 1) 2) 3) 0) 1) 2) 3) 0) 1) 2) 3)

btnLimpArray (Evento Click) Me.txtArreglo00.Text Me.txtArreglo01.Text Me.txtArreglo02.Text Me.txtArreglo03.Text Me.txtArreglo10.Text Me.txtArreglo11.Text Me.txtArreglo12.Text Me.txtArreglo13.Text Me.txtArreglo20.Text Me.txtArreglo21.Text Me.txtArreglo22.Text Me.txtArreglo23.Text Me.txtArreglo30.Text Me.txtArreglo31.Text Me.txtArreglo32.Text Me.txtArreglo33.Text = = = = = = = = = = = = = = = = "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

btnLlenarArray (Evento Click) Call LlenarArreglo() Call LlenarControles()

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


btnSumaCol (Evento Click) Dim ResSuma(3) As Integer For K = 0 To 3 Suma = 0 For J = 0 To 3 Suma = Arreglo(J, K) + Suma Next ResSuma(K) = Suma Next Me.lblC1.Text = CStr(ResSuma(0)) Me.lblC2.Text = CStr(ResSuma(1)) Me.lblC3.Text = CStr(ResSuma(2)) Me.lblC4.Text = CStr(ResSuma(3))

btnLimpResultr (Evento Click) Me.lblC1.Text = "" Me.lblC2.Text = "" Me.lblC3.Text = "" Me.lblC4.Text = "" Me.lblD1.Text = "" Me.lblD2.Text = "" Me.lblF1.Text = "" Me.lblF2.Text = "" Me.lblF3.Text = "" Me.lblF4.Text = ""

btnSumaFila (Evento Click) Dim ResSuma(3) As Integer For K = 0 To 3 Suma = 0 For J = 0 To 3 Suma = Arreglo(K, J) + Suma Next ResSuma(K) = Suma Next Me.lblF1.Text = CStr(ResSuma(0)) Me.lblF2.Text = CStr(ResSuma(1)) Me.lblF3.Text = CStr(ResSuma(2)) Me.lblF4.Text = CStr(ResSuma(3))

btnCol1 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, 0) + Suma Next Me.lblC1.Text = CStr(Suma)

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


btnCol2 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, 1) + Suma Next Me.lblC2.Text = CStr(Suma)

btnCol3 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, 2) + Suma Next Me.lblC3.Text = CStr(Suma)

btnCol4 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, 3) + Suma Next Me.lblC4.Text = CStr(Suma)

btnFila1 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(0, K) + Suma Next Me.lblF1.Text = CStr(Suma)

btnLFila2 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(1, K) + Suma Next Me.lblF2.Text = CStr(Suma)

btnFila3 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(2, K) + Suma Next Me.lblF3.Text = CStr(Suma)

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


btnFila4 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(3, K) + Suma Next Me.lblF4.Text = CStr(Suma)

btnDiagonal1 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, K) + Suma Next Me.lblD1.Text = CStr(Suma)

btnDiagonal2 (Evento Click) Suma = 0 For K = 0 To 3 Suma = Arreglo(K, 3 - K) + Suma Next Me.lblD2.Text = CStr(Suma)

GDI

Los Grficos GDI

El CLR (Common Language Runtime) usa una implementacin avanzada de la interfaz de diseo de grfico de Windows, denominada GDI+, que permite crear grficos, dibujar texto y manipular imgenes grficas como si fueran objetos. En otras palabras, el GDI nos permite crear Textos y grficos (Lneas, cuadros, animaciones, etc.) en los formularios que estamos usando. Para crear una imagen, lo podemos hacer mediante una variable o directamente, si lo elaboramos mediante una variable, esta tendr que ser de tipo Graphics. Para que me entiendan un poco mejor, haremos un ejercicio de GDI, algo sencillo, ya que el objetivo de este curso ya les mencione que es el de realizar aplicaciones empresariales.

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

87. Esta aplicacin nos permite visualizar texto, figuras y una pequea animacin creados mediante GDI.

Para el nombre del control Timer1 ser tmrAnimacion y de los botones ser el siguiente:

Text Ver Texto Ver Cuadrado Ver Circulo Ver Poligono Ver Animacion Salir

Name btnTexto btnCuadrado btnCirculo btnPoligono btnAnimacion btnSalir

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Una vez diseada la interfaz y asignada con sus nombres respectivamente, procederemos a codificar.

Declaramos variables a Nivel del Formulario Dim Imagen As Graphics Dim Colores As Integer = 0

btnTexto (Evento Click) Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Blue, Drawing.Color.Green, Drawing2D.LinearGradientMode.Horizontal) Dim Fuente As New Font("Verdana", 30) Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 30, 30)

btnCuadrado (Evento Click) Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Yellow, Drawing.Color.White, Drawing2D.LinearGradientMode.Vertical) Imagen.FillRectangle(color, New Rectangle(30, 90, 100, 100))

btnCirculo (Evento Click) Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Green, Drawing.Color.White, Drawing2D.LinearGradientMode.ForwardDiagonal) Imagen.FillEllipse(color, New Rectangle(150, 90, 100, 100))

btnPoligono (Evento Click) Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Red, Drawing.Color.White, Drawing2D.LinearGradientMode.BackwardDiagonal) Imagen.FillPolygon(color, New PointF() {New PointF(300, 90), New PointF(360, 90), New PointF(390, 140), New PointF(360, 190), New PointF(300, 190), New PointF(270, 140)})

btnAnimacion (Evento Click) Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Blue, Drawing.Color.Green, Drawing2D.LinearGradientMode.Horizontal) Dim Fuente As New Font("Verdana", 30) Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230) Me.tmrAnimacion.Enabled = True Me.tmrAnimacion.Interval = 250

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

tmrAnimacion (Evento Tick) Dim Fuente As New Font("Verdana", 30) If Colores = 0 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.AliceBlue, Drawing.Color.AntiqueWhite, Drawing2D.LinearGradientMode.Horizontal) Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230) ElseIf Colores = 1 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Aqua, Drawing.Color.Aquamarine, Drawing2D.LinearGradientMode.Vertical) Imagen.DrawString("G D I", Fuente, Color, 200, 280) ElseIf Colores = 2 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Azure, Drawing.Color.Beige, Drawing2D.LinearGradientMode.BackwardDiagonal) Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230) ElseIf Colores = 3 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Bisque, Drawing.Color.Black, Drawing2D.LinearGradientMode.ForwardDiagonal) Imagen.DrawString("G D I", Fuente, Color, 200, 280) ElseIf Colores = 4 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.BlanchedAlmond, Drawing.Color.Blue, Drawing2D.LinearGradientMode.Horizontal) Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230) ElseIf Colores = 5 Then Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.BlueViolet, Drawing.Color.Brown, Drawing2D.LinearGradientMode.Vertical) Imagen.DrawString("G D I", Fuente, Color, 200, 280) Colores = 0 End If Colores = Colores + 1

frmAplicacion87 (Evento Load) Imagen = Me.CreateGraphics()

btnSalir (Evento Click) Me.Close()

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

CONTROL PICTUREBOX

Como lo he mencionado antes, este control PictureBox nos permite mostrar imgenes ya seas *.bmp, *.jpg, *.gif, *.png, etc. Las propiedades mas usadas de este control son: ! ! ! ! BackColor; la mayora de veces la usamos para ponerle un color de fondo al control, el color mas usado es el transparente. SizeMode; nos indica como se adecua la imagen ante el control, ya sea estirarlo o mejor dicho auto ajustar, tamaa original, Zoom y centrado. BackgrounImageLayout; nos indica la forma en que se mostrara la imagen, ya sea en mosaico, centrado, estirado o Zoom. Image; aqu establecemos la imagen a mostrar en el tiempo de ejecucin del programa.

Como ya saben, en este control tambin podemos mostrar imgenes en tiempo de ejecucin, hay dos formas de hacerlo, ya sea mediante un array de imgenes o mediante la ruta de la imagen, as que veremos las dos formas. ! Mediante la direccin del archivo
PictureBox.Image = Image.FromFile(Direccion)

Mediante array de imagines (para hacerlo de esta forma, primero tendrn que ingresar las imgenes al Resources, por ejemplo: nos ubicamos en la propiedad image, como se muestra en la figura.

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Una vez ubicado en la propiedad image, daremos clic en el botn y se abrir la siguiente ventana, donde daremos clic en Import e importaremos (aadiremos) las imgenes que vamos a usar, tal como se muestra la imagen.

Una vez aadidas las imgenes daremos clic en Ok de la ventana y despus haremos el siguiente cdigo: REM REM REM REM Declaramos un array de una dimensin y de un solo item llamado Luna de Tipo Image y luego le asignaremos un valor al array de imgenes, en otras palabras, en el ndice 0 del array Luna, le asignaremos la imagen de MOON01 que esta almacenada en la carpeta Resources. Protected Lunas(0) As Image Lunas(0) = My.Resources.MOON01 REM Luego en la propiedad de Image del control, solo le asignaremos el Item 0 del REM array Me.PictureBox.Image = Lunas(0)

Para que me entiendan bien veremos un pequeo ejemplo sobre un array de imgenes y del control PictureBox, para que lo entiendan mejor.

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

88. Esta aplicacin nos permite hallar el rea de una circunferencia, mostrando una pequea animacin.

Como vemos aqu aadiremos un TextBox llamado txtRadio, que nos capturara el radio de la circunferencia, un Label llamado lblArea que nos mostrar el rea de la circunferencia hallada, un Button llamado btnSalir, que nos permitir salir de la aplicacin, un Timer llamado tmrAnimacin, que nos permitir controlar el tiempo que vamos a mostrar las imgenes, y un PictureBox llamado picLunas, que nos mostrar las imgenes.

Declaramos variables a Nivel del Formulario Protected Lunas(7) As Image

frmAplicacion88 (Evento Load) Lunas(0) = My.Resources.MOON01 Lunas(1) = My.Resources.MOON02 Lunas(2) = My.Resources.MOON03 Lunas(3) = My.Resources.MOON04 Lunas(4) = My.Resources.MOON05 Lunas(5) = My.Resources.MOON06 Lunas(6) = My.Resources.MOON07 Lunas(7) = My.Resources.MOON08 Me.tmrAnimacion.Enabled = True Me.tmrAnimacion.Interval = 100

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

tmrAnimacion (Evento Tick) If Me.picLunas.Image Is Lunas(0) Then Me.picLunas.Image = Lunas(1) ElseIf Me.picLunas.Image Is Lunas(1) Then Me.picLunas.Image = Lunas(2) ElseIf Me.picLunas.Image Is Lunas(2) Then Me.picLunas.Image = Lunas(3) ElseIf Me.picLunas.Image Is Lunas(3) Then Me.picLunas.Image = Lunas(4) ElseIf Me.picLunas.Image Is Lunas(4) Then Me.picLunas.Image = Lunas(5) ElseIf Me.picLunas.Image Is Lunas(5) Then Me.picLunas.Image = Lunas(6) ElseIf Me.picLunas.Image Is Lunas(6) Then Me.picLunas.Image = Lunas(7) Else Me.picLunas.Image = Lunas(0) End If

txtRadio (Evento TextChanged) Const PI As Double = 3.14159 If IsNumeric(Me.txtRadio.Text) Then Me.lblArea.Text = "rea = " & CStr(PI * Val(Me.txtRadio.Text) ^ 2) & " u" Else Me.lblArea.Text = "ERROR: Ingrese una Cantidad Numrica" End If

btnSalir (Evento Click) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Terminar la Aplicacin?", MsgBoxStyle.YesNo, "Pregunta") If Resp = MsgBoxResult.Yes Then Me.Close() End If

Fcil no?, como lo ven no es nada del otro mundo, como les vuelvo a repetir, no estoy tocando a la profundidad las propiedades, mtodos de cada control, ya que solo este curso se dedica a realizar programas comerciales.

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

CONTROL LISTBOX Y COMBOBOX

Estos dos controles (ListBox y ComboBox) se parecen mucho, tanto en sus propiedades como en eventos, ya sea aadiendo elementos, eliminndolos, obteniendo el elementos seleccionado, etc. Hay dos formas de ingresar los elementos en estos controles, ya sea mediante un editor (en modo de diseo), o mediante cdigo (en tiempo de ejecucin), para mi y creo que para la mayora de los programadores, la mejor forma de aadir los elementos es mediante cdigo, as que veremos como ingresar, eliminar, ordenar los elementos a un ListBox, mediante un ejemplo, no se preocupen que para los combo box, tambin son iguales. Ejemplo Esta aplicacin nos permite ingresar un numero entero cualquiera a un ListBox, y despus podemos ordenarlos ascendentemente o descendentemente, o eliminar los elementos seleccionados, tambin podremos hallar la media de los elementos del control, teniendo en cuenta que si el nmero de elementos de la lista es impar, la media es igual al nmero colocado en la posicin media de la lista, o si el numero de elementos de la lista es par, la media es igual al promedio de los dos valores medios de la lista. NOTA que se debe de tener ordenados los elementos de la lista en forma ascendente para poder hallar la media.

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Los controles tendrn su nombre respectivo, con referencia a su funcin, el tectbox se llama txtNumIng, el botn aadir se llamara btnAadir, el botn cerrar se llamara btnCerrar, el botn ordenar se llamara btnOrdenar, el botn eliminar se llamara btnEliminar, el botn ejecutar clculo se llamara btnEjecutar, la lista de nmeros (ListBox) se llamar lstNumeros, el radio button ascendente se llamar rdbAscendente y el del descendente se llamara rdbDescendente y por ultimo el Label que muestra la media de la lista de nmeros se llamara lblCalculo. Cuando seleccionaremos un elemento o mas de uno, se activara el botn de eliminar, en caso contrario debe de estar desactivado.

Declaramos variables a Nivel del Formulario Dim Ordenado As Boolean = False

txtNumIng (Evento TextChanged) If IsNumeric(Me.txtNumIng.Text) = True Then Me.btnAadir.Enabled = True Else Me.btnAadir.Enabled = False End If

btnAadior (Evento Click) Me.lstNumeros.Items.Add(Me.txtNumIng.Text) Me.txtNumIng.Text = "" Me.txtNumIng.Focus()

rdbAscendente (Evento CheckedChanged) If Me.rdbAscendente.Checked = True Then Me.btnOrdenar.Enabled = True Else Me.btnOrdenar.Enabled = False End If

rdbDescendente (Evento CheckedChanged) If Me.rdbDescendente.Checked = True Then Me.btnOrdenar.Enabled = True Else Me.btnOrdenar.Enabled = False End If

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

btnOrdenar (Evento Click) Dim NumItems, J, K, Mayor As Integer NumItems = Me.lstNumeros.Items.Count - 1 Dim Temp(NumItems) As Integer 'Almacenamos los valores en un array temporal For J = 0 To NumItems Temp(J) = CInt(Me.lstNumeros.Items(J)) Next 'Mtodo de Ordenacin llamada BURBUJA For J = 0 To NumItems For K = 0 To NumItems If K < NumItems Then If Temp(K) > Temp(K + 1) Then Mayor = Temp(K) Temp(K) = Temp(K + 1) Temp(K + 1) = Mayor End If End If Next Next If Me.rdbAscendente.Checked = True Then 'Limpiar y Llenar el ListBox Me.lstNumeros.Items.Clear() For J = 0 To NumItems Me.lstNumeros.Items.Add(CStr(Temp(J))) Next Ordenado = True ElseIf Me.rdbDescendente.Checked = True Then 'Limpiar y Llenar el ListBox Me.lstNumeros.Items.Clear() For J = 0 To NumItems Me.lstNumeros.Items.Add(CStr(Temp(NumItems - J))) Next Ordenado = False End If

lstNumeros (Evento SelectedIndexChanged) Me.btnEliminar.Enabled = True

btnEliminar (Evento Click) Dim i As Integer Me.btnEliminar.Enabled = False With Me.lstNumeros For i = .SelectedItems.Count - 1 To 0 Step -1 .Items.Remove(.SelectedItems.Item(i)) Next End With

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

btnEjecutar (Evento Click) Dim NumItems, Index, Q As Integer Dim Media As Single NumItems = Me.lstNumeros.Items.Count If Ordenado = False Then MsgBox("Para Hallar la Media, Primero Debe de Ordenar los Elementos en Forma Ascendente", MsgBoxStyle.Information, "ERROR!") Exit Sub End If Q = NumItems \ 2 Index = NumItems - (Q * 2) If Index = 0 Then Index = CInt(Me.lstNumeros.Items.Count) \ 2 Media = (CSng(CInt(Me.lstNumeros.Items(Index)) + CInt(Me.lstNumeros.Items(Index - 1)))) / 2 Else Index = CInt(Me.lstNumeros.Items.Count) \ 2 Media = CSng(CInt(Me.lstNumeros.Items(Index))) End If Me.lblCalculo.Text = CStr(Media)

btnOrdenar (Evento Click) Me.Close()

Para los que son primerizos en este lenguaje de Visual Basic, todo es nuevo para ustedes, sea en otras palabras, para agregar, eliminar o saber el numero de elementos que hay en una lista, ya sea ListBox o ComboBox, siempre tendremos que hacer invocacin al miembro de tems del control, por ejemplo, les dejo algunas instrucciones que mas se utilizan en los dos controles. Para aadir a un elemento ListBox1.Items.Add(Cadena de Texto) ComboBox1.Items.Add(Cadena de Texto)

Para eliminar un elemento ListBox1.Items.Remove(Numero del Elemento a Eliminar) ComboBox1.Items.Remove(Numero del Elemento a Eliminar)

Para saber que elemento se ha seleccionado Variable = ListBox1.SelectedIndex() Variable = ComboBox1.SelectedIndex()

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Para Saber el Numero de los Elementos de la Lista Variable = ListBox1.Items.Count() Variable = ComboBox1.Items.Count()

Para seleccionar un Elemento ListBox1.SelectedIndex = Numero del Elemento a seleccionar ComboBox1.SelectedIndex = Numero del Elemento a seleccionar

Como ya vieron no es nada del otro mundo esto de listas y combo, vamos a hacer un ejercicio de estos dos controles, para que le agarren la onda al ritmo de la music electronic de DJ Tiesto, ok!, pero primero realizaremos un ejercicio con el controls Timer y las funciones de fecha, y de paso les explico lo del control Timer, que se me paso, ups!.

89. Esta aplicacin nos permitir hallar la venta de un producto cualquiera, calculando el Subtotal, IGV y Total de la venta, y a su vez nos mostrara la hora actualizndose cada segundo, mediante un control Timer.

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Primero comencemos con los nombres de cada control, aunque creo que esto es lo que mas me toma tiempo, empecemos, el Label que nos mostrara la fecha se llamara lblFecha, el que nos mostrara se llamara lblHora, el del subtotal se llamara lblSubTotal, el del total se llamara lblTotal y el del IGV se llamara lblIgv, el TextBox que captura el nombre del producto se llamara txtNombProd, el del precio unitario se llamara txtPrecUnit y el de la cantidad se llamara txtCant, los botones de Nuevo, Resultados y Salir se llamaran btnNuevo, btnResultados y btnSalir, respectivamente.

frmAplicacion89 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea salir de la Aplicacin?", MsgBoxStyle.YesNo, "Cuidado") If Resp = MsgBoxResult.No Then e.Cancel = True End If

frmAplicacion89 (Evento Load) Me.tmrHora.Enabled = True Me.lblFecha.Text = Format(Now, "dd - MMMM - yyyy") Me.lblHora.Text = Format(Now, "hh:mm:ss tt") Me.Text = Space(40) + "Ventas"

tmrHora (Evento Tick) Me.lblHora.Text = Format(Now, "hh:mm:ss tt")

btnSalir (Evento Click) Me.Close()

btnNuevo (Evento Click) Me.txtCant.Text = "" Me.txtNombProd.Text = "" Me.txtPrecUnit.Text = "" Me.lblIgv.Text = "" Me.lblSubTotal.Text = "" Me.lblTotal.Text = "" Me.txtNombProd.Focus()

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


btnResultados (Evento Click) Dim SubTotal, IGV, Total As Single SubTotal = CStr(Val(Me.txtCant.Text) * Val(Me.txtPrecUnit.Text)) IGV = SubTotal * 0.19 Total = IGV + SubTotal Me.lblSubTotal.Text = Format(SubTotal, "###,##0.00") Me.lblIgv.Text = Format(IGV, "###,##0.00") Me.lblTotal.Text = Format(Total, "###,##0.00")

Lo nico que deben de saber del control Timer es que cuando uno lo crea, crea desactivado, as que se tiene que activar el control para poder usarlo, esto hace mediante la propiedad Enabled, en la cual tiene que estar en True, y intervalo en que el control se actualizara, por ejemplo, el intervalo de 100 equivalente a un segundo.

se se el es

90. Esta aplicacin nos permitir realizar una pro forma de venta de una tienda comercial de computo, consta de dos formularios, uno que es el principal llamado frmAplicacion90 y otro llamado frmInfo, esta aplicacin esta basada en arreglos y datos almacenados en el programa, con el fin de darnos cuenta que tan importante es tener un diseador de base de datos, ya que la aplicacin sin base de datos que maneje informacin se hara engorrosa y los datos no estaran tan seguros, veamos un ejemplo de este tipo de aplicacin sin una base de datos, y como seria su programacin, primero veremos por formulario, as que el primero ser el formulario frmInfo.

frmInfo

Este formulario tendr un GropuBox que conservara su propio nombre y los Labels de este formulario que solo nos mostraran lo que recepcionan del otro formulario, tendrn los siguientes nombres, de acuerdo a su etiqueta de su costado; lblMainboard, lblProcesador, lblDiscoDuro, lblMemoriaRAM, lblTarjVideo, lblTarjRed, lblCase.

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Y el nico que contendr el formulario va a ser en el control GroupBox1. GroupBox1 (Evento Click) Me.Close()

frmAplicacion90

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Ahora pondremos los nombres respectivos a cada control, en este caso, yo solo dar referencia a que control me refiero y ustedes deben de saber identificar que control es. Ok!, por ejemplo en que forma se esta mostrando los Buttons, los GroupBox y el PictureBox.

Text Cantidad Articulo Marca Modelo Precio Unitario Total Adicionar Cancelar Descripcin Imagen Lista de Cantidad Lista de Descripcin Lista de Precio Unitario Lista de Total Subtotal IGV Total Nueva Pro forma Eliminar Articulo Salir

Name nudCantidad cboArticuo cboMarca cboModelo lblPrecUnit lblTotal btnAdicionar btnCancelar btnDescripcion picArticulo lstCantidad lstDescripcion lstPrecUnit lstTotal lblSubTotalProf lblIGV lblTotalProf btnNuevo btnEliminar btnSalir

QUE ES LO QUE SE PIDE?

Para este caso se pide que esta aplicacin se pueda escoger un articulo y nos muestre su imagen referencial, la marca y el modelo del articulo, y a su vez nos muestre el precio unitario y el precio total, existe un caso en que cuando selecciona un CPU, se nos pueda mostrar su descripcin de ella nada mas, tambin podremos aadir los artculos seleccionados al carrito, y tambin eliminar elementos seleccionados y nos debe de mostrar el total de todos los productos, el subtotal y el IGV. Y para los que les guste hacerlo ms perfecto, tambin le pueden agregar un botn de impresin donde se imprimir el formulario en pantalla.

Una vez ya tenido el diseos del formulario listo y sus descripciones que debe tener, procederemos a la larga, pero larga, larga codificacin.

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Declaramos variables a Nivel del Formulario


Dim Dim Dim Dim Dim Dim Dim Dim Marca(14) As String ModeloImpresora(14), ModeloPC(11), ModeloCD(1), ModeloDVD(1) As String ModeloUSB(3), ModeloModem(1), ModeloMonitor(7), ModeloMP3(5) As String ModeloScaner(9), ModeloTeclado(1), ModeloVideoCamara(1), ModeloWebCam(1) As String DescripcionPC(83) As String Imagenes(15) As Image IndexArticulo, IndexMarca, IndexModelo As Integer Aadir As Boolean = True

Funcin Limpiar esta funcin limpiara los controles del formulario Sub Limpiar() Me.cboArticulo.Text = "" Me.cboMarca.Text = "" Me.cboModelo.Text = "" Me.lblIGV.Text = "" Me.lblPrecUnit.Text = "" Me.lblSubTotalProf.Text = "" Me.lblTotal.Text = "" Me.lblTotalProf.Text = "" Me.lstCantidad.Items.Clear() Me.lstDescripcion.Items.Clear() Me.lstPrecUnit.Items.Clear() Me.lstTotal.Items.Clear() Me.picArticulo.Image = Imagenes(15) End Sub

Funcin MarcaArticulo esta funcin almacenara en el array Marca, las marcas respectivas de los artculos, vlgala redundancia. Sub MarcaArticulo() Marca(0) = "Micronics" Marca(1) = "Cybertel" Marca(2) = "Creative" Marca(3) = "LG" Marca(4) = "Samsung" Marca(5) = "NEC" Marca(6) = "HP" Marca(7) = "Canon" Marca(8) = "Lexmark" Marca(9) = "Epson" Marca(10) = "Xerox" Marca(11) = "Intel" Marca(12) = "PC Chips" Marca(13) = "Syntax" Marca(14) = "ASROCK" End Sub

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Funcin ModeloPCs esta funcin almacena los distintos modelos de PCs Sub ModeloPCs() ModeloPC(0) = "Intel PIV 2.8 GHZ" ModeloPC(1) = "Intel PIV 3.0 GHZ" ModeloPC(2) = "Intel CEL 2.53 GHZ" ModeloPC(3) = "PC Chips 2.4 GHZ" ModeloPC(4) = "PC Chips 2.8 GHZ" ModeloPC(5) = "PC Chips CEL 2.53 GHZ" ModeloPC(6) = "Syntax PIV 2.4 GHZ" ModeloPC(7) = "Syntax PIV 2.8 GHZ" ModeloPC(8) = "Syntax CEL 2.53 GHZ" ModeloPC(9) = "ASROCK P4 2.4 GHZ" ModeloPC(10) = "ASROCK P4 2.8 GHZ" ModeloPC(11) = "ASROCK CEL 2.53 GHZ" End Sub

Funcin ModeloImpresoras esta funcin almacena los distintos modelos de impresora Sub ModeloImpresoras() ModeloImpresora(0) = "HP Deskjet 3920" ModeloImpresora(1) = "HP Multifuncional 1410" ModeloImpresora(2) = "HP Laserjet Color 2600N" ModeloImpresora(3) = "Canon IP-1200 Color" ModeloImpresora(4) = "Canon IP-1600 Color" ModeloImpresora(5) = "Canon Multifuncional MP-150" ModeloImpresora(6) = "Lexmark Color Z515" ModeloImpresora(7) = "Lexmark Multifuncional X1195" ModeloImpresora(8) = "Lexmark Multifuncional X4270" ModeloImpresora(9) = "Epson Stylus C45 U" ModeloImpresora(10) = "Epson LX300+" ModeloImpresora(11) = "Epson FX-2190" ModeloImpresora(12) = "Xerox Laser 3116" ModeloImpresora(13) = "Xerox Laser Multifuncional PE114" ModeloImpresora(14) = "Xerox Laser Color 6100 DB" End Sub

Funcin ModeloCDs esta funcin almacena los distintos modelos de Lectoras Sub ModeloCDs() ModeloCD(0) = "52x24x52 Negro" ModeloCD(1) = "52x24x52 Blanco" End Sub

Funcin ModeloDVDs Quemadores

esta

funcin

almacena

los

distintos

modelos

de

Sub ModeloDVDs() ModeloDVD(0) = "16x Negro" ModeloDVD(1) = "16x Blanco" End Sub

Joel Martin Chuco Marrufo 29

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Funcin ModeloUSBs esta funcin almacena los distintos modelos de memorias USBs Sub ModeloUSBs() ModeloUSB(0) = ModeloUSB(1) = ModeloUSB(2) = ModeloUSB(3) = End Sub

"64 MB" "128 MB" "256 MB" "512 MB"

Funcin ModeloModems esta funcin almacena los distintos modelos de Modems Sub ModeloModems() ModeloModem(0) = "Z135 ADSL" ModeloModem(1) = "Z135 DSL" End Sub

Funcin ModeloMonitores esta funcin almacena los distintos modelos de Monitor Sub ModeloMonitores() ModeloMonitor(0) = "15' ModeloMonitor(1) = "17' ModeloMonitor(2) = "15' ModeloMonitor(3) = "17' ModeloMonitor(4) = "15' ModeloMonitor(5) = "17' ModeloMonitor(6) = "15' ModeloMonitor(7) = "17' End Sub Funcin ModeloMP3s reproductores MP3s Sub ModeloMP3s() ModeloMP3(0) = ModeloMP3(1) = ModeloMP3(2) = ModeloMP3(3) = ModeloMP3(4) = ModeloMP3(5) = End Sub

591S Negro" 793S Negro" 591S Blanco" 793S Blanco" T530SS FLAT Negro" L1750 LCD Negro" T530SS FLAT Blanco" L1750 LCD Blanco"

esta

funcin

almacena

los

distintos

modelos

de

"128 "256 "512 "128 "256 "512

MB" MB" MB" MB / Radio FM" MB / Radio FM" MB / Radio FM"

Joel Martin Chuco Marrufo 30

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Funcin ModeloScaners esta funcin almacena los distintos modelos de Scaner Sub ModeloScaners() ModeloScaner(0) = ModeloScaner(1) = ModeloScaner(2) = ModeloScaner(3) = ModeloScaner(4) = ModeloScaner(5) = ModeloScaner(6) = ModeloScaner(7) = ModeloScaner(8) = ModeloScaner(9) = End Sub

"2400 USB 2400x2400 DPI" "4070 USB 2400x2400 DPI" "LIDE 25 USB" "LIDE 32 USB" "1800 USB 2400x2400 DPI" "2500 USB 2400x2400 DPI" "15T USB 2400x2400 DPI" "18T USB 2400x2400 DPI" "450RT USB 2400x2400 DPI" "500RT USB 2400x2400 DPI"

Funcin ModeloTeclados esta funcin almacena los distintos modelos de Teclado Sub ModeloTeclados() ModeloTeclado(0) = "Office Set" ModeloTeclado(1) = "Multimedia" End Sub

Funcin ModeloVideoCamras esta funcin almacena los distintos modelos de Video Cmaras Sub ModeloVideoCamaras() ModeloVideoCamara(0) = "Zoom 5x, Pantalla LCD 2.5'" ModeloVideoCamara(1) = "Zoom 4x, Pantalla LCD 2.5'" End Sub

Funcin ModeloWebCams esta funcin almacena los distintos modelos de Web Cam Sub ModeloWebCams() ModeloWebCam(0) = "600x480 Pxls." ModeloWebCam(1) = "800x600 Pxls." End Sub

Funcin DescripcionesPC esta funcin almacena las descripciones de cada PC Sub DescripcionesPC() DescripcionPC(0) = "INTEL 865 GVHZ/ Tarj. Sonido Integrado" DescripcionPC(1) = "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" DescripcionPC(2) = "SAMSUNG 80GB 7200 RPM IDE" DescripcionPC(3) = "SPECTEK 512MB PC 533" DescripcionPC(4) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT" DescripcionPC(5) = "D-LINK DFE - 530TX 10/100" DescripcionPC(6) = "PENTIUM IV 500W PRESCOTT" DescripcionPC(7) = "INTEL 915 GAGL/ Tarj. Sonido Integrado" DescripcionPC(8) = "INTEL PIV 3.0 GHZ 1MB, 800MHZ, LGA" DescripcionPC(9) = "SAMSUNG 80GB 7200 RPM IDE"

Joel Martin Chuco Marrufo 31

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


DescripcionPC(10) DescripcionPC(11) DescripcionPC(12) DescripcionPC(13) DescripcionPC(14) DescripcionPC(15) DescripcionPC(16) DescripcionPC(17) DescripcionPC(18) DescripcionPC(19) DescripcionPC(20) DescripcionPC(21) DescripcionPC(22) DescripcionPC(23) DescripcionPC(24) DescripcionPC(25) DescripcionPC(26) DescripcionPC(27) DescripcionPC(28) DescripcionPC(29) DescripcionPC(30) DescripcionPC(31) DescripcionPC(32) DescripcionPC(33) DescripcionPC(34) DescripcionPC(35) DescripcionPC(36) DescripcionPC(37) DescripcionPC(38) DescripcionPC(39) DescripcionPC(40) DescripcionPC(41) DescripcionPC(42) DescripcionPC(43) DescripcionPC(44) DescripcionPC(45) DescripcionPC(46) DescripcionPC(47) DescripcionPC(48) DescripcionPC(49) DescripcionPC(50) DescripcionPC(51) DescripcionPC(52) DescripcionPC(53) DescripcionPC(54) DescripcionPC(55) DescripcionPC(56) DescripcionPC(57) DescripcionPC(58) DescripcionPC(59) DescripcionPC(60) DescripcionPC(61) DescripcionPC(62) DescripcionPC(63) DescripcionPC(64) DescripcionPC(65) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "D-LINK DFE - 530TX 10/100" "PENTIUM IV 500W PRESCOTT" "INTEL 865 PERLL/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "D-LINK DFE - 530TX 10/100" "PENTIUM IV 400W PRESCOTT" "PC CHIPS P25G B800/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 500W PRESCOTT" "PC CHIPS P25G B800/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 500W PRESCOTT" "PC CHIPS P25 B800/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 400W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 400W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE"

Joel Martin Chuco Marrufo 32

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


DescripcionPC(66) DescripcionPC(67) DescripcionPC(68) DescripcionPC(69) DescripcionPC(70) DescripcionPC(71) DescripcionPC(72) DescripcionPC(73) DescripcionPC(74) DescripcionPC(75) DescripcionPC(76) DescripcionPC(77) DescripcionPC(78) DescripcionPC(79) DescripcionPC(80) DescripcionPC(81) DescripcionPC(82) DescripcionPC(83) End Sub = = = = = = = = = = = = = = = = = = "SPECTEK 512MB PC 533" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 400W PRESCOTT"

Funcin LlenarMarcas esta funcin Llena las marcas respectivas de cada articulo en el combo de Marcas del Articulo. Sub LlenarMarcas() Dim Inicio, Final As Integer Dim J As Integer Select Case IndexArticulo Case 0, 6, 9, 10, 12, 14 Inicio = 0 Final = 2 Case 1, 3, 8, 13 Inicio = 3 Final = 4 Case 5, 11 Inicio = 6 Final = 10 Case 2 Inicio = 11 Final = 14 Case 4 Inicio = 2 Final = 5 Case 7 Inicio = 11 Final = 11 End Select Me.cboMarca.Text = "" Me.cboMarca.Items.Clear() For J = Inicio To Final Me.cboMarca.Items.Add(Marca(J)) Next End Sub

Joel Martin Chuco Marrufo 33

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Funcin LlenarModelos esta funcin Llena los modelos respectivos de cada articulo en el combo de Modelo del Articulo. Sub LlenarModelos() Dim J As Integer IndexMarca = Me.cboMarca.SelectedIndex Me.cboModelo.Text = "" Select Case IndexArticulo Case 0, 4, 9 Me.cboModelo.Enabled = False Case Else Me.cboModelo.Enabled = True End Select Select Case IndexArticulo Case 1 Call ModeloCDs() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloCD(J)) Next Case 2 Call ModeloPCs() Me.cboModelo.Items.Clear() Select Case IndexMarca Case 0 For J = 0 To 2 Me.cboModelo.Items.Add(ModeloPC(J)) Next Case 1 For J = 3 To 5 Me.cboModelo.Items.Add(ModeloPC(J)) Next Case 2 For J = 6 To 8 Me.cboModelo.Items.Add(ModeloPC(J)) Next Case 3 For J = 9 To 11 Me.cboModelo.Items.Add(ModeloPC(J)) Next End Select Case 3 Call ModeloDVDs() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloDVD(J)) Next Case 5 Call ModeloImpresoras() Me.cboModelo.Items.Clear() Select Case IndexMarca Case 0 For J = 0 To 2 Me.cboModelo.Items.Add(ModeloImpresora(J)) Next

Joel Martin Chuco Marrufo 34

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 1 For J = 3 To 5 Me.cboModelo.Items.Add(ModeloImpresora(J)) Next Case 2 For J = 6 To 8 Me.cboModelo.Items.Add(ModeloImpresora(J)) Next Case 3 For J = 9 To 11 Me.cboModelo.Items.Add(ModeloImpresora(J)) Next Case 4 For J = 12 To 14 Me.cboModelo.Items.Add(ModeloImpresora(J)) Next End Select Case 6 Call ModeloUSBs() Me.cboModelo.Items.Clear() For J = 0 To 3 Me.cboModelo.Items.Add(ModeloUSB(J)) Next Case 7 Call ModeloModems() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloModem(J)) Next Case 8 Call ModeloMonitores() Me.cboModelo.Items.Clear() Select Case IndexMarca Case 1 For J = 0 To 3 Me.cboModelo.Items.Add(ModeloMonitor(J)) Next Case 0 For J = 4 To 7 Me.cboModelo.Items.Add(ModeloMonitor(J)) Next End Select Case 10 Call ModeloMP3s() Me.cboModelo.Items.Clear() For J = 0 To 5 Me.cboModelo.Items.Add(ModeloMP3(J)) Next Case 11 Call ModeloScaners() Me.cboModelo.Items.Clear() Select Case IndexMarca Case 0 For J = 0 To 1 Me.cboModelo.Items.Add(ModeloScaner(J)) Next

Joel Martin Chuco Marrufo 35

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 1 For J = 2 To 3 Me.cboModelo.Items.Add(ModeloScaner(J)) Next Case 2 For J = 4 To 5 Me.cboModelo.Items.Add(ModeloScaner(J)) Next Case 3 For J = 6 To 7 Me.cboModelo.Items.Add(ModeloScaner(J)) Next Case 4 For J = 8 To 9 Me.cboModelo.Items.Add(ModeloScaner(J)) Next End Select Case 12 Call ModeloTeclados() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloTeclado(J)) Next Case 13 Call ModeloVideoCamaras() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloVideoCamara(J)) Next Case 14 Call ModeloWebCams() Me.cboModelo.Items.Clear() For J = 0 To 1 Me.cboModelo.Items.Add(ModeloWebCam(J)) Next End Select End Sub

Funcin SumarTotales esta funcin halla el total a pagar de los artculos aadidos (Precios). Sub SumarTotales() Dim J As Integer Dim Total, SubTotal, IGV As Double Total = 0 For J = 0 To Me.lstTotal.Items.Count - 1 Total = Total + Val(Me.lstTotal.Items(J)) Next SubTotal = Total * 0.81 IGV = Total - SubTotal Me.lblSubTotalProf.Text = Format(SubTotal, "###,##0.00") Me.lblIGV.Text = Format(IGV, "###,##0.00") Me.lblTotalProf.Text = Format(Total, "###,##0.00") End Sub

Joel Martin Chuco Marrufo 36

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


frmAplicacion90 (Evento FormClosing) If MsgBox("Desea Salir de la Aplicacin?", MsgBoxStyle.YesNo, "Cuidado") = MsgBoxResult.No Then e.Cancel = True End If

frmAplicacion90 (Evento Load) Me.cboArticulo.Items.Add("Audifonos") Me.cboArticulo.Items.Add("Lectora de CD") Me.cboArticulo.Items.Add("CPU") Me.cboArticulo.Items.Add("Lectora de DVD") Me.cboArticulo.Items.Add("Floppy 3 1/2") Me.cboArticulo.Items.Add("Impresora") Me.cboArticulo.Items.Add("Memoria USB") Me.cboArticulo.Items.Add("Modem") Me.cboArticulo.Items.Add("Monitor") Me.cboArticulo.Items.Add("Mouse") Me.cboArticulo.Items.Add("Reporductor MP3") Me.cboArticulo.Items.Add("Scaner") Me.cboArticulo.Items.Add("Teclado") Me.cboArticulo.Items.Add("Video Camara") Me.cboArticulo.Items.Add("Web Cam") Imagenes(0) = My.Resources.Audifonos Imagenes(1) = My.Resources.CD Imagenes(2) = My.Resources.CPU Imagenes(3) = My.Resources.DVD Imagenes(4) = My.Resources.Floppy_Drive Imagenes(5) = My.Resources.Impresora Imagenes(6) = My.Resources.Memoria_USB Imagenes(7) = My.Resources.Modem Imagenes(8) = My.Resources.Monitor Imagenes(9) = My.Resources.Mouse Imagenes(10) = My.Resources.MP3 Imagenes(11) = My.Resources.Scanner Imagenes(12) = My.Resources.Teclado Imagenes(13) = My.Resources.Video_Camara Imagenes(14) = My.Resources.Webcam Imagenes(15) = My.Resources.PC Call Limpiar()

cboArticulo (Evento SelectedIndexChanged) IndexArticulo = Me.cboArticulo.SelectedIndex Me.picArticulo.Image = Imagenes(IndexArticulo) Me.cboModelo.Text = "" Me.lblPrecUnit.Text = "" Me.lblTotal.Text = "" Me.cboMarca.Enabled = True Call MarcaArticulo() Call LlenarMarcas() If IndexArticulo <> 2 Then

Joel Martin Chuco Marrufo 37

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Me.btnDescripcion.Enabled = False Else Me.btnDescripcion.Enabled = True End If

btnDescripcion (Evento Click) Dim Inicio As Integer If Me.cboMarca.Text = "" Then MsgBox("Seleccione la Marca de la PC", MsgBoxStyle.Information, "Cuidado!") ElseIf Me.cboModelo.Text = "" Then MsgBox("Seleccione el Modelo de la PC", MsgBoxStyle.Information, "Cuidado!") Else Call DescripcionesPC() IndexMarca = Me.cboMarca.SelectedIndex IndexModelo = Me.cboModelo.SelectedIndex Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Inicio = 0 Case 1 : Inicio = 7 Case 2 : Inicio = 14 End Select Case 1 Select Case IndexModelo Case 0 : Inicio = 21 Case 1 : Inicio = 28 Case 2 : Inicio = 35 End Select Case 2 Select Case IndexModelo Case 0 : Inicio = 42 Case 1 : Inicio = 49 Case 2 : Inicio = 56 End Select Case 3 Select Case IndexModelo Case 0 : Inicio = 63 Case 1 : Inicio = 70 Case 2 : Inicio = 77 End Select End Select My.Forms.frmInfo.lblMainboard.Text = DescripcionPC(Inicio) My.Forms.frmInfo.lblProcesador.Text = DescripcionPC(Inicio + 1) My.Forms.frmInfo.lblDiscoDuro.Text = DescripcionPC(Inicio + 2) My.Forms.frmInfo.lblMemoriaRAM.Text = DescripcionPC(Inicio + 3) My.Forms.frmInfo.lblTarjVideo.Text = DescripcionPC(Inicio + 4) My.Forms.frmInfo.lblTarjRed.Text = DescripcionPC(Inicio + 5) My.Forms.frmInfo.lblCase.Text = DescripcionPC(Inicio + 6) frmInfo.ShowDialog() End If

Joel Martin Chuco Marrufo 38

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


cboMarca (Evento SelectedIndexChanged) Call LlenarModelos() IndexMarca = Me.cboMarca.SelectedIndex Select Case IndexArticulo Case 0 Select Case IndexMarca Case 0 : Me.lblPrecUnit.Text = "4.10" Case 1 : Me.lblPrecUnit.Text = "4.00" Case 2 : Me.lblPrecUnit.Text = "4.15" End Select Aadir = True Case 4 Select Case IndexMarca Case 0 : Me.lblPrecUnit.Text = "9.50" Case 1 : Me.lblPrecUnit.Text = "9.15" Case 2 : Me.lblPrecUnit.Text = "9.30" Case 3 : Me.lblPrecUnit.Text = "10.20" End Select Aadir = True Case 9 Select Case IndexMarca Case 0 : Me.lblPrecUnit.Text = "7.50" Case 1 : Me.lblPrecUnit.Text = "7.10" Case 2 : Me.lblPrecUnit.Text = "7.95" End Select Aadir = True Case Else Me.lblPrecUnit.Text = "0.00" Aadir = False End Select Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value, "#####0.00")

nudCantidad (Evento ValueChanged) Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value, "#####0.00")

cboModelo (Evento SelectedIndexChanged) IndexArticulo = Me.cboArticulo.SelectedIndex IndexMarca = Me.cboMarca.SelectedIndex IndexModelo = Me.cboModelo.SelectedIndex Select Case IndexArticulo Case 1 Select Case IndexMarca Case 0 : Me.lblPrecUnit.Text = "29.00" Case 1 : Me.lblPrecUnit.Text = "30.00" End Select Case 2 Select Case IndexMarca Case 0 Select Case IndexModelo

Joel Martin Chuco Marrufo 39

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 0 : Me.lblPrecUnit.Text = "579.00" Case 1 : Me.lblPrecUnit.Text = "689.00" Case 2 : Me.lblPrecUnit.Text = "499.00" End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "510.00" Case 1 : Me.lblPrecUnit.Text = "560.00" Case 2 : Me.lblPrecUnit.Text = "459.00" End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "532.00" Case 1 : Me.lblPrecUnit.Text = "619.00" Case 2 : Me.lblPrecUnit.Text = "489.00" End Select Case 3 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "530.00" Case 1 : Me.lblPrecUnit.Text = "614.00" Case 2 : Me.lblPrecUnit.Text = "480.00" End Select End Select Case 3 Select Case IndexMarca Case 0 : Me.lblPrecUnit.Text = "60.00" Case 1 : Me.lblPrecUnit.Text = "63.00" End Select Case 5 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "179.00" Case 1 : Me.lblPrecUnit.Text = "239.00" Case 2 : Me.lblPrecUnit.Text = "320.00" End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "139.00" Case 1 : Me.lblPrecUnit.Text = "159.00" Case 2 : Me.lblPrecUnit.Text = "239.00" End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "149.00" Case 1 : Me.lblPrecUnit.Text = "239.00" Case 2 : Me.lblPrecUnit.Text = "259.00" End Select Case 3 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "129.00" Case 1 : Me.lblPrecUnit.Text = "149.00" Case 2 : Me.lblPrecUnit.Text = "179.00" End Select Case 4 Select Case IndexModelo

Joel Martin Chuco Marrufo 40

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 0 : Me.lblPrecUnit.Text = "189.00" Case 1 : Me.lblPrecUnit.Text = "259.00" Case 2 : Me.lblPrecUnit.Text = "350.00" End Select End Select Case 6 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "42.00" Case 1 : Me.lblPrecUnit.Text = "62.00" Case 2 : Me.lblPrecUnit.Text = "84.00" Case 3 : Me.lblPrecUnit.Text = "96.00" End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "41.00" Case 1 : Me.lblPrecUnit.Text = "63.00" Case 2 : Me.lblPrecUnit.Text = "82.00" Case 3 : Me.lblPrecUnit.Text = "99.00" End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "42.00" Case 1 : Me.lblPrecUnit.Text = "64.00" Case 2 : Me.lblPrecUnit.Text = "86.00" Case 3 : Me.lblPrecUnit.Text = "92.00" End Select End Select Case 7 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "89.00" Case 1 : Me.lblPrecUnit.Text = "69.00" End Select Case 8 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0, 2 : Me.lblPrecUnit.Text = "320.00" Case 1, 3 : Me.lblPrecUnit.Text = "290.00" End Select Case 1 Select Case IndexModelo Case 0, 2 : Me.lblPrecUnit.Text = "149.00" Case 1, 3 : Me.lblPrecUnit.Text = "179.00" End Select End Select Case 10 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "48.00" Case 1 : Me.lblPrecUnit.Text = "69.00" Case 2 : Me.lblPrecUnit.Text = "84.00" Case 3 : Me.lblPrecUnit.Text = "56.00" Case 4 : Me.lblPrecUnit.Text = "76.00"

Joel Martin Chuco Marrufo 41

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 5 : Me.lblPrecUnit.Text End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text Case 2 : Me.lblPrecUnit.Text Case 3 : Me.lblPrecUnit.Text Case 4 : Me.lblPrecUnit.Text Case 5 : Me.lblPrecUnit.Text End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text Case 2 : Me.lblPrecUnit.Text Case 3 : Me.lblPrecUnit.Text Case 4 : Me.lblPrecUnit.Text Case 5 : Me.lblPrecUnit.Text End Select End Select Case 11 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 3 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 4 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select End Select Case 12 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select = "99.00"

= = = = = =

"47.00" "67.00" "80.00" "59.00" "81.00" "110.00"

= = = = = =

"49.00" "69.00" "87.00" "59.00" "80.00" "115.00"

= "130.00" = "140.00"

= "136.00" = "159.00"

= "124.00" = "179.00"

= "146.00" = "184.00"

= "155.00" = "210.00"

= "11.00" = "15.00"

Joel Martin Chuco Marrufo 42

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "8.00" Case 1 : Me.lblPrecUnit.Text = "16.00" End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "13.00" Case 1 : Me.lblPrecUnit.Text = "19.00" End Select End Select Case 13 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "789.00" Case 1 : Me.lblPrecUnit.Text = "999.00" End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "814.00" Case 1 : Me.lblPrecUnit.Text = "1025.00" End Select End Select Case 14 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "18.00" Case 1 : Me.lblPrecUnit.Text = "27.00" End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "17.00" Case 1 : Me.lblPrecUnit.Text = "25.00" End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text = "18.00" Case 1 : Me.lblPrecUnit.Text = "29.00" End Select End Select End Select Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value, "#####0.00")

btnAdicionar (Evento Click) Dim Descripcion As String If Me.cboArticulo.Text <> "" AndAlso Me.cboMarca.Text <> "" Then Descripcion = Me.cboArticulo.Text + " \ " + Me.cboMarca.Text If Aadir = False Then If Me.cboModelo.Text <> "" Then Descripcion = Descripcion + " \ " + Me.cboModelo.Text Else

Joel Martin Chuco Marrufo 43

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


MsgBox("Escoja El Modelo del Articulo", MsgBoxStyle.Information, "Error") Exit Sub End If End If Me.lstCantidad.Items.Add(CStr(Me.nudCantidad.Value)) Me.lstDescripcion.Items.Add(Descripcion) Me.lstPrecUnit.Items.Add(Me.lblPrecUnit.Text) Me.lstTotal.Items.Add(Me.lblTotal.Text) Call SumarTotales() Else MsgBox("Escoja El Articulo y/o Marca a Aadir al Carrito", MsgBoxStyle.Information, "Error") End If

lstCantidad (Evento SelectedIndexChanged) Dim Index As Integer Index = Me.lstCantidad.SelectedIndex Me.lstDescripcion.SelectedIndex = Index Me.lstPrecUnit.SelectedIndex = Index Me.lstTotal.SelectedIndex = Index Me.btnEliminar.Enabled = True

lstDescripcion (Evento SelectedIndexChanged) Dim Index As Integer Index = Me.lstDescripcion.SelectedIndex Me.lstCantidad.SelectedIndex = Index Me.lstPrecUnit.SelectedIndex = Index Me.lstTotal.SelectedIndex = Index Me.btnEliminar.Enabled = True

lstPrecUnit (Evento SelectedIndexChanged) Dim Index As Integer Index = Me.lstPrecUnit.SelectedIndex Me.lstDescripcion.SelectedIndex = Index Me.lstCantidad.SelectedIndex = Index Me.lstTotal.SelectedIndex = Index Me.btnEliminar.Enabled = True

lstTotal (Evento SelectedIndexChanged) Dim Index As Integer Index = Me.lstTotal.SelectedIndex Me.lstDescripcion.SelectedIndex = Index Me.lstPrecUnit.SelectedIndex = Index Me.lstCantidad.SelectedIndex = Index Me.btnEliminar.Enabled = True

Joel Martin Chuco Marrufo 44

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005


btnCancelar (Evento Click) Dim Index As Integer Index = Me.lstCantidad.Items.Count - 1 Me.lstCantidad.Items.RemoveAt(Index) Me.lstDescripcion.Items.RemoveAt(Index) Me.lstPrecUnit.Items.RemoveAt(Index) Me.lstTotal.Items.RemoveAt(Index) Call SumarTotales()

btnEliminar (Evento Click) Dim Index As Integer Index = Me.lstCantidad.SelectedIndex Me.lstCantidad.Items.RemoveAt(Index) Me.lstDescripcion.Items.RemoveAt(Index) Me.lstPrecUnit.Items.RemoveAt(Index) Me.lstTotal.Items.RemoveAt(Index) Me.btnEliminar.Enabled = False Call SumarTotales()

btnNuevo (Evento Click) Call Limpiar()

btnSalir (Evento Click) Me.Close()

Como se abran dado cuenta la codificacin de esta aplicacin en muy tediosa, pero aqu se encuentra casi todo los que hemos avanzado hasta ahora

Joel Martin Chuco Marrufo 45

Lenguaje de Programacin Capitulo XII Programando con Visual Basic 2005

Bueno seores con esto acaba la Octava entrega de este manual, quisiera pedirles una consulta, que es sobre la entrega dcima, tengo una idea y quiero consultarlo con ustedes, se que hasta ahora no hemos tocado el tema de base de datos, as que les parece, que si para la dcima entrega, elaboramos un programa casi completo, mejor dicho, un programa con formularios de presentacin, de ingreso de usuarios, de procesos, consultas, reportes, ayuda, y casi todo lo que tiene una programa de verdad, desde el diseo y modelamiento de la base de datos, este programa, se tratara de ya se de una empresa de fabricacin de mermeladas o de un centro comercial de ventas de GLP (Gas Licuado de Petrleo), ya que cuento con informacin de estos dos, aunque acepto sugerencias, y por supuesto que cada sugerencia de un programa, tiene que se con su informacin, en otras palabras aquella persona que propone que hagamos otro tipo de programa, nos tendr que brindar toda la informacin necesaria, eso quiere decir, su funcionamiento, los artculos, el manejo de ellos, los tipos de consultas, reportes, como esta estructurado su informacin, bueno espero sus comentarios en la pagina web www.lawebdelprogramador.com en la seccin del manual, en caso que no deseen que sea de esta forma la dcima entrega, lo haremos como hasta ahora, por temas, y si lo desean de la forma que propongo lo realizaremos paso por paso, mejor dicho las entregas lo haremos por partes, para que lo vayan avanzando como yo lo avanzo. Aqu les dejo o mejor dicho les envo los programas elaborados hasta ahora, las imgenes que utilizo en esta entrega y en la prxima entrega realizaremos lo siguiente: ! Los dems controles (WebBrowser, ListView, TreeView, etc.) Bueno conmigo ser hasta la prxima entrega.

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, 06 de Junio de 2006

Joel Martin Chuco Marrufo 46

Vous aimerez peut-être aussi