Anda di halaman 1dari 85

UNIVERSIDAD NACIONAL DE CAJAMARCA

FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS ESTADISTICA E
INFORMATICA

Visual Basic .NET


APUNTES DE CLASE

Eduardo A. Barrantes Meja


INGENIERO CIVIL

Cajamarca, septiembre de 2015

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

CAPITULO I
DISEO DE PROGRAMAS
Cuando se utiliza un computador para solucionar o resolver un sistema especfico o un
determinado problema; la solucin se denomina programa. Un programa se escribe en un
lenguaje de programacin y a la actividad de expresar la solucin de un problema mediante un
programa se denomina programacin.
Cada paso de la solucin de un problema est expresado por medio de una instruccin de
programa. Un programa est formado por una secuencia de instrucciones, cada una de las
cuales especifica las operaciones que debe realizar el computador.
Proceso de la Programacin
a. Anlisis del problema.
b. Diseo del algoritmo.
c. Verificacin manual del algoritmo
d. Codificacin del problema.
e. Depuracin y verificacin del programa.
f. Documentacin.
g. Mantenimiento.
Para disear correctamente un programa se deben seguir los siguientes pasos:

Definicin y Anlisis del Problema


Diseo del Algoritmo.
Verificacin manual del algoritmo.

1.1. Definicin y Anlisis del Problema.


a. Enunciado del problema claro y completo.
b. Que datos de Salida o Resultados se esperan.
c. Que datos de Entrada se necesitan para obtener los resultados esperados.
Es importante tener en cuenta que: "No se puede hacer un sistema experto si no se es
experto en la materia", esto quiere decir que debemos conocer profundamente el tema que se
desea automatizar.
Cuando buscamos la solucin de un problema que deba realizarse con un computador es
til ponerse en su lugar y preguntarse Que resultados debo obtener? Que datos necesito para
resolver el problema?

Apuntes de Clase

Pg. 2

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
1.2. Diseo del Algoritmo.
Algoritmo: Es un conjunto de instrucciones que especifican el orden de la secuencia de
operaciones a realizar para resolver un sistema especfico o clase de problema.
Algoritmo: Procedimiento paso a paso para solucionar un problema dado.
Algoritmo: Frmula para la solucin de un problema.
Algoritmo toma su nombre del famoso matemtico y astrnomo rabe Al-khwarizmi
(siglo IX), que escribi un conocido tratado sobre manipulacin de nmeros y ecuaciones
titulado Kitab al-jabr w'almugabala.
Idea de algoritmo: Secuencia de pasos sin ambigedades que lleva a la solucin de un
problema. Ejemplo El diseo de una mezcla para lograr un concreto de 210 Kg/cm2.
1.2.1. Caractersticas de un Algoritmo:
a) Debe ser preciso e indicar el orden de realizacin de cada paso.
b) Debe estar definido: si se sigue el algoritmo, dos o ms veces, se debe obtener siempre el
mismo resultado.
c) Debe ser finito: si se sigue un algoritmo se debe terminar en algn momento.
1.2.2. Partes de un Algoritmo:

ENTRADA
Datos

PROCESO

SALIDA

Transformacin

Resultados

base, altura
Superficie = base * altura
El rea es = , Superficie
ENTRADA: Informacin dada al algoritmo.
PROCESO: Clculos necesarios para encontrar la solucin del problema.
SALIDA : Respuestas dadas por el algoritmo o resultados finales de los clculos.
El algoritmo es independiente del lenguaje de programacin que se utilice con el
computador.
Ejemplo: Clculo de la superficie de un rectngulo.
Anlisis del problema:
Superficie = base x altura
Algoritmo:
Inicio
ENTRADA (Datos) . : base y altura.
PROCESO (Transformacin): calcular Superficie = base * altura.
SALIDA (Resultados): mostrar El rea es = , Superficie
Fin.

Apuntes de Clase

Pg. 3

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
1.3. Herramientas para escribir algoritmos:
La estructura de un algoritmo se puede representar en un diagrama estructurado en forma
de bloques, donde se muestran las diferentes tareas que deben ser ejecutadas y su relacin
entre ellas. Entre otras tenemos las siguientes herramientas:

Diagrama de Pasada
Diagramas de flujo.
Pseudocdigos.
Diagramas de Nassi-Sneiderman (N-S) o de Chapin.

1.3.1. Diagrama de Pasada:


Permite visualizar lo que se desea realizar, indicando que datos se necesitan, que se desea
ejecutar y que resultados de salida se esperan. Ponerse en el lugar del computador: que
resultados se debe entregar?, que datos necesito para entregar los resultados?

base, altura
Calcular el rea del
Rectnguulo

El rea es = , Superficie

ENTRADA

PROCESO

SALIDA

1.3.2. Diagramas de flujo


El flujo lgico del algoritmo se muestra en un dibujo como una representacin grfica del
algoritmo. Los diagramas de flujo han sido la herramienta de programacin por excelencia.
Tienen una gran limitacin son difciles de actualizar y complejos de leer si ocupan varias
pginas, cuando se han de modificar los diagramas de flujo resulta una tarea difcil
precisamente por su carcter grfico.
1.3.2.1. Recomendaciones para la confeccin de diagramas de flujo:
a. Todo diagrama debe indicar claramente en donde empieza y en donde termina.
b. Se debe desarrollar preferentemente de arriba hacia abajo y de izquierda hacia la derecha.
c. Los smbolos deben dibujarse proporcionados y balanceados unos con otros.
d. En un diagrama se escribe que se hace, no se codifican las instrucciones a realizar.
e. No deben existir ciclos (bucles o lazos o loops) infinitos o partes por los cuales nunca pase
la lgica del programa en ejecucin.
f. Un diagrama debe ser claro y bien presentado.
g. El uso de conectores en ocasiones elimina flechas que dan una mala imagen; sin embargo,
el uso exagerado de los mismos dificulta el entendimiento del diagrama.
h. Los nombres que se asignen a las variables o campos se recomienda que sean
nemotcnicos; es decir, que indiquen para que sirven.

Apuntes de Clase

Pg. 4

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
i. El smbolo para operaciones de asignacin (el rectngulo) y cualquier smbolo para
operaciones de entrada o salida pueden ser precedidos de una o varias flechas, pero slo
pueden ser seguidos por una flecha.
1.3.2.2. Smbolos y Convenciones:
En la actualidad los smbolos usados en diagramacin se han estandarizado. Los ms
usados son los proporcionados por la ISO (International Organization for Standarization) y la
ANSI (American National Standards Institute, Inc).
SIMBOLO

DESCRIPCION
Inicial / Terminal, para indicar en dnde empieza y en
donde termina el diagrama
Proceso, cualquier tipo de operacin (tales como
desarrollar una expresin aritmtica o mover un dato
de un campo a otro).
Decisin, para evaluar una condicin y plantear la
seleccin de una alternativa.
Flechas, para unir los dems smbolos del diagrama e
indicar la secuencia de las instrucciones.
Conector en la misma pgina.

Conector a otra pgina

Pantalla, para mostrar mensajes al operador o pedir


algn dato a tiempo de ejecucin del programa
Documento Impreso, para indicar que se imprime
algn resultado.
Datos Almacenados, para instrucciones de
lectura,.grabacin o actualizar (regrabar)
Archivo en cinta magntica, para instrucciones de
lectura o grabacin
Entrada manual de datos, desde el teclado de un
computador
Disco Magntico, para instrucciones de lectura,
grabacin o actualizacin.

Apuntes de Clase

Pg. 5

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Proceso predefinido, para la ejecucin de un bloque
de instrucciones (subrutina procedimiento
funcin)

Utilizando estos smbolos el algoritmo para encontrar el rea de un rectngulo sera:


Inicio
Ingresar la base:

base
Ingresar la altura:

altura

Superficie = base * altura

El rea es = , Superficie

Fin
1.3.3. Pseudocdigo
Es un lenguaje algortmico escrito en el lenguaje natural pero ms conciso y
que permite una redaccin rpida del algoritmo aunque lgicamente no tendr la precisin en
sus operaciones que en los lenguajes de programacin. El pseudocdigo es fcil de mantener,
ya que sus modificaciones se pueden realizar con un procesador de textos.
Se concibi para superar las dos principales desventajas del diagrama de flujo que es lento
de crear y difcil de modificar sin un nuevo dibujo.
Es ms fcil de utilizar ya que es similar al espaol en nuestro caso.
Para el ejercicio del rea del rectngulo el pseudocdigo sera:
Programa EB_Area_del_rectngulo;
Variables:
base, altura, Superficie tipo entero;

Apuntes de Clase

Pg. 6

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Inicio
Escribir (Ingresar la base: );
Leer (base);
Escribir (Ingresar la altura: );
Leer (altura);
Superficie = base * altura.
Escribir ( El rea es = , Superficie);
Fin.
Ejemplo: Se desea calcular la suma de los n primeros nmeros.
Definicin y Anlisis del Problema
S=1+2+3+...+n
Pseudocdigo:
Programa EB_Suma_nmeros_naturales;
Variables
n, suma tipo real;
Inicio
Leer n;
suma 0;
Para i 1 hasta n hacer
suma suma+i;
Fin_para;
Escribir "La suma de los n primeros nmeros es: ", suma;
Fin.
Las palabras reservadas Inicio, Leer, Para, hasta, hacer, Escribir; que estn
subrayadas describen las estructuras de control fundamentales y procesos que se deben
realizar. Es importante hacer notar la forma de escribir el pseudocdigo el identado (sangrado
o justificado a la izquierda) permite dar mantenimiento (leer, corregir, escribir), a los
algortmos posteriormente.
1.2.9. Escritura inicial de un algoritmo:
El sistema para escribir un algoritmo consiste en realizar una descripcin paso a paso con
un lenguaje natural. Siendo un algoritmo un mtodo o conjunto de reglas para solucionar un
problema. En clculos elementales estas reglas tienen las siguientes propiedades:
a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado diferente.
b) Slo puede ejecutarse una operacin a la vez.
El flujo de control usual de un algoritmo general es secuencial. Ejemplo: El algoritmo que
soluciona renovar el DNI, por caducidad puede ser:
1. Ir al Banco de la nacin.
2. Comprar recibo.
3. Ir al RENIEC.
4. Regresar a casa.

Apuntes de Clase

Pg. 7

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Consta de cuatro acciones bsicas.
El algoritmo general se descompondr en pasos ms simples en un procedimiento llamado
refinamiento sucesivo, pues, cada accin puede descomponerse a su vez en otras acciones ms
simples, as por ejemplo:
1. Inicio
2. Ver si atienden en el Banco con venta de recibos para renovacin del DNI.
3. Si venden recibos entonces
Si hay cola entonces ponerse a la cola
Mientras haya personas delante hacer
Avanzar repetidamente hasta llegar a la ventanilla de atencin
Si_No venden recibos entonces
Decidir otra actividad.
4. Comprar recibo
5. Ir al RENIEC
Mientras llenan nuestra ficha hacer
Que el empleado escriba correctamente nuestros datos personales.
6. Abandonar la oficina del RENIEC.
7. Regresar a casa
8. Fin.
La capacidad de decisin permite seleccionar alternativas de acciones a seguir. Tambin
podemos repetir una y otra vez las acciones bsicas. Ejemplo:
Si venden recibos ponerse a la cola
Mientras haya personas en la cola, ir avanzando repetidamente hasta llegar a la ventanilla
de atencin.
Si_No esperar, leer peridico, decidir otra actividad.

1.3.4. Diagramas de Nassi Sneiderman o de Chapin.


Los diagramas de Nassi Sneiderman estn constituidos por una serie de rectngulos que se
van rellenando de arriba hacia abajo, empleando las tres estructuras bsicas de la
programacin estructurada.

Secuencial

Apuntes de Clase

Decisin Simple

Pg. 8

Decisin Mltiple

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

Hacer mientras

Mientras

Para hacer

En el presente trabajo, como herramienta para escribir los algoritmos utilizaremos el


pseudocdigo, por ser una forma sencilla de escribirlo, leer, mantener y transcribir para su
implementacin a cualquier lenguaje de programacin.
1.4. Verificacin o Validacin Manual del Algoritmo, o Prueba de Escritorio
Utilizamos un cuadro en el cual:
Se sigue estrictamente los pasos indicados en el algoritmo (Numerar cada paso del
algoritmo)
Se ingresan los datos (como valores numricos) a las variables.
Se ingresan valores para diferentes casos, para probar si es correcto o no el algoritmo
propuesto.

Apuntes de Clase

Pg. 9

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Para el algoritmo que encuentra la superficie de un rectngulo sera:
1
2

Inicio

Ingresar la base :

3
2

base
Ingresar la altura:

altura

Superficie = base * altura

El rea es = , Superficie

Fin

Pseudocdigo
Programa EB_Area_Rectngulo;
Variables
entero base, altura, Superficie ;
(1) Inicio
(2) Escribir ( Ingresar base y altura: ) ;
(3) Leer ( base, altura ) ;
(4) Superficie = base * altura ;
(5) Escribir ( El area es = , Superficie );
(6) Fin

PASOS
1. Inicio
2.Escribir
3. Leer
4.Escribir
5.Leer

V A R I AB L E S
base
altura
7

Apuntes de Clase

Pg. 10

Superficie

SALIDA
Ingresar la base :
7 Enter
Ingresar la altura :
9 Enter

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
PASOS
V A R I AB L E S
6. Calcular
Superficie=
7 * 9 = 63
7.
8. Fin

SALIDA
63
El rea es = 63

Ejercicio 2. Crear un programa que encuentre el rea de un tringulo dados sus tres lados.
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminacin de
material de la excavacin de una cimentacin. Tener en cuenta el coeficiente de
expansin y el costo por metro cbico de eliminacin de material.
Valores Referenciales de Expansin de Suelos Excavados

Tierra Gredosa, Arcilla arenosa que se usa para limpiar y desengrasar:


la greda es de un color blanco azulado.
El suelo margoso es un suelo compuesto de arcilla, limo y arena con abundante cantidad de
materia vegetal descompuesta ( humus)
Ejercicio 4. Crear un programa que muestre el tiempo en das de permanencia en la
universidad. El programa solicitar el ao de ingreso a la Universidad y el
nmero de aos en que piensa egresar de la universidad como ingeniero.

Apuntes de Clase

Pg. 11

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

CAPITULO II
2. Introduccin a Visual Basic .Net
Visual Basic .Net es uno de los 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. En la plataforma Visual Studio .NET

Distintos elementos de la plataforma .NET y cmo se relacionan entre s.

Lo nuevo en Visual Basic .Net


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

Apuntes de Clase

Pg. 12

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Specification o Especificacin Comn de Lenguajes). Tambin se incluyen el control
estructurado de excepciones, delegados y varios tipos de datos nuevos. Visual Basic .Net
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 DataServs
desconectados.

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.

TIPOS DE PROGRAMAS
Existen distintos tipos de programas.
Programa secuencial, en los primeros tiempos de los ordenadores los programas eran de tipo
secuencial (tambin llamados tipo batch) es un programa que se arranca, lee los datos que
necesita, realiza los clculos e imprime o guarda en el disco los resultados. Mientras un
programa secuencial est ejecutndose no necesita ninguna intervencin del usuario. A este
tipo de programas se les llama tambin programas basados u orientados a procedimientos o a
algoritmos (procedural languages). Este tipo de programas siguen utilizndose ampliamente
en la actualidad, pero la difusin de los PCs ha puesto de actualidad otros tipos de
programacin.
Programas interactivos exigen la intervencin del usuario en tiempo de ejecucin, bien
para suministrar datos, bien para indicar al programa lo que debe hacer por medio de mens.
Los programas interactivos limitan y orientan la accin del usuario. Un ejemplo de programa
interactivo podra ser Matlab.
Programas orientados a eventos son los programas tpicos de Windows, tales como
Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas se ejecuta y esta
activo, lo nico que hace es quedarse a la espera de las acciones del usuario, que en este caso
son llamadas eventos. El usuario dice si quiere abrir y modificar un fichero existente, o bien
comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte de su
tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que
el usuario puede realizar en un momento determinado son variadsimas, y exigen un tipo
especial de programacin: la programacin orientada a eventos. Este tipo de programacin es
sensiblemente ms complicada que la secuencial, y la interactiva.

Apuntes de Clase

Pg. 13

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
2.2 PROGRAMAS PARA EL ENTORNO WINDOWS
Visual Basic est orientado a la realizacin de programas para Windows, pudiendo incorporar
todos los elementos de este entorno informtico: ventanas, botones, cajas de dilogo y de
texto, botones de opcin y de seleccin, barras de desplazamiento, grficos, mens, etc.
2.2.1 Modo de Diseo y Modo de Ejecucin
La aplicacin Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de
diseo y en modo de ejecucin.
En modo de diseo el usuario construye interactivamente la aplicacin, colocando controles
en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los
eventos.
Modo de ejecucin. Se prueba la aplicacin, en ese caso el usuario acta sobre el programa
(introduce eventos) y prueba cmo responde el programa. Hay algunas propiedades de los
controles que deben establecerse en modo de diseo, pero muchas otras pueden cambiarse en
tiempo de ejecucin desde el programa escrito en Visual Basic, en la forma en que ms
adelante se ver. Tambin hay propiedades que slo pueden establecerse en modo de
ejecucin y que no son visibles en modo de diseo. Todos estos conceptos controles,
propiedades, eventos, etc.- se explican posteriormente.
Tipos de ejecutables.
Con Visual Basic .NET se puede 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.
2.2.2. Formularios y Controles
Formulario (Form) Se llama as a una ventana. Un formulario puede ser considerado como
una especie de contenedor para los controles. Una aplicacin puede tener varios formularios,
pero un nico formulario puede ser suficiente para las aplicaciones ms sencillas. Los
formularios deben tambin tener un nombre, que puede crearse siguiendo las mismas reglas
que para los controles.
Control: Cada uno de los elementos grficos que pueden formar parte de una aplicacin
tpica de Windows 95/98/NT es un tipo de control: los botones, las cajas de dilogo y de
texto, las cajas de seleccin desplegables, los botones de opcin y de seleccin, las barras de
desplazamiento horizontales y verticales, los grficos, los mens, y muchos otros tipos de
elementos son controles para Visual Basic. Cada control debe tener un nombre a travs del
cual se puede hacer referencia a l en el programa. Visual Basic proporciona nombres por
defecto que el usuario puede modificar.
2.2.3 Clases, Objetos
Clase se llama as a entidades genricas que se utilizan en programacin orientada a objetos
(ms bien basada en objetos, habra que decir). Los formularios y los distintos tipos de
controles son entidades genricas o clases de las que puede haber varios ejemplares concretos
en cada programa.
Objeto se llama as a cada ejemplar de una clase determinada. Por ejemplo, en un programa
puede haber varios botones, cada uno de los cuales es un objeto del tipo de control Button,
que sera la clase.

Apuntes de Clase

Pg. 14

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades.
Ejemplo : Una caja de texto TextBox1, en la cual podemos escribir cualquier lnea es un
objeto de la clase TextBox.
2.2.4 Nombres de objetos
En principio cada objeto de Visual Basic debe tener un nombre, por medio del cual se hace
referencia a dicho objeto. El nombre puede ser el que el usuario desee, Visual Basic
proporciona nombres por defecto para los diversos controles. Estos nombres por defecto
hacen referencia al tipo de control y van seguidos de un nmero que se incrementa a medida
que se van introduciendo ms controles de ese tipo en el formulario (por ejemplo TextBox1,
TextBox2, etc.).
Los nombres por defecto no son adecuados porque hacen referencia al tipo de control, pero no
al uso que de dicho control est haciendo el programador. Por ejemplo, si se utiliza una barra
de desplazamiento para introducir una temperatura, conviene que su nombre haga referencia a
la palabra temperatura, y as cuando haya que utilizar ese nombre se sabr exactamente a qu
control corresponde. Un nombre adecuado sera por ejemplo hsbTemp, donde las tres
primeras letras indican que se trata de una horizontal scroll bar, y las restantes (empezando
por una mayscula) que servir para definir una temperatura.
Existe una convencin ampliamente aceptada que es la siguiente: se utilizan siempre tres
letras minsculas que indican el tipo de control, seguidas por otras letras (la primera
mayscula, a modo de separacin) libremente escogidas por el usuario, que tienen que hacer
referencia al uso que se va a dar a ese control; por ejemplo, si emplea un control Button
emplee siempre como prefijo btn despus compltelo con un nombre descriptivo acorde a la
funcionalidad que este tendr, as el control Button btnCalcular, indica que se emplear para
iniciar los clculos del programa
En la siguiente Tabla muestra las abreviaturas de los controles ms usuales, junto con la
nomenclatura inglesa de la que derivan.
Control

Prefijo

Button

btn

Label

lbl

PictureBox

pic

Timer

tmr

Text Box

txt

List Box

lst

Combo Box

cbo

Check Box

chk

Radio Button rad

2.2.5. Propiedades.
Son los atributos o caractersticas que posee un objeto Ejemplo: definicin del aspecto grfico
del formulario (ventana de Windows) tamao, color de fondo, posicin, tipo y tamao de
letra, etc. y su forma de responder a las acciones del usuario (si est activo o no).
Cada tipo de control tiene un conjunto de propiedades que tienen un nombre que viene
definido por el lenguaje. Por lo general, las propiedades de un objeto son datos que tienen
valores lgicos (True, False) o numricos concretos, propios de ese objeto y distintos de las
de otros objetos de su clase. As pues, cada clase, tipo de objeto o control tiene su conjunto de
propiedades, y cada objeto o control concreto tiene unos valores determinados para las
propiedades de su clase. Casi todas las propiedades de los objetos pueden establecerse en
tiempo de diseo y tambin casi siempre en tiempo de ejecucin. En este segundo caso se

Apuntes de Clase

Pg. 15

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
accede a sus valores por medio de las sentencias del programa, en forma anloga a como se
accede a cualquier variable en un lenguaje de programacin. Para ciertas propiedades sta es
la nica forma de acceder a ellas. Por supuesto Visual Basic permite crear distintos tipos de
variables.
Para establecer una propiedad de un objeto en tiempo de ejecucin se deber escribir una
sentencia de cdigo usando la siguiente sintxis:
objeto.Propiedad = Expresin
Por ejemplo, para hacer que una etiqueta Label, lblTitulo muestre el mensaje Facultad de
Ingeniera, establecemos la propiedad Text:
lblTitulo.Text = Facultad de Ingeniera
Algunas veces necesitar conocer el valor de la propiedad de un objeto a fin de realizar un
clculo o alguna otra tarea en su aplicacin. Para asignar el valor de la propiedad de un objeto
a una variable, coloque al lado derecho del smbolo igual la referencia al objeto (variable) y
propiedad:
Variable = objeto.Propiedad
Ejemplo: decAncho = txtAncho.Text, a la variable decAncho se asigna el contenido del cuadro
de texto txtAncho en su propiedad Text. Expresado de otra manera: a la variable decAncho, se
le asigna el texto contenido en cuadro de texto txtAncho
2.2.6. Mtodos.
Los mtodos son funciones internas de un determinado objeto que permite realizar acciones
sobre l o sobre otro objeto.
La sintxis en general es:
objeto.Mtodo
objeto.Mtodo (Valor)
Donde: objeto es el nombre del objeto que deseamos modificar, Mtodo es la orden (verbo)
que queremos utilizar para modificar el objeto y Valor es un argumento opcional que utilizar
el mtodo. Ejemplo txtNombre.SetFocus, es un mtodo que no tiene argumentos; el mtodo
Move mueve un objeto, colocndolo en una nueva posicin, en este ejemplo se mueve el
formulario frmPresentacin: frmPresentacin.Move (0,0)
2.2.7. Eventos.
Los eventos son hechos que son desencadenados en los formularios y controles por la accin
del usuario. A cada evento se puede asociar el cdigo de un procedimiento que responda
adecuadamente a la accin desencadenada. Los eventos son los mensajes o solicitudes que se
envan a los objetos de Visual Basic.
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click,
movimiento del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al
producir el evento.
Un programa Visual Basic es un POE (Programa orientado a eventos).
Todo lo que hacemos en un programa Visual Basic est generado por medio de eventos

Apuntes de Clase

Pg. 16

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
2.2.8. Explicacin y ejemplo de Objetos, Propiedades, Mtodos y Eventos
Los formularios y controles de Visual Basic son objetos que exponen sus propios mtodos,
propiedades y eventos. Las propiedades se pueden considerar como atributos de un objeto,
los mtodos como sus acciones y los eventos como sus respuestas.
Un objeto de uso diario como el globo de un nio tiene tambin propiedades, mtodos y
eventos.
Entre las propiedades de un globo se incluyen atributos visibles como el peso, el dimetro
y el color. Otras propiedades describen su estado (inflado o desinflado) o atributos que no
son visibles, como su edad. Por definicin, todos los globos tienen estas propiedades; lo
que vara de un globo a otros son los valores de estas propiedades.
Un globo tiene tambin mtodos o acciones inherentes que puede efectuar. Tiene un
mtodo inflar (la accin de llenarlo de aire) o un mtodo desinflar (sacar el aire) y un
mtodo elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar estos
mtodos.
Los globos tienen adems respuestas predefinidas a ciertos eventos externos. Por ejemplo,
un globo respondera al evento de pincharlo desinflndose o al evento de soltarlo
elevndose en el aire.
Los objetos tienen:
Propiedades

responden a eventos

ejecutan mtodos:

Si se pudiera programar un globo, el cdigo de Visual Basic podra ser como el siguiente.
PROPIEDADES del globo, se establecen:
Globo.Color = Negro
Globo.Dimetro = 10
Globo.Inflado = True
Observe la sintaxis del cdigo: el objeto (Globo) seguido de la propiedad (Color) seguida
de la asignacin del valor (Negro). Podra modificar el color del globo desde el cdigo si
repitiera esta instruccin y sustituyera el valor por otro diferente. Las propiedades tambin
se pueden establecer en la ventana Propiedades mientras se est diseando la aplicacin.
MTODOS de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar (5)

Apuntes de Clase

Pg. 17

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un
mtodo (un verbo). En el tercer ejemplo hay un elemento adicional, llamado argumento o
valor, que indica la distancia que se eleva. Algunos mtodos tendrn uno o ms argumentos
para describir ms a fondo la accin que se va a ejecutar.
EVENTOS, el globo puede responder a un evento como se muestra a continuacin:
Sub Globo_Pinchazo( )
Globo.Desinflar
Globo.HacerRuido "Bang"
Globo.Inflado = False
Globo.Dimetro = 1
End Sub
En este caso, el cdigo describe el comportamiento del globo cuando se produce un evento
Pinchazo: invoca el mtodo Desinflar y luego invoca el mtodo HacerRuido con un
argumento Bang (el tipo de ruido que se va a hacer). Como el globo ya no est inflado, la
propiedad Inflado tiene el valor False y la propiedad Dimetro adopta un nuevo valor.
Si bien no puede programar un globo, s puede programar un formulario o un control de
Visual Basic. Como programador, tiene el control: decide qu propiedades se deben
modificar, qu mtodos se deben invocar o a qu eventos hay que responder para conseguir la
apariencia y el comportamiento deseados
2.2.9. Proyectos
Un proyecto es un recipiente dentro de una solucin que se utiliza para administrar, generar y
depurar lgicamente los elementos de proyecto que constituyen nuestra aplicacin.
Realizar un proyecto equivale a realizar los siguientes pasos:
Crear una especificacin de diseo
Crear el interfaz de usuario
Establecer las propiedades de los objetos del interfaz de usuario.
Escribir cdigo para aadir funcionalidad.
Probar y depurar la aplicacin.
Generar un archivo ejecutable.
Crear una aplicacin de instalacin.
Guardar y cerrar el proyecto
2.2.10. Archivos de proyectos y soluciones
Extensin Nombre
.sln
Solucin
Visual
Studio
.suo
Solution
user
options
.vb
Proyecto
Visual
Basic

Apuntes de Clase

Descripcin
Organiza proyectos, elementos de proyectos y elementos de
soluciones en una solucin proporcionando al entorno
referencias a sus ubicaciones en disco.
Registra todas las opciones que podemos asociar a nuestra
solucin de forma que cada vez que abramos la solucin
incluya las personalizaciones que hayamos realizado.
Representa los archivos de formularios, controles de usuario,
clases y mdulos que pertenecen a la solucin de un solo
proyecto. Los archivos que no estn basados en un lenguaje de
programacin tienen su propia extensin. Por ejemplo, un
archivo Crystal Report tiene la extensin .rpt, y un archivo de
texto tiene la extensin .txt.

Pg. 18

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
.vbproj

.aspx
.asmx
.asax

Proyectos
Visual
Basic

Representa los archivos de formularios, controles de usuario,


clases y mdulos que pertenecen a la solucin con mltiples
proyectos. Esta extensin nos permite diferenciar entre
archivos escritos en Visual Basic .NET y otros lenguajes
compatibles con .NET. (Visual C# utiliza .csproj.)
Elementos Los elementos de proyecto Web incluyen archivos Web
de
especficos como .aspx para Web Forms, .asmx para servicios
proyecto
Web XML, y .asax para clases globales de aplicaciones. Los
Web
proyectos Web tambin utilizan la extensin .vb para clases y
mdulos.

3. Entorno de desarrollo

El Entorno de Desarrollo recibe el nombre de Entorno de Desarrollo de Microsoft Visual Studio


.NET.
Este entorno es personalizable y contiene todas las herramientas necesarias para construir
programas para Microsoft Windows. El Entorno de Desarrollo contiene mltiples ventanas y
mltiples funcionalidades y es por consecuencia llamado un entorno de desarrollo integrado
(integrated development environment IDE).

Apuntes de Clase

Pg. 19

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

La ventana central es la ventana de diseo (Designer Window), la cual contiene el formulario a


desarrollar.
El cuadro de herramientas (ToolBox) se localiza de lado izquierdo.
En el extremo derecho tenemos la ventana de explorador de soluciones (Solution Explorer).
La ventana de propiedades (Properties window) contiene tres partes:

Apuntes de Clase

Pg. 20

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

La parte superior contiene un combo box que muestra el nombre y la clase del objeto
seleccionado.
La parte media contiene la lista de propiedades del objeto seleccionado, de lado derecho
contiene un conjunto de cajas para ver y editar el valor de la propiedad seleccionada.
La parte inferior es un cuadro descriptivo que proporciona una breve descripcin de la
propiedad seleccionada.

Es necesario tener instalado el Visual Studio .NET, al ejecutarlo se presenta una pgina de
inicio, en caso de no presentarse entonces de clic en Help/Show Start Page. En esta pgina ser
posible establecer su perfil, por ejemplo identificarse como Desarrollador Visual Studio o ms
especifico como Desarrollador Visual Basic con lo cual Visual Studio configura de inmediato el
entorno de desarrollo para programar en Visual Basic.
Para iniciar un nuevo proyecto, de clic en la opcin Projects y clic en el botn [New Project],
esta accin abre una ventana donde se indicar el archivo a abrir, los proyectos Visual Basic
.NET tiene la extensin .vbproj. Una vez que abre el projecto si la pgina de inicio estaba
visible continuar as y en el Explorador de Soluciones (Solution Explorer) se cargan los
archivos correspondientes al proyecto.
4. ELEMENTOS DEL LENGUAJE VISUAL BASIC.NET:
4.1. Tipos de Datos.
El tipo de datos de una variable o un elemento de programacin hace referencia a la clase de
datos que puede contener y a cmo se almacenan los datos. El sistema de tipos comunes
(Common Type System CTS) define los tipos de datos que soporta el Common Language
Runtime. Visual Basic .NET utiliza tipos de datos que se corresponden directamente con los
tipos de datos del sistema de tipos comunes.
El sistema de tipos comunes define cmo se declaran, utilizan y gestionan los tipos en el
Common Language Runtime. Cada tipo de datos utilizado en Visual Basic .NET corresponde
directamente a un tipo definido en el sistema de tipos comunes.

Tipos en el Common Language Runtime .NET

Sistema de tipos comunes


Tipos valor

Tipos referencia

Tipos de datos predefinidos

Cadenas

Estructuras definidas por el


usuario

Matrices
Clases

Enumeraciones

Apuntes de Clase

Pg. 21

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Tipo Valor
Una variable de tipo valor contiene directamente sus datos. Cada variable de tipo valor tiene su
propia copia de datos, de modo que las operaciones en una variable de tipo valor no pueden
afectar a otra variable.
Tipo Referencia
Una variable de tipo referencia contiene una referencia o puntero al valor de un objeto. Dos
variables de tipo referencia pueden referirse al mismo objeto, de modo que las operaciones en
una variable de tipo referencia pueden afectar al objeto referenciado por otra variable de tipo
referencia.

Tipos de datos Bsicos

Tipo de dato
en VB.NET

Tipo Visual
Basic .NET
Boolean

2 bytes

Verdadero o Falso

Date

8 bytes

Decimal

16 bytes

Double

8 bytes

0:00:00 del 1 de enero de 0001 a


11:59:59 PM del 31 de diciembre de 9999
Hasta 29 dgitos significativos,
con
28
valores de hasta 7,9228 x 10 (con signo)
-4,94065645841246544E-324 a
+1,79769313486231570E+308 (con signo)

Integer

4 bytes

-2.147.483.648 a
+2.147.483.647 (con signo)

Single

4 bytes

String

Vara

-3,4028235E+38 a 1,401298E-45
(con signo)
0 a 2.000 millones aproximadamente de
caracteres Unicode

Tamao

Rango de Valores

Tamao

Boolean

Tipo correspondiente en
el entorno de .NET
Framework
System.Boolean

Byte

System.Byte

1 byte

Char

System.Char

2 bytes

Apuntes de Clase

Pg. 22

2 bytes

Rango de valores
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,

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Date

System.DateTime

8 bytes

Decimal

System.Decimal

16 bytes

Double

System.Double

8 bytes

Integer

System.Int32

4 bytes

Apuntes de Clase

Pg. 23

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:
+/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

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

Long
(entero largo)

Object

Short
(entero corto)

Single

System.Int64

System.Object
(class)

System.Int16

System.Single

String
(cadenas de
longitud
variable)

System.String
(clase)

Tipos
definidos por
el usuario
(estructuras)

(heradada de
System.ValueType)

Apuntes de Clase

Pg. 24

un nmero entero:
Dim unEntero As Integer =
250009I
Dim unEntero2 As Integer =
652000%
Un entero largo (o grande)
8 bytes
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
Long:
Dim unLong As Long = 12345678L
Dim unLong2 As Long =
1234567890&
Cualquier tipo se puede almacenar
4 bytes
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)
2 bytes
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
4 bytes
precisin simple.
Valores:
de -3.4028235E+38 a -1.401298E45 para valores negativos;
de 1.401298E-45 a
3.4028235E+38 para valores
positivos.
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.
Depende de Cada miembro de la estructura
la
tiene su rango, dependiendo del
plataforma
tipo de dato que representa.

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
IntPtr

UIntPtr

IntPtr (tipo de dato no Depende de Entero con signo con tamao


la
nativo)
dependiente de la plataforma: 4 Byte
plataforma en plataformas de 4 Byte y 8 Byte en
plataformas de 8 Byte (tipo no acorde
con el CLS)
UIntPtr (tipo de dato no Depende
Entero sin signo con tamao
de la
nativo)
dependiente de la plataforma: 4 Byte
plataforma en plataformas de 4 Byte y 8 Byte en
plataformas de 8 Byte (tipo no acorde
con el CLS)

Ejemplo:
Dim intInteger As Integer = 42
Dim sngSingle As Single = 39.345677653
Dim strString As String = "Facultad de Ingeniera"
Dim blnBoolean As Boolean = True
4.2. Variables, Constantes
Una variable es una direccin de memoria en la que se guarda un valor o un objeto (en .NET
todo es un objeto), todas las variables debern ser declaradas por las instrucciones
Dim nombreVariable as tipoDato.
Dim es la abreviatura de Dimensin, que sirve para reservar espacio para la variable. La
sentencia Dim especifica el nombre de la variable y su tipo de dato asociado.
Las variables deben tener un nombre nico llamado Identificador, los identificadores se forman
siguiendo las siguientes reglas:
Comenzar con una letra o guin bajo (underline)
Deben contener letras, digitos y guiones bajos.
No pueden ser palabras reservadas.
Recomendaciones:
El nombre de las variables deberan comenzar con una letra
El nombre de las variables deberan distinguir cada nueva palabra escribiendo la primer
letra en mayscula
El nombre de las variables deberan ser lo suficientemente largo para ser significativo y lo
suficientemente corto para ser manejable.
Una novedad en Visual Basic .NET es la declaracin e inicializacin de variables, ya que es
posible hacer esto al mismo tiempo:
Dim nombreVariable as tipoDato = valorInicial
Si no se define un tipo de dato para la variable, entonces asume el tipo de dato por default que
es Object.
Las variables se pueden declarar de dos formas, aunque bsicamente es lo mismo:
1- Declarando la variable y dejando que VB asigne el valor por defecto.
2- Declarando la variable y asignndole el valor inicial que queramos que tenga.

Apuntes de Clase

Pg. 25

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Por defecto, cuando no se asigna un valor a una variable, stas contendrn los siguientes
valores, dependiendo del tipo de datos que sea:
- Las variables numricas tendrn un valor CERO.
- Las cadenas de caracteres una cadena vaca: ""
- Las variables Boolean un valor False (recuerda que False y CERO es lo mismo)
- Las variable de tipo Objeto tendrn un valor Nothing, es decir nada, un valor nulo.
Por ejemplo:
Dim decVolumen As Integer
La variable decVolumen tendr un valor inicial de 0
Pero si queremos que inicialmente valga 3500, podemos hacerlo de cualquiera de estas dos
formas:
Dim decVolumen As Decimal
decVolumen = 3500
Dim decVolumen As Decimal = 3500
Esta segunda forma es exclusiva de la versin .NET de Visual Basic,
Mientras que la primera forma mostrada es la forma clsica.
Es un buen hbito seguir un estndar de asignacin de nombres de variables comunes que
utilice como prefijo los tres primeros caracteres en minscula del nombre de la variable para
designar el tipo de dato que contienen luego empezando por una letra mayscula describir su
finalidad, ejemplo decVolumen, es una variable de tipo decimal que almacenar un Volumen.
Prefijo

Tipo de variable

str
int
lng
sng
dbl
dec
bln
dte

String
Integer
Long Integer
Coma flotante de precisin simple
Coma flotante de precisin doble
Decimal
Boolean (True/False)
Date

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, que proviene de la palabra Dimension, Visual Basic
reinicializa (borra su contenido) la variable cada vez que ejecuta el procedimiento.
Ejemplo:
Dim intLongitud As Integer

Apuntes de Clase

Pg. 26

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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 dblArea 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 strDireccion As String
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 dteFecha 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 declaran de la misma forma que la indicada en al asignarle un valor a la
variable a una constante no se le puede volver a asignar ningn otro valor, ya que si no, no
seran constantes, sino variables.
Por ejemplo:
Const intInicial As Integer = 250
Nota: La definicin de las constantes puede empezar con las palabras Public o Private. Para que
sean pblicas o privadas. Por defecto son privadas.
PROGRAMAS TIPO CONSOLE
Las funciones para capturar y mostrar datos por la consola son las siguientes:
Read
Captura o lee el dato que el usuario ingresa.
Variable = Console.Read
ReadLine
Captura o lee el dato que el usuario ingresa y a la vez hace un cambio de lnea al terminar de
leer el dato.
Variable = Console.ReadLine
Write
Permite mostrar por la consola ya sea una cadena (texto) o un dato numrico (nmero),
Console.Write(Texto a Mostrar)
Muestra texto y datos calculados o capturados:
Console.Write(Texto a Mostrar {0},{1}, {2}, ., {n}, Var0, Var1, Var2,., Varn)
Los dgitos encerrados entre llaves {0}, indican el lugar donde se escribir el contenido de las
variables Var0

Apuntes de Clase

Pg. 27

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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,
Console.WriteLine(Texto a Mostrar)
Muestra texto, datos calculados o capturados y a la vez hace un cambio de lnea, despus de
haber mostrado el dato:
Console.WriteLine(Texto a Mostrar {0},{1}, {2}, ., {n}, Var0, Var1, Var2,., Varn)
Observamos que en la funcin Write y WriteLine, el texto que deseamos mostrar est entre
comillas. Escribimos {0}, {1}, etc, dentro de las comillas para mostrar la ubicacin del
contenido de una variable; despus de las comillas se escriben los nombres de las variables
Var0, Var1, etc, que corresponden a cada ubicacin; por ejemplo para la ubicacin {0}, la
variable que contiene su valor es Var0.
Ejemplo:
Si la variable N, contiene el valor 13,
Escribimos el siguiente cdigo:
Console.WriteLine("El valor de la variable es : {0}", N)
Mostrar:
El valor de la variable N es : 13
Se debe tener presente, que por cada variable o dato contenido en la variable que queremos
mostrar su contenido, en el texto, que debe estar entre comillas, escribimos {0}; despus de las
comillas escribimos Var0, {0} est asociado a la variable Var0, en donde el 0 indica que
nmero de variable o dato se va mostrar, Visual Basic lo convierte en un array y muestra el
valor de los elementos del array comenzando del 0, as que si queremos mostrar 5 datos,
tendremos que escribir {0}, {1},{2}, {3}, {4}, y si queremos mostrar dos datos tendremos que
escribir {0}, {1}
4.3. Conversin de tipos de datos
El proceso de convertir el valor de un tipo de datos en otro se denomina conversin o casting.
Podemos convertir explcitamente valores de un tipo en otro antes de que sean utilizados,
evitando as errores en nuestro cdigo y haciendo que ste se ejecute ms rpidamente. Visual
Basic .NET tambin puede realizar algunas conversiones de tipos de datos automtica o
implcita, como convertir algunas cadenas a enteros. Sin embargo, las conversiones implcitas
pueden producir resultados imprevistos.
4.3.1. Conversiones Explcitas
Las funciones de conversin permiten convertir explcitamente un valor de un tipo de datos a
otro.
En la siguiente tabla se describen las funciones de conversin:
Nombre de la funcin

Tipo de datos que


devuelve

CBool(expresion)

Boolean

CByte(expresion)

Byte

CChar(expresion)

Char

Apuntes de Clase

Pg. 28

Valores del argumento


"expresion"
Cualquier valor de cadena
o expresin numrica.
de 0 a 255; las fracciones
se redondean.
Cualquier expresin de
cadena; los valores deben
ser de 0 a 65535.

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
CDate(expresion)

Date

CDbl(expresion)

Double

CDec(expresion)

Decimal

CInt(expresion)

Integer

CLng(expresion)

Long

CObj(expresion)
CShort(expresion)

Object
Short

CSng(expresion)

Single

Cualquier
representacin
vlida de una fecha o una
hora.
Cualquier valor Duoble,
ver la tabla anterior para
los valores posibles.
Cualquier valor Decimal,
ver la tabla anterior para
los valores posibles.
Cualquier valor Integer,
ver la tabla anterior para
los valores posibles, las
fracciones se redondean.
Cualquier valor Long, ver
la tabla anterior para los
valores
posibles,
las
fracciones se redondean.
Cualquier expresin vlida.
Cualquier valor Short, ver
la tabla anterior para los
valores
posibles,
las
fracciones se redondean.
Cualquier valor Single,
ver la tabla anterior para
los valores posibles.

Sintxis:
Para utilizar una funcin de conversin, se sita en el lado derecho de una instruccin de
asignacin, utilizando la siguiente sintaxis:
NombreVariable = CFuncin(Expresin)
El parmetro Expresin puede ser cualquier expresin vlida, como una variable, un resultado
de una funcin o un valor constante

Me representa al objeto o clase Form1 (el formulario), si estamos escribiendo cdigo en el


formulario Form1
La palabra clave Me nos permite referirnos a cualquier elemento del formulario (propiedades,
mtodos, etc), desde dentro del propio formulario. Aunque no es necesario el uso de Me, se
recomienda por hacer ms fcil la lectura del cdigo; el propio IDE al generar el cdigo
utiliza esta palabra, lo cual es indicativo de su importancia.

Apuntes de Clase

Pg. 29

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 1. Crear un programa que encuentre el rea de un rectngulo
Solucin por Console
Microsoft Visual Studio > Crear ... Proyecto> Aplicacin de consola > Nombre .................
> Ubicacin > Crear directorio para la solucin > Aceptar
CDIGO:
Module Module1
Sub Main()
'DECLARACIN DE VARIABLES
'Variables de Ingreso datos
Dim base, altura As Integer
'Variables de Salida o Resultados
Dim Superficie As Integer
'ENTRADA Ingreso de Datos
Console.Write("Ingrese la base: ")
base = Console.ReadLine
Console.Write("Ingrese la altura: ")
altura = Console.ReadLine
'PROCESO o clculo del area
Superficie = base * altura
'SALIDA o Resultados
Console.WriteLine("El rea es = {0}", Superficie)
'Presionar una tecla para finalizar
Console.ReadLine()
End Sub
End Module

Salida o resultados:

Apuntes de Clase

Pg. 30

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Solucin por Formularios
Microsoft Visual Studio > Crear ... Proyecto> Aplicacin de windows > Nombre .................
> Ubicacin > Crear directorio para la solucin > Aceptar
Formulario

Controles
Cuatro Label
lblTitulo
lblBase
lblAltura
lblArea

Tres Textbox
txtBase
txtAltura
txtArea

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO:
Public Class frmRect
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
'Declaracin de variables
Dim intBase, intAltura, intArea As Integer
'Entrada: Asignacin de variables
intBase = Val(txtBase.Text)
intAltura = Val(txtAltura.Text)
'Proceso
intArea = intBase * intAltura
'Salida
txtArea.Text = intArea
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBorrar.Click
txtBase.Text = ""
txtAltura.Text = ""
txtArea.Text = ""
txtBase.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
Close()
End Sub
End Class

Apuntes de Clase

Pg. 31

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 2. Crear un programa que encuentre el rea de un tringulo dados sus tres lados.
Formulario

Controles
Cinco Label
lblTitulo
lblLadoA
lblLadoB
lblLadoC
lblArea

Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtArea

Dos Button
btnCalcular
btnSalir

CDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim decA, decB, decC, decP, decArea As Decimal
decA = txtLadoA.Text
decB = txtLadoB.Text
decC = txtLadoC.Text
decP = (decA + decB + decC) / 2
decArea = Math.Sqrt(decP * (decP - decA) * (decP - decB) * (decP decC))
txtArea.Text = decAre
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 32

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminacin de
material de la excavacin de una cimentacin. Tener en cuenta el coeficiente de
expansin y el costo por metro cbico de eliminacin de material
Formulario

Controles
Ocho Label
lblTitulo
lblAncho
lblProf
lblLong
lblCostoM3
lblExpancion
lblVolumen
lblCostoEM

Siete TextBox
txtAncho
txtProf
txtLong
txtCostoM3
txtExpancion
txtVolumen
txtCostoEM

Dos Button
btnCalcular
btnSalir
CDIGO
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblAncho, dblProf, dblLong, dblCostoM3, dblExpansion As Double
Dim dblVolumen, dblCostoEM As Double
dblAncho = txtAncho.Text
dblProf = txtProf.Text
dblLong = txtLong.Text
dblCostoM3 = txtCostoM3.Text
dblExpansion = txtExpansion.Text
dblVolumen = dblAncho * dblProf * dblLong * dblExpansion
dblCostoEM = dblCostoM3 * dblVolumen
txtVolumen.Text = dblVolumen
txtCostoEM.Text = dblCostoEM
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 33

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 4. Crear un programa que muestre el tiempo en das de permanencia en la
universidad. El programa solicitar el ao de ingreso a la Universidad y el
nmero de aos en que piensa egresar de la universidad como ingeniero.
Formulario

Controles
Nueve Label
lblTitulo
lblTIngreso
lblTSalida
lblTPerm
lblTIngeniero
lblProfesional
.. . .

Cinco Textbox
txtTIngreso
txtTSalida
txtTPerm
txtTIngeniero
txtProfesional

Dos Button
btnCalcular
btnSalir

CDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCalcular.Click
Dim decTPerm As Decimal
Dim decTIngeniero As Decimal
decTPerm = (20.. - txtTIngreso.Text) * 365
decTIngeniero = txtTSalida.Text * 365
txtTPerm.Text = decTPerm
txtTIngeniero.Text = decTIngeniero
txtProfesional.Text = decTPerm + decTIngeniero
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 34

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
4.4. Operadores: Aritmticos, de asignacin, relacionales, lgicos.
Visual Basic .NET dispone de los siguientes operadores:
Operadores Aritmticos
Los operadores aritmticos requieren operadores numricos (^ , * , / , \ , Mod, +, - ) y
producen resultados numricos.
Operador

Descripcin

Suma

Resta

Multiplicacin

Divisin

Divisin entera (parte entera de la divisin)

Mod

Residuo (resto de la divisin entera)

Exponenciacin (elevar a una potencia)

&

Concatenacin de Cadenas

Operador String
El operador de concatenacin (&) String requiere operadores String y producen resultados
String.
Operadores Comparativos
Los operadores Comparativos requieren operadores Comparativos ( = , >, <, >= , <= , < >) y
producen un resultado lgico (True or False).
Comparan datos y devuelven valores lgicos de verdadero o falso como resultado de la
comparacin.
Operador

Descripcin

Igual a

<

Menor que

a=b
a<b

>

Mayor que

<=

Menor o igual que

a<=b

>=

Mayor o igual que

a>=b

<>

Apuntes de Clase

Ejemplo

Diferente a

Pg. 35

a>b

a<> b

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Operadores Lgicos
Los operadores Lgicos requieren operadores Lgicos (And, Or, Not, Xor, AndAlso, OrElse)
y producen un resultado lgico.
Operadores Lgicos
Descripcin
And
Or

Las dos expresiones deben ser verdaderas


Alguna de las dos expresiones es verdadera

Not

Negacin del resultado de la expresin

Xor

Si una y slo una de las expresiones es verdadera, es true;


si las dos expresiones son verdaderas o falsas es false.

AndAlso

Si la primera y segunda condicin son verdaderas

OrElse

Si la primera o segunda condicin es verdadera


Los nuevos operadores lgicos AndAlso y OrElse reciben el nombre de sistema de cortocircuito, si la primera condicin es falsa, la otra ya no se ejecuta.
Operadores Abreviados
Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la escritura de
cdigo, por ejemplo:
x = x + 1 se puede escribir
x += 1
Operadores Abreviados
+=
-=
*=
/=
\=
^
&=

Precedencia de Operadores
A continuacin se muestra el orden de precedencia/prioridad/jerarqua de los operadores en
Visual Basic .NET
Precedencia de Operadores
( )
^
*/
\
Mod
+-

Apuntes de Clase

Pg. 36

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
5. Estructuras de Decisin
5.1. Estructura de Decisin Simple o Condicional
Es es aquella que nos permite "preguntar" para tomar una decisin, pudiendo as actuar y
realizar acciones excluyentes entre s segn la respuesta obtenida. Estas respuestas siempre
sern Verdadero o Falso, pudiendo as tomar, uno de dos caminos diferentes.
SI <expresin condicional (lgica booleana)> ENTONCES
Sentencia Verdadera (V)
SINO
Sentencia Falsa (F)
FIN_SI
Las acciones se representan como sentencia V (cuando es verdadera), sentencia F (cuando es
falsa), despus que las acciones se realizan, el algoritmo continua su secuencia, pues la
estructura termina en FIN_SI
Ejemplo:
Si consideramos que A y B son nmero diferentes
SI (A > B) ENTONCES
Escribir . El Mayor es A.
SINO
Escribir . El Mayor es B.
FIN_SI

NO

Pseudocdigo

SI

C.L..

En Visual Basic
if .... Then .... Else ....End If

Si (condicin lgica)

If Condicin lgica

Sentencia Verdadera (V)


Si_No

Then

Sentencia Verdadera (V)


Else

Sentencia Falsa (F)

Sentencia Falsa (F)

Fin Si

Apuntes de Clase

End If

Pg. 37

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo 1. Ingresar un nmero y decir si es positivo o negativo.

n>0

0
Negativ
Positivo
o
El nmero que se ingrese por el teclado y que ser almacenado en la variable n, en la recta
numrica, puede ser positivo o negativo.
Anlisis del Problema:

Diagrama de Pasada
n

Entrada

Determinar
si el nmero n es
positivo o negativo

El nmero es
....................
es ..................
Pseudocdigo:
Programa EB_Positivo_Negativo;
Variables
entero n;
Inicio
Escribir("Ingrese un nmero: ");
Leer( n );
Si (n>0)
Escribir( "El nmero es positivo");
Si_no
Escribir( "El nmero es negativo");
Fin.

Proceso

Salida

Visual Basic
Cdigo en Visual Basic
' Variable
Dim n As Integer
' Ingreso de Datos
n = txtNumero.Text
'Proceso o clculo
If n > 0 Then
txtRespuesta.Text = "El
nmero es Positivo "
Else
txtRespuesta.Text = "El
nmero es Negativo "
End If

i5.1. 1. Estructura de Decisin Simple o Condicional Anidada


Es es aquella que nos permite "preguntar" para tomar una decisin, pudiendo as actuar y
realizar acciones excluyentes entre s segn la respuesta obtenida. Estas respuestas siempre
sern Verdadero o Falso, pudiendo as tomar, uno de dos caminos diferentes.

Apuntes de Clase

Pg. 38

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Si (condicin 1) entonces
Sentencias 1
sino
Si (condicin 2) entonces
Sentencias 2
sino
Si (condicin 3) entonces
Sentencias 3
Fin_Si
Fin_Si
Fin_Si

Si expresin condicional 1 (lgica booleana) Entonces


Sentencia Verdadera 1 (V)
SiNo_Si expresin condicional 2 (lgica booleana)
Sentencia Verdadera 2 (V)
SiNo_Si expresin condicional 3 (lgica booleana)
Sentencia Verdadera 3 (V)
SiNo_Si <expresin condicional 4 (lgica booleana)>
Sentencia Verdadera 4 (V)
SiNo_Si <expresin condicional 5 (lgica booleana)>
Sentencia Verdadera 5 (V)
Si_No
Sentencia Falsa 5 (F)
Fin_SI
Las acciones se representan como sentencia V (cuando es verdadera), sentencia F (cuando es
falsa), despus que las acciones se realizan, el algoritmo contina su secuencia, pues la
estructura termina en FIN_SI
Pseudocdigo

En Visual Basic
if .... Then .... ElseIf ....End If

Si (condicin lgica)
Sentencia Verdadera (V)
SiNo_Si (condicin lgica)
Sentencia Verdadera (V)
SiNo_Si (condicin lgica)
Sentencia Verdadera (V)
Si_No
Sentencia Falsa (F)

If Condicin lgica 1 Then


Sentencia Verdadera 1 (V)
ElseIf Condicin lgica 2
Sentencia Verdadera 2 (V)
ElseIf Condicin lgica 3
Sentencia Verdadera 3 (V)
Else
Sentencia Falsa 3 (F)
End If

Fin Si

Apuntes de Clase

Pg. 39

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo 2. Elaborar un algoritmo para leer 3 nmeros enteros diferentes entre si, y
determinar cual es el nmero mayor.
Solucin:
Pseudocdigo:
Programa EB_Mayor;
Variables
entero a,b,c, nMayor;
Inicio
Escribir("Ingrese tres nmeros: ");
Leer ( a ) ;
Leer ( b ) ;
Leer ( c ) ;

Si (a > b y a > c)
nMayor = a;
SiNo_Si ( b >c )
nMayor = b;
Si_No
nMayor = c;
Escribir(El mayor es = ,nMayor);
Fin.

Visual Basic
Cdigo en Visual Basic
' Variable
Dim a, b, c, nMayor As Integer
' Ingreso de Datos
a = txtNumA.Text
b = txtNumB.Text
c = txtNumC.Text
'Proceso o clculo
If a > b And a > c Then
nMayor = a
ElseIf b>c
nMayor = b
Else
nMayor = c
End If
txtRespuesta.Text = nMayor

Analizando este ejemplo 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
Si_No, depende como lo usen, por ejemplo, para hacer un instruccin anidada tenemos que
tener obligado un SiNo_Si cuando la expresin lgica en el SI del que depende es falsa, y as
sucesivamente, bueno esto lo vamos a comprender mejor cuando lo implementemos en el
Visual Basic .NET
Ejercicio 1. Crear un programa que determine si un nmero es positivo, negativo o cero
PSEUDOCDIGO
Programa EB_Positivo, Negativo o Cero
VARIABLES
Entero Numero,
ENTRADA
Escribir (Ingrese un nmero)
Leer (Numero)
Si Numero = 0 Entonces
Escribir ("El nmero ingresado es Cero ")
Si_No
Si Numero > 0 Entonces
Escribir ("El nmero es Positivo ")
Si_No
Escribir ("El nmero es Negativo ")
Fin_Si
Fin_Si

Apuntes de Clase

Pg. 40

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Solucin por Console
CDIGO:
Module Module1
Sub Main( )
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Console.Write("Ingrese un nmero: ")
intNumero = Console.ReadLine
'Proceso o clculo
If intNumero = 0 Then
Console.WriteLine("El nmero ingresado es Cero ")
Else
If intNumero > 0 Then
Console.WriteLine("El nmero es Positivo ")
Else
Console.WriteLine("El nmero es Negativo ")
End If
End If
'Presionar una tecla para finalizar
Console.ReadLine( )
End Sub
End Module
Salida o resultados:

Apuntes de Clase

Pg. 41

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 2. Crear un programa que determine si un nmero es positivo, negativo o cero.
Solucin por formularios
Formulario

Controles
Un Label
lblNumero

Dos Textbox
txtNumero
txtRespuesta

Dos Button
btnCalcular
btnSalir

CDIGO
Public Class frmPosiNegaCero
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Me.txtNumero.Focus( )
intNumero = Me.txtNumero.Text
'Proceso o clculo
If intNumero = 0 Then
Me.txtRespuesta.Text = "El nmero es Cero "
Else
If intNumero > 0 Then
Me.txtRespuesta.Text = "El nmero es Positivo "
Else
Me.txtRespuesta.Text = "El nmero es Negativo "
End If
End If
Me.txtNumero.Text = ""
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 42

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 3. Validar ingreso de datos positivos. Crear un programa que muestre un mensaje si
el nmero ingresado es negativo o cero.
Formulario
Controles
Un Label
lblNumero

Un Textbox
txtValor

Dos Button
btnCalcular
btnSalir

CDIGO
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim intValor As Integer = 0
intValor = Me.txtValor.Text
If intValor <= 0 AndAlso intValor / 0 Then
MsgBox("Error de lgica, el numero debe ser Positivo")
Else
MsgBox("Continuar clculo")
End If
Me.txtValor.Text = ""
Me.txtValor.Focus( )
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 43

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 4. Elaborar un programa que al ingresar los tres lados de un tringulo determine si
es escaleno, equiltero o isceles
Formulario

Controles
Cuatro Label
lblIngresar
lblLadoA
lblLadoB
lblLadoC

Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtRespuesta

Dos Button
btnCalcular
btnSalir

CDIGO
Public Class Form1
Private Sub btnCalular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalular.Click
Dim decLadoA, decLadoB, decLadoC As Decimal
decLadoA = txtLadoA.Text
decLadoB = txtLadoB.Text
decLadoC = txtLadoC.Text
If decLadoA < > decLadoB And decLadoA < > decLadoC And decLadoB
< > decLadoC Then
txtRespuesta.Text = "Tringulo Escaleno"
Else
If decLadoA = decLadoB And decLadoB = decLadoC Then
txtRespuesta.Text = "Tringulo Equiltero"
Else
txtRespuesta.Text = "Tringulo Isceles"
End If
End If
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 44

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 5. Elaborar un programa que al ingresar un nmero si es par vaya a la lista pares, si
el nmero es impar vaya a la lista impares y simultneamente nos muestre cuantos nmeros se
han ingresado a cada lista.
Formulario

Controles
Cinco Label
lblNumero
lblPares
lblImpares
lblCantidadPares
lblCantidadImpares

Tres Textbox
txtNumero
txtCantidadPares
txtCantidadImpares

Dos ListBox
lstPares
lstImpares

Dos Button
btnIngresar
btnCerrar

CDIGO
Public Class frmParImp
Private Sub btnIngresar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnIngresar.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero:")
Else
If Me.txtNumero.Text Mod 2 = 0 Then
Me.lstPares.Items.Add(Me.txtNumero.Text)
Else
Me.lstImpares.Items.Add(Me.txtNumero.Text)
End If
End If
Me.txtCantidadPares.Text = Me.lstPares.Items.Count( )
Me.txtCantidadImpares.Text = Me.lstImpares.Items.Count( )
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
Close( )
End Sub
End Class

Apuntes de Clase

Pg. 45

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 6. Elaborar un programa que al escribir un nmero, se seleccione la lista donde debe
ir y simultneamente nos muestre cuantos nmeros se han ingresado a cada lista.
Formulario
Controles
Cinco Label
lblNumero
lblLista1
lblLista2
lblCantidadLista1
lblCantidadLista2

Tres Textbox
txtNumero
txtCantidadLista1
txtCantidadLista2

Dos ListBox
lstLista1
lstLista2

Un Button
btnCerrar

Dos RadioButton
rbtLista1
rbtLista2

CDIGO
Public Class frmListadoNumeros
Private Sub rbtLista1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbtLista1.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero")
Me.txtNumero.Focus( )
Else
Me.lstLista1.Items.Add(Me.txtNumero.Text)
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End If
Me.txtCantidadLista1.Text = Me.lstLista1.Items.Count( )
End Sub
Private Sub rbtLista2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbtLista2.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero")
Me.txtNumero.Focus( )
Else
Me.lstLista2.Items.Add(Me.txtNumero.Text)
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End If
Me.txtCantidadLista2.Text = Me.lstLista2.Items.Count( )
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 46

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 7. Elaborar una calculadora de cuatro operaciones utilizando la estructura if
anidada.
Formulario
Controles
Tres Label
lblNumeroA
lblNumeroB
lblOperador

Cuatro Textbox
txtNumeroA
txtNumeroB
txtOperador
txtRespuesta

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class Calculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
If strOperador = "+" Then
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "-" Then
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "*" Then
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "/" Then
If Me.txtNumeroB.Text = "0" Then
txtRespuesta.Text = "Error"
MsgBox("Ingrese un numero diferente de cero como divisor")
Else
dblRespuesta = dblNumeroA / dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
End If
End If
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumeroA.Text = ""
Me.txtNumeroB.Text = ""
Me.txtOperador.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumeroA.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 47

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 8. Encontrar el mayor de tres nmeros que se ingresan por el teclado.
Formulario
Controles
Cinco Label
lblTitulo
lblNumA
lblNumB
lblNumC
lblRespuesta

Cuatro Textbox
txtNumA
txtNumB
txtNumC
txtRespuesta

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmMayor
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim a, b, c, nMayor As Integer
a = Me.txtNumA.Text
b = Me.txtNumB.Text
c = Me.txtNumC.Text
If a > b And a > c Then
nMayor = a
ElseIf b > c Then
nMayor = b
Else
nMayor = c
End If
Me.txtRespuesta.Text = nMayor
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumA.Text = ""
Me.txtNumB.Text = ""
Me.txtNumC.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumA.Focus()
End Sub
End Class

PROBLEMA 1. Una empresa ofrece casas de inters social, bajo las condiciones siguientes:
Si los ingresos del comprador son menores a $ 1,000, la cuota inicial ser del 10% del costo
de la casa y el resto se distribuir en pagos mensuales, a pagar en veinte aos. Si los ingresos
del comprador son $ 1,000 o ms, la cuota inicial ser del 20% del costo de la casa y el resto
se distribuir en pagos mensuales a pagar en 12 aos. De acuerdo al costo de la casa y los
ingresos del comprador, determinar la cuota inicial y la cuota mensual.

Apuntes de Clase

Pg. 48

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
DIAGRAMA DE FLUJO

INICIO
Costo de la Casa:

CostoCasa
Ingresos del Comprador:

Ingresos
F

V
Ingresos<1000

CuotaInicial=0.2*CostoCasa

CuotaInicial=0.1*CostoCasa

Pago Mensual=0.8*CostoCasa/12

Pago Mensual=0.9*CostoCasa/20

Cuota Inicial: , CuotaInicial

Pago Mensual: , PagoMensual

FIN

SOLUCIN POR CONSOLE


Module Module1
Sub Main()
Dim dblCostoCasa, dblIngresos, dblCuotaInicial,
dblPagoMensual As Double
Console.Write("Costo de la casa: ")
dblCostoCasa = Console.ReadLine
Console.Write("Ingresos del comprador: ")
dblIngresos = Console.ReadLine
If dblIngresos < 1000 Then
dblCuotaInicial = 0.1 * dblCostoCasa
dblPagoMensual = 0.9 * dblCostoCasa / 20
Else
dblCuotaInicial = 0.2 * dblCostoCasa

Apuntes de Clase

Pg. 49

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
dblPagoMensual = 0.8 * dblCostoCasa / 12
End If
Console.WriteLine("Cuota Inicial = {0}", dblCuotaInicial)
Console.WriteLine("Pago Mensual = {0}", dblPagoMensual)
Console.ReadLine()
End Sub
End Module

SOLUCIN POR FORMULARIOS - GRFICA

Public Class Form1


Private Sub btnCalcular_Click(sender As Object, e As EventArgs) Handles
btnCalcular.Click
Dim dblCostoCasa, dblIngresos, dblInicial, dblCuotaMensual As
Double
dblCostoCasa = Val(txtCostoCasa.Text)
dblIngresos = Val(txtIngresos.text)
If dblIngresos < 1000 Then
dblInicial = dblCostoCasa * 0.1
dblCuotaMensual = Math.Round((dblCostoCasa - dblInicial) / 20)
Me.txtInicial.Text = dblInicial
Me.txtCuotaMensual.Text = dblCuotaMensual
Else
dblInicial = dblCostoCasa * 0.2
dblCuotaMensual = Math.Round((dblCostoCasa - dblInicial) / 12)
Me.txtInicial.Text = dblInicial
Me.txtCuotaMensual.Text = dblCuotaMensual
End If
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

PROBLEMA 2. Una empresa distribuidora de materiales de construccin, ofrece un


descuento del 8%, para compras de hasta un monto de quinientos nuevos soles (S/. 500 y
00/100); un descuento del 12% para compras mayores y para ambos casos se aplica un

Apuntes de Clase

Pg. 50

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
impuesto del 18%. Determinar el monto a pagar, mostrando, el monto de la compra, el
descuento y el impuesto.
DIAGRAMA DE FLUJO

INICIO
Ingrese el Total de Compras:

Compras
F

V
Compras<=50
0

Descuento=0.12*Compr
as

Descuento=0.08*Compras

SubTotal=ComprasDescuento

SubTotal=ComprasDescuento
Impuesto=0.18*SubTotal

Impuesto=0.18*SubTotal
Total=SubTotal+Impuesto

Total=SubTotal+Impuesto

Compras , Compras
Descuento: , Descuento

Sub Total: , SubTotal

Impuesto: , Impuesto

Total: , Total

FIN

Apuntes de Clase

Pg. 51

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
SOLUCION POR CONSOLE
Module Module1
Sub Main()
Dim dblCompras, dblDescuento, dblSubTotal, dblImpuesto,
dblTotal As Double
Console.Write("Ingrese el Total de compras: ")
dblCompras = Console.ReadLine
If dblCompras <= 500 Then
dblDescuento = dblCompras * 0.08
dblSubTotal = dblCompras - dblDescuento
dblImpuesto = dblSubTotal * 0.18
dblTotal = dblSubTotal + dblImpuesto
Else
dblDescuento = dblCompras * 0.12
dblSubTotal = dblCompras - dblDescuento
dblImpuesto = dblSubTotal * 0.18
dblTotal = dblSubTotal + dblImpuesto
End If
Console.WriteLine("Compras
= {0}", dblCompras)
Console.WriteLine("Descuento = {0}", dblDescuento)
Console.WriteLine("Sub Total = {0}", dblSubTotal)
Console.WriteLine("Impuesto = {0}", dblImpuesto)
Console.WriteLine("Total = {0}", dblTotal)
Console.ReadLine()
End Sub
End Module

SOLUCIN POR FORMULARIOS

Public Class frmCompraMateriales


Private Sub btnCalcular_Click(sender As Object, e As EventArgs)
Handles

Apuntes de Clase

Pg. 52

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
btnCalcular.Click
Dim dblCompra, dblDescuento, dblImpuesto, dblSubTotal,
dblTotal As Double
' Do
'Me.txtCompra.Text = ""
' Me.txtCompra.Focus()
dblCompra = Val(Me.txtCompra.Text)
' Loop While (dblCompra < 0)
If dblCompra <= 500 Then
dblDescuento = 0.08 * dblCompra
dblSubTotal = dblCompra - dblDescuento
Else
dblDescuento = 0.12 * dblCompra
dblSubTotal = dblCompra - dblDescuento
End If
dblImpuesto = 0.18 * dblSubTotal
dblTotal = dblSubTotal + dblImpuesto
Me.txtDescuento.Text = dblDescuento
Me.txtSubTotal.Text = dblSubTotal
Me.txtImpuesto.Text = dblImpuesto
Me.txtTotal.Text = dblTotal
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs)
Handles
btnSalir.Click
End
End Sub
End Class

PROBLEMA 3. Calcular el salario semanal de un empleado, sabiendo que ste se calcula en


base a las horas semanales trabajadas y de acuerdo a un precio especificado por hora. Si se
pasa de las 40 horas semanales, las horas extras se pagarn a razn de 1,5 veces la hora
ordinaria.
SOLUCIN POR CONSOLE
Module Module1
Sub Main()
'VARIABLES
Dim intHoras As Integer
Dim dblPrecioHora, dblSalarioSemanal As Double
'ENTRADA
Console.Write("Nmero de Horas Trabajadas: ")
intHoras = Console.ReadLine
Console.Write("Precio por hora: ")
dblPrecioHora = Console.ReadLine
'PROCESO
If intHoras > 40 Then
dblSalarioSemanal = dblPrecioHora*40+(intHoras-40)*1.5* dblPrecioHora

Apuntes de Clase

Pg. 53

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Else
dblSalarioSemanal = dblPrecioHora * intHoras
End If
'SALIDA
Console.Write("Salario semanal: {0} ", dblSalarioSemanal)
Console.ReadLine()
End Sub
SOLUCION POR FORMULARIOS

Public Class frmSalarioSemanal


Private Sub btnCalculaar_Click(sender As Object, e As EventArgs) Handles
btnCalcular.Click
Dim intHorasSemanales As Integer
Dim dblPrecioHora, dblSalarioSemanal
intHorasSemanales = Val(Me.txtHorasSemanales.Text)
dblPrecioHora = Val(Me.txtPrecioHora.Text)
If intHorasSemanales <= 40 Then
dblSalarioSemanal = dblPrecioHora * intHorasSemanales
Else
dblSalarioSemanal = 40*dblPrecioHora+(intHorasSemanales-40) * 1.5 * dblPrecioHora
End If
Me.txtSalarioSemanal.Text = dblSalarioSemanal
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

PROBLEMA 5. Escribir un programa que lea tres nmeros y los muestre ordenados de
mayor a menor.
SOLUCION POR CONSOLE
Module Module1
Sub Main()
'VARIABLES
Dim intNumA, intNumB, intNumC As Integer
'ENTRADA
Console.Write("Ingrese el nmero A: ")
intNumA = Console.ReadLine
Console.Write("Ingrese el nmero B: ")
intNumB = Console.ReadLine

Apuntes de Clase

Pg. 54

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.Write("Ingrese el nmero C: ")
intNumC = Console.ReadLine
'PROCESO
If intNumA > intNumB Then
If intNumB > intNumC Then
Console.WriteLine("{0}, {1},
ElseIf intNumA > intNumC Then
Console.WriteLine("{0}, {1},
Else
Console.WriteLine("{0}, {1},
End If
Else
If intNumA > intNumC Then
Console.WriteLine("{0}, {1},
ElseIf intNumB > intNumC Then
Console.WriteLine("{0}, {1},
Else
Console.WriteLine("{0}, {1},
End If
End If
Console.ReadLine()

{2}", intNumA, intNumB, intNumC)


{2}", intNumA, intNumC, intNumB)
{2}", intNumC, intNumA, intNumB)

{2}", intNumB, intNumA, intNumC)


{2}", intNumB, intNumC, intNumA)
{2}", intNumC, intNumB, intNumA)

End Sub
End Module
SOLUCION POR FORMULARIOS

Public Class frmOrdenamiento


Private Sub btnOrdenar_Click(sender As Object, e As EventArgs) Handles
btnOrdenar.Click
'VARIABLES
Dim intNumA, intNumB, intNumC As Integer
Dim strRespuesta As String
'ENTRADA
intNumA = Val(Me.txtNumA.Text)
intNumB = Val(Me.txtNumB.Text)
intNumC = Val(Me.txtNumC.Text)
'PROCESO
If intNumA > intNumB Then
If intNumB > intNumC Then
strRespuesta = intNumA & "," & intNumB & "," & intNumC
Me.txtResp.Text = strRespuesta
ElseIf intNumC > intNumA Then
strRespuesta = intNumC & "," & intNumA & "," & intNumB

Apuntes de Clase

Pg. 55

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Me.txtResp.Text = strRespuesta
Else
strRespuesta = intNumA & "," & intNumC & "," & intNumB
Me.txtResp.Text = strRespuesta
End If
Else
If intNumA > intNumC Then
strRespuesta = intNumB & "," & intNumA & "," & intNumC
Me.txtResp.Text = strRespuesta
ElseIf intNumC > intNumB Then
strRespuesta = intNumC & "," & intNumB & "," & intNumA
Me.txtResp.Text = strRespuesta
Else
strRespuesta = intNumB & "," & intNumC & "," & intNumA
Me.txtResp.Text = strRespuesta
End If
End If
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

5.2. Estructura de Decisin Condicional Mltiple


Esta estructura en un algoritmo nos permite elegir una de varias opciones, al utilizar
condiciones mltiples, nos es ms fcil de seguir la lgica del algoritmo, aunque tambin
podramos hacerlo con la Instruccin condicional simple, pero se nos hara muy tedioso, ya que
usaramos varias instrucciones condicionales simples ya sean independientes o anidadas. En
pseudocdigo sera:
Seleccionar en Caso (Variable_Expresin) Sea
Caso Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 1
Caso Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 2
Caso Valor 3
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 3
.
.
.
Caso Valor n
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor n
Otro Caso
Sentencia X
[Opcional (Cuando ningn valor es seleccionado
se ejecutar la Sentencia imperativa X)]
Fin_Caso

Apuntes de Clase

Pg. 56

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
SINTAXIS EN VISUAL BASIC .NET:
Select Case Variable_Expresin
Case Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 1
Case Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 2
.
.
Case Valor n
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor n
.
.
Exit Select
Transfiere inmediatamente el control a la
sentencia que sigue a End Select
.
.
.
Case Is OperadorDeComparacin Nmero
Sentencias a ejecutar
en caso que OperadorDeComparacin sea =, < >, <, <=, > o >=
Case Else
Sentencias X (Si no se cumple ninguna de las listas de expresiones)
End Select
Variable_Expresin . Debe evaluarse en uno de los tipos de datos elementales (Boolean,
Byte, Char, Date, Double, Decimal, Integer, Long, Object, Short, Single o String).
Valor 1, Valor 2, , Valor n : lista de valores que coinciden para Variable_Expresin. Los
valores se separan mediante comas. Cada clusula de valor puede tomar una de las siguientes
formas:

Numero1 To Numero2
[ Is ] operadorDeComparacin Numero
Numero

Utilice la palabra clave To para especificar los lmites de un intervalo de valores que
coinciden para Variable_Expresin. El valor de Numero1 debe ser menor o igual que el valor
de Numero2.
Utilice la palabra clave Is con un operador de comparacin (=, <>, <, <=, > o >=) para
especificar una restriccin en los valores coincidentes para Variable_Expresin.

Apuntes de Clase

Pg. 57

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Las valores pueden ser de cualquier tipo de datos, siempre que sean implcitamente
convertibles al tipo de Variable_Expresin y el correspondiente operadorDeComparacin sea
vlido para los dos tipos con los que se utilice.
Sentencias X
Opcional. Una o ms instrucciones despus de Case que se ejecutan si Variable_Expresin no
coincide con cualquier clusula en Valores.
End Select
Termina un bloque Select...Case.
Si Variable_Expresin coincide en ms de un Valor Case, slo se ejecutan las Sentencias que
siguen a la primera coincidencia.
Es recomendable tener una instruccin Case Else en el bloque Select Case para controlar los
valores de Variable_Expresin imprevistos. Si ninguna clusula Case Valor coincide con
Variable_Expresin y no existe ninguna instruccin Case Else, la ejecucin contina en la
instruccin que sigue a End Select.
Se pueden utilizar varias expresiones o intervalos en cada clusula Case. Por ejemplo, la lnea
siguiente es vlida: Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparacin Is.
Tambin puede especificar intervalos y varias expresiones para cadenas de caracteres. En el
siguiente ejemplo, Case coincide con cadenas que sean exactamente iguales a "manzana",
cadenas con valores entre "naranja" y "sanda" en orden alfabtico y con el valor actual de
Las instrucciones Select Case pueden anidarse. Cada instruccin Select Case anidada debe
tener una instruccin End Select coincidente.
Si no necesita ejecutar ms instrucciones de un bloque Case o Case Else, puede salir del
bloque mediante una instruccin Exit Select. Esto transfiere inmediatamente el control a la
instruccin que sigue a End Select.
Ejemplo:
Select Case intNumero
Case 3: Sentencia o Instruccin a realizar
Case 6 To 11
Sentencias a ejecutar si intNumero est en el rango de 6 a 11
Case 14, 17
Sentencias a ejecutar si intNumero es 14 17
Case Is < 19
Sentencias a ejecutar si intNumero < 19
Case Is = 31, 33, 35, 40
Sentencias a ejecutar si intNumero = 31 33 35 40
Case Is > 50
Sentencias a ejecutar si intNumero > 50
Case 1 To 4, 7 To 9, 11, 13, Is > maximoNumero
Sentencias a ejecutar si intNumero est en el rango de 1 a 4, 7 a 9
si intNumero es 11, 13

Apuntes de Clase

Pg. 58

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Case Else
Instruccin a realizar
End Select
En el ejemplo, hacemos varias comprobaciones, Case 3 (si intNumero vale 3) se ejecutar 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),
Si tiene un valor en un rango 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.
Cuando queremos comprobar si el valor es mayor (o cualquier otra comprobacin), usaremos
Is, como en el caso de Is > 50, esto es lo mismo que comprobar si intNumero es mayor que 50,
realizar la instruccin que se encuentra en su inferior. Se pueden utilizar varias expresiones o
intervalos en cada Case 1 To 4, 7 To 9, 11, 13, Is > maximoNumero
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.
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparacin Is.
Ejercicio 1. Elaborar una calculadora de cuatro operaciones utilizando la estructura Select
Case.
Formulario
Controles
Tres Label
lblNumeroA
lblNumeroB
lblOperador

Cuatro Textbox
txtNumeroA
txtNumeroB
txtOperador
txtRespuesta

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmCalculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
Select Case strOperador
Case "+"
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "-"
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "*"
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "/"

Apuntes de Clase

Pg. 59

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
If Me.txtNumeroB.Text = "0" Then
txtRespuesta.Text = "Error"
MsgBox("Ingrese un numero diferente de cero como divisor")
Else
dblRespuesta = dblNumeroA / dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
End If
End Select
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBorrar.Click
Me.txtNumeroA.Text = ""
Me.txtNumeroB.Text = ""
Me.txtOperador.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumeroA.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Ejercicio 2. Se desea evaluar el rendimiento a los alumnos de una asignatura en la que tienen
tres notas, utilizando la estructura Select Case.
Formulario

Controles
Sis Label
lblTitulo
lblNota1
lblNota2
lblNota3
lblPromedio
lblRendimiento

Cinco Textbox
txtNota1
txtNota2
txtNota3
txtPromedio
txtRendimiento

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmEvaluacion
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblNota1, dblNota2, dblNota3, dblPromedio As Double
dblNota1 = Me.txtNota1.Text
dblNota2 = Me.txtNota2.Text
dblNota3 = Me.txtNota3.Text
dblPromedio = Math.Round((dblNota1 + dblNota2 + dblNota3) / 3)
Me.txtPromedio.Text = dblPromedio
Select Case dblPromedio
Case Is < 0

Apuntes de Clase

Pg. 60

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
MsgBox("Las notas deben ser mayor o igual a cero")
Case 0 To 4
Me.txtRendimiento.Text = "PESIMO"
Case 5 To 10.4
Me.txtRendimiento.Text = "MALO"
Case 10.5 To 13
Me.txtRendimiento.Text = "REGULAR"
Case 14 To 16
Me.txtRendimiento.Text = "BUENO"
Case 17 To 20
Me.txtRendimiento.Text = "MUY BUENO"
End Select
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBorrar.Click
Me.txtNota1.Text = ""
Me.txtNota2.Text = ""
Me.txtNota3.Text = ""
Me.txtPromedio.Text = ""
Me.txtRendimiento.Text = ""
Me.txtNota1.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

PROBLEMA 3. Escribir un programa que lea un nmero entero positivo y que efecte los
siguientes clculos: Si el nmero termina en 0, 3, 7 u ocho, cambie su valor al doble; si
termina en 1 9, cambie su valor a la dcima parte; de otra manera mantiene su valor. Utilice
una estructura de decisin condicional mltiple.

Public Class frmCambioValor


Private Sub bntCalcular_Click(sender As Object, e As EventArgs) Handles
bntCalcular.Click
'VARIABLES
Dim intNumero, intNuevoValor As Integer
'ENTRADA
Do
intNumero = Val(Me.txtNumero.Text)
If intNumero < 0 Then
MsgBox("Ingresar un nmero Positivo")

Apuntes de Clase

Pg. 61

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Me.txtNumero.Text = ""
Me.txtCambioValor.Text = ""
Me.txtNumero.Focus()
End If
Loop While (intNumero < 0)
'PROCESO
Select Case intNumero Mod 10
Case 0, 3, 7, 8
intNuevoValor = 2 * intNumero
Me.txtCambioValor.Text = intNuevoValor
Case 1, 9
intNuevoValor = intNumero / 10
Me.txtCambioValor.Text = intNuevoValor
Case Else
Me.txtCambioValor.Text = intNumero
End Select
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

SOLUCION POR CONSOLE


Module Module1
Sub Main()
'VARIABLES
Dim intNum As Integer
'ENTRADA
Do
Console.Write("Ingrese un nmero entero positivo: ")
intNum = Console.ReadLine
Loop While intNum < 0
'PROCESO
Select Case intNum Mod 10
Case 0, 3, 7, 8
intNum = 2 * intNum
Console.Write("El nmero es : {0}", intNum)
Case 1, 9
intNum = intNum / 10
Console.Write("El nmero es : {0}", intNum)
Case Else
Console.Write("El nmero es : {0}", intNum)
End Select
Console.ReadLine()

End Sub
End Module

Apuntes de Clase

Pg. 62

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
6. Estructuras de Repeticin.
6.1. Contadores y acumuladores.
Contador: Es un tipo de asignacin especial en la cual a la variable se asigna su valor
incrementado en una cantidad constante que en este caso ser igual a uno: n = n + 1,
colocado en un bucle se generan los nmeros solicitados.
Ejemplo

n = n +1

n=n+1
n = 0 n = 0 +1 = 1;
n = 1 n = 1 +1 = 2;
n = 2 n = 2 +1 = 3;
as sucesivamente en cada
ciclo.

Acumulador o Totalizador: Es un tipo de asignacin especial en la cual, a una variable le


asignamos su valor incrementado en una cantidad tambin variable: suma = suma + n, para
el ejemplo usaremos los valores de n generados en el problema anterior.
Ejemplo:
suma = suma + n
suma = 0 suma = 0 + 1 = 1;
suma = suma + n
suma = 1 suma = 1 + 2 = 3;
suma = 3 suma = 3 + 3 = 6;
suma = 6 suma = 6 + 4 = 10;
suma
as sucesivamente en cada ciclo.
6.2. Estructura de Control Repetitiva: Para ......
La estructura de repeticin: Para , permite ejecutar ciclos repetitivos un nmero
determinado de veces y con un incremento que puede ser positivo o negativo.
Para ( inicializacin_variable hasta limite incremento )
inicio
sentencia 1;
sentencia 2;
.
.
sentencia n
.
fin_para;
En Visual Basic el bucle ForNext,
Sintxis:
For contador = inicio To fin [ Step incremento]
Sentencia 1
.
.
Sentencia
[Exit For]
Sentencia
.
.
Sentencia n
Next [contador]

Apuntes de Clase

Pg. 63

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Donde:
contador
Variable numrica que se utiliza como contador en el bucle.
inicio
Valor inicial del contador
fin
Valor final del contador
incremento
Opcional. Cantidad en la que cambia el contador cada vez que se ejecuta un
ciclo en el bucle. Si no se especifica el incremento, el valor predeterminado de
incremento es uno.
sentencias
Opcional. Una o ms sentencias ubicadas entre For y Next, que se ejecutan un
nmero especificado de veces.
Exit For, permite salir del bucle For antes que este finalice. Esta sentencia con
frecuencia se utiliza en la evaluacin de alguna condicin empleando una
estructura condicional If ...Then.
Se pueden anidar bucles For ... Next, colocando un bucle For dentro de otro. En cada bucle, la
variable contador debe ser nica. La siguiente construccin es correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Ejemplo. Programa que calcula la suma y promedio de un rango de enteros.
Anlisis del Problema
Por el teclado ingresamos dos nmeros, los que se almacenan en las variables prim y ultimo;
si el contenido de la variable prim es mayor que el contenido de la variable ultimo,
cambiamos el contenido de las variables de tal manera que el contenido de la variable ultimo
sea mayor, para esto utilizamos una variable auxiliar denominada temp la siguiente manera:
temp = prim
prim = ultimo
ultimo = temp
En el bucle Para ( ), inicializamos la variable de control i = prim,
la condicin lgica ser i ultimo,
el incremento de la variable de control ser de uno en uno;
en el bloque de sentencias colocaremos un contador (conta), que contar cuantos nmeros se
estn sumando en la variable sum.
El promedio se calculara dividiendo el contenido de la variable sum entre el contenido de la
variable conta.
Algoritmo
Programa EB_Suma_Promedio_RE;
Variables
entero i, conta = 0;
real sum = 0.0;
entero prim, ultimo, temp;
Inicio
Escribir ( "Ingrese un numero entero: " ) ;
Leer( prim ) ;
Escribir ( "Ingrese otro numero: " ) ;

Apuntes de Clase

Pg. 64

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Leer ( ultimo ) ;
Si (prim > ultimo)
Inicio
temp = prim;
prim = ultimo;
ultimo = temp;
Fin_Si
Para (i = prim hasta ultimo )
inicio
conta = conta +1;
sum = sum + i;
fin_para;
Escribir ( "Suma de enteros desde " , prim , " al " , ultimo , " = " , sum ) ;
Escribir ( "Promedio = " , sum / conta ) ;
Fin.
Ejercicio 1. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, por el teclado se ingresarn los nmeros que determinen el rango.
Formulario

Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio

Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmSumaProducto
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal As Integer
Dim intContador, intSuma, intPromedio, i As Integer
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
For i = intPrimero To intUltimo
intSuma += i
intContador += 1

Apuntes de Clase

Pg. 65

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Next
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

Ejercicio 2. Elaborar un programa que muestre la tabla de multiplicar de un nmero


cualquiera ingresado por el teclado.
Formulario

Controles
Dos Label
lblTitulo
lblNumero

Text Box
txtNumero

List Box
lstTabla

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmTablaMultiplicar
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intMultiplicando, i, intProducto As Integer
Dim strResultado As String
intMultiplicando = Me.txtNumero.Text
For i = 1 To 12
intProducto = i * intMultiplicando
strResultado = i & " * " & intMultiplicando & " = " & intProducto
Me.lstTabla.Items.Add(strResultado)
Next
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumero.Text = ""
Me.lstTabla.Items.Clear()
Me.txtNumero.Focus()
End Sub

Apuntes de Clase

Pg. 66

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class

6.3. Estructura de Repeticin Hacer [Mientras / Hasta que] . . .


Una Estructura de Repeticin, es un algoritmo que permite repetir una o varias sentencias
un nmero determinado de veces. A este tipo de estructuras se denominan bucles, lazos o
loops. A la repeticin de un conjunto de sentencias dentro de un bucle se le denomina
iteracin.
6.3.1. Estructura de Repeticin Hacer Mientras ., permite ejecutar una iteracin el
conjunto o bloque de sentencias del bucle.
Hacer Mientras ( condicin )
sentencia 1 ;
.
.
.
sentencia n ;
Fin_Hacer
El flujo del programa al encontrar esta estructura de repeticin evala la condicin lgica, si
es verdadera se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle,
as sucesivamente Mientras la condicin lgica sea verdadera.
Esta estructura tambin podra ser de la siguiente forma:
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Mientras ( condicin )
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condicin, si al evaluarla la condicin lgica es verdadera se repite el
conjunto de sentencias o bloque de sentencias que contiene el bucle, as sucesivamente
Mientras la condicin lgica sea verdadera.
6.3.2. Estructura de Repeticin Hacer . Hasta que, permite ejecutar una iteracin el
conjunto o bloque de sentencias del bucle, hasta que se cumpla la condicin.
Hacer Hasta que ( condicin )
sentencia 1 ;
.
.
.
sentencia n ;

Apuntes de Clase

Pg. 67

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Fin Hacer
El flujo del programa al encontrar esta estructura de repeticin evala la condicin lgica, si
es falsa se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle, as
sucesivamente Hasta que la condicin lgica sea verdadera.
Tambin podra tomar esta forma:
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Hasta que ( condicin )
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condicin, si al evaluarla la condicin lgica es falsa se repite el conjunto
de sentencias o bloque de sentencias que contiene el bucle, as sucesivamente Hasta que la
condicin lgica sea verdadera.
6.4. En Visual Basic el bucle Do . . . Loop
Repite un bloque de instrucciones Mientras o Hasta que una condicin lgica sea verdadera
Sintaxis
Do [ { While / Until } condicin ]
Instruccin 1
.
.
Instruccin n
[Exit Do]
Instruccin 1
.
.
Instruccin n
Loop

Podramos utilizar esta sintxis:


Do
Instruccin 1
.
.
Instruccin n
[Exit Do]
Instruccin 1
.
.
Instruccin n
Loop [ { While / Until } condicin ]
Donde:

Apuntes de Clase

Pg. 68

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
condicin Expresin lgica
Instruccines Opcional. Una o ms sentencias ubicadas entre Do y Loop, que se ejecutan
mientras o hasta que se cumpla o la condicin lgica sea verdadera.
Exit Do, permite una salida alternativa del bucle Do antes que este finalice.
Esta sentencia con frecuencia se utiliza en la evaluacin de alguna condicin
empleando una estructura condicional If ...Then, la Instruccin Exit Do
transfiere el control del flujo del programa a la instruccin que sigue
inmediatamente a la Instruccin Loop
Se puede anidar uno o mas bucles Do . . . Loop, dentro de otro bucle Do . . . Loop
Ejemplo. Elaborar un programa para una tabla de multiplicar de un nmero cualquiera
ingresado por el teclado, utilizando el bucle Hacer - Mientras.
Anlisis del Problema
Necesitamos generar nmeros del 1 al 12 (un contador), que al ser multiplicados por el
nmero de la tabla que deseamos ver, obtendremos el resultado esperado.
En el bucle hacer mientras colocamos como bloque de sentencias la variable contador cont
y a la variable prod = cont * mult, el contenido de la variable mul se ingresa por el teclado,
mostramos los resultados obtenidos.
Algoritmo
Programa EB_Tabla_Multiplicar ;
Variables
Entero cont = 0, mult, prod ;
Inicio
Escribir ( "Ingrese el numero de la tabla que desee ver : " ) ;
Leer ( mult ) ;
Escribir ( "TABLA DE MULTIPLICAR DEL NUMERO " , mult ) ;
Hacer
cont = cont + 1 ;
prod = cont * mult;
Escribir (cont ," * ", mult ," = " , prod ) ;
Mientras (cont<12);
Fin.

Apuntes de Clase

Pg. 69

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 3. Elaborar un programa que encuentre la suma y el promedio de un rango de enteros, utilizando la
estructura Do ..... While.

Formulario

Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio

Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmSumaPromedio
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal, intContador, intSuma, i As Integer
Dim intPromedio As Double
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
i = intPrimero
Do
intSuma + = i
intContador + = 1
i+=1
Loop While i < = intUltimo
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 70

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 4. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, utilizando la estructura Do ..... Until.
Formulario
Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio

Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio

Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmSumaPromedio
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal, intContador, intSuma, i As Integer
Dim intPromedio As Double
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
i = intPrimero
Do
intSuma + = i
intContador + = 1
i+=1
Loop Until i > intUltimo
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnSalir.Click
End
End Sub
End Class

Apuntes de Clase

Pg. 71

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

CAPITULO III

7. FUNCIONES Y PROCEDIMIENTOS
7.1. Funciones Matemticas Predefinidas.
Una de sus Clases es System.Math la cual soporta los siguientes mtodos
Mtodo

Abs(n)

Descripcin
Calcula el valor absoluto de n

Atan(n) Calcula el arcotangente de n en radianes


Cos(n)

Calcula el coseno del ngulo n expresado en radianes

Exp(n)

Calcula el constante de e elevada a n

Sign(n) Regresa -1 si n es menor que cero, 0 si n es cero y +1 si n es mayor a cero


Sin(n)

Calcula el seno del ngulo n expresado en radianes

Sqrt(n) Calcula la raz cuadrada de n.


Tan(n)

Calcula la tangente del ngulo n expresado en radianes

La declaracin de Imports debe ser a nivel de formulario:


7.2. Procedimiento es un conjunto de sentencias que realizan una accin lgica. Existen tres
tipos de procedimientos en Visual Basic .NET:
1. Event procedures/Event handler, procedimiento que contiene cdigo que es
ejecutado en respuesta a un evento. Cuando el evento es disparado el cdigo dentro
del manejador de eventos es ejecutado.
Visual Basic .NET para los manejadores de eventos utiliza una convencin estndar la
cual combina el nombre del objeto seguido de un guin bajo y el nombre del evento.
Private|Public Sub objeto_Evento(parmetros) handles Objeto.Evento
sentencias
End Sub

Cada manejador de eventos provee dos parmetros, el primer parmetro llamado


sender provee una referencia al objeto que dispara el evento, el segundo parmetro es

Apuntes de Clase

Pg. 72

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
un objeto cuyo tipo de dato depende del evento que es manejado. Ambos parmetros
son pasados por valor.
Si un parmetro es declarado por referencia ByRef el parmetro apunta al argumento
actual. Por default los argumentos se pasan por valor ByVal el parmetro es una copia
local del argumento.
2. Sub procedures, contiene cdigo que el desarrollador crea para realizar una accin
lgica.
3. Function procedures, contiene cdigo que el desarrollador crea para realizar una
accin lgica y regresa un valor, el valor que una funcin enva de regreso al
programa que lo invoco es llamado valor de regreso. Para regresar un valor se utiliza
la sentencia Return.
Ejercicio 1. Elaborar un programa usando procedimientos, que muestre un saludo por la
noche: 1. En Castellano. 2. En Ingls. 3. En Portugus.
Module Module1
Dim opc As Integer
Sub Main( )
Console.Write("PROCEDIMIENTOS")
Console.WriteLine( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
Call OPCIONES( )
Console.WriteLine("Fin del Programa")
Console.ReadLine( )
End Sub
Sub MENU()
Console.WriteLine("{0}SALUDO POR LA NOCHE", Space(30))
Console.WriteLine("{0}Men de Opciones", Space(32))
Console.WriteLine("{0}[1] En Castellano", Space(10))
Console.WriteLine("{0}[2] En Ingls", Space(10))
Console.WriteLine("{0}[3] En Portugus", Space(10))
Console.WriteLine("{0}[4] Salir", Space(10))
End Sub
Sub OPCIONES( )
While opc < > 4
Select Case opc
Case 1
Call Castellano( )
Console.ReadLine( )
Case 2
Call Ingles( )
Console.ReadLine( )
Case 3
Call Portugues( )
Console.ReadLine( )

Apuntes de Clase

Pg. 73

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Case Else
Console.WriteLine("Opcin equivocada elija correctamente")
Console.ReadLine( )
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
End Select
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
End While
End Sub
Sub Castellano( )
Console.Write("Buenas Noches")
Console.ReadLine( )
End Sub
Sub Ingles( )
Console.Write("Good Nigth")
Console.Read( )
End Sub
Sub Portugues( )
Console.Write("Boa Noite")
Console.ReadLine( )
End Sub
End Module
Ejercicio 2. Elaborar un programa que muestre un men de opciones para: 1. Mostrar los
nmeros pares menores que el nmero que se ingrese por el teclado, 2. Si el nmero ingresado
por el teclado es primo, 3. Calcular el factorial del nmero ingresado por el teclado.
CDIGO
Module Module1
'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)

Apuntes de Clase

Pg. 74

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
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()

Apuntes de Clase

Pg. 75

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("El Factorial del Nmero es : {0}", r)
End Sub
End Module

Ejercicio 3. Elaborar un programa utilizando procedimientos y funciones para: 1. Encontrar


el rea de una circunferencia, 2. Volumen de un esfera 3. Longitud de una circunferencia.
CDIGO
Module Module1
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} MEN DE OPCIONES", Space(25))
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} [1] El rea de una circunferencia", Space(10))
Console.WriteLine("{0} [2] El volumen de una esfera", Space(10))
Console.WriteLine("{0} [3] La longitud de una circunferencia",
Space(10))
Console.WriteLine("{0} [4] Salir del Programa", Space(10))
Console.WriteLine()
End Sub
Function Area(ByVal Num As Integer) As Double
Area = (3.14159 * (Num * Num))
End Function

Apuntes de Clase

Pg. 76

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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

8. ARRAYS Y ESTRUCTURAS
8.1. Arrays
Un arreglo es un tipo de asignacin especial en la cual las variables, tienen el mismo nombre y
diferente sub ndice.
8.1.1. Array Unidimensional
Un Array (arreglo) es un conjunto de variables que tienen el mismo nombre, diferente sub
ndice, que es lo que los diferencia e identifica y contienen el mismo tipo de dato.
Sintaxis:

5
A(0)

8
A(1)

A(2)

A(3)

Lmite inferior
A(0)
A(1)
4 elementos

A(2)
A(3)
Lmite superior es
igual al nmero de
elementos menos 1

i = 0, 1, 2, 3
Sintaxis:
Dim nombreVariable(NmeroDeElementos) As TipoDeDato
En efecto, tal como se puede apreciar, el array ser utilizable nicamente a partir de su
declaracin.
Un array unidimensional tiene las siguientes caractersticas:
El lmite inferior es cero y no se puede alterar.
El lmite superior es igual al nmero de elementos del vector menos uno.
Por ejemplo:
Dim A(3) As Integer
En este ejemplo, el nmero 3 que est dentro de los parntesis indica el nmero total de
elementos - 1 de que tendr el array, es decir el vector declarado tiene cuatro elementos:

Apuntes de Clase

Pg. 77

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
A(0), A(1), A(2) y A(3), que cada uno de ellos almacenar un nmero entero por el tipo de
dato declarado
Ejercicio 1. Ingresar y mostrar Datos de un Vector.
CDIGO:
Module Module1
Sub Main()
Dim nElementos, i, n As Integer
Console.Write("Ingresar nmero de elementos del Vector A(): ")
nElementos = Console.ReadLine
n = nElementos - 1
Dim A(n) As Integer
For i = 0 To n
Console.Write("A[ {0} ]= ", (i + 1))
A(i) = CInt(Console.ReadLine)
Next
Console.WriteLine("Elementos del Vector A")
For i = 0 To n
Console.Write("
{0}", A(i))
Next
Console.WriteLine()
Console.WriteLine()
'Determinar el nmero de elementos del Vector utilizando el mtodo Length
Console.WriteLine("Elementos del array A()= {0}", A.Length)
'Visualizar los elementos del Vector utilizando For Each
Console.WriteLine("Recorrer o visualizar el contenido del Vector A(),
usando For Each ")
For Each i In A
Console.WriteLine(i)
Next
Console.WriteLine()
Console.WriteLine()
'Asignacin de Datos o Valores al declarar el VECTOR B
Dim B() As Integer = {10, 52, 85, 37, 14}
'Determinar el numero de elementos del Vector utilizando el mtodo Length
Console.WriteLine("Elementos del array B()= {0}", B.Length)
'Visualizar los elementos del Vector utilizando For Each
Console.WriteLine("Recorrer o visualizar el contenido del Vector B(),
usando For Each ")
For Each i In B
Console.WriteLine(i)
Next
'
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
End Sub
End Module

Ejercicio 1. Ingresar y mostrar ventas de un ao, utilizando un vector

Apuntes de Clase

Pg. 78

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________

Public Class frmVector


Dim ventas(12) As Decimal
Dim i As Integer
Private Sub btnIngresar_Click(sender As Object, e As EventArgs) Handles btnIngresar.Click
i = txtMes.Text
If i >= 1 And i <= 12 Then
ventas(i) = txtImp.Text
Else
MsgBox("Ingrese un valor entre 1 y 12")
End If
txtMes.Text = ""
txtImp.Text = ""
txtMes.Focus( )
End Sub
Private Sub btnListar_Click(sender As Object, e As EventArgs) Handles btnListar.Click
i=1
dgvTabla.Rows.Clear( )
Do While (i <= 12)
dgvTabla.Rows.Add(i, ventas(i))
i=i+1
Loop
End Sub
Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
i=1
Do While (i <= 12)
ventas(i) = 0
i=i+1
Loop
End Sub

Apuntes de Clase

Pg. 79

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
End
End Sub
End Class

8.1.2. Array Multidimensional


Los arrays multidimensionales son aquellos que tienen dos o ms dimensiones, es decir, que
cada elemento del array viene definido por dos o ms subndices. Los elementos del arreglo
almacenarn el mismo tipo de datos, que se indicar en el momento de la declaracin.
j-sima columna
A(00) A(01) A(02) . . .
A(10) A(11) A(12) . . .
.
.
.
.
.
.
.
.
.
.
.
.
A(i0) A(i1) A(i2) . . .
.
.
.
.
.
.
.
.
.
.
.
.
A(m0) A(m1) A(i2) . . .

A(0j) . . . A(0n)
A(1j) . . . A(1n).
.
.
.
.
Elemento generatriz
.
.
A(ij) . . . A(0n)
.
.
.
.
i-sima fila
.
.
A(mj) . . . A(0n)

i = 0, 1, 2, 3, . . . , m filas
j = 0, 1, 2, 3, . . . , n columnas
Sintaxis:
Dim nombreVariable(a, b) As TipoDeDato
Como vemos, hay dos letras dentro de los parntesis, separadas por comas, lo cual indica que
el array es bidimensional, puesto que los dos subndices del mismo se separan uno de otro por
comas. Al igual que en los arreglos unidimensionales, cada uno de los subndices tienen las
siguientes caractersticas:
El lmite inferior es cero y no se puede alterar.
El lmite superior es igual al nmero de elementos menos uno.
Ejemplo:
Dim A(1,3) As Integer
Este array es bidimensional o matriz, los sub ndices indican que la matriz tiene los siguientes
elementos
A(0,0) A(0,1) A(0,2) A(0,3)
A(1,0) A(1,1) A(1,2) A(1,3)
Cada uno de los elementos de la matriz almacenar un nmero entero tal como fue declarado.

Apuntes de Clase

Pg. 80

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
INGRESO DE DATOS DE UNA MATRIZ

INICIO
Ingresar nmero de filas de la Matriz A[m][n]:

nFilas
Ingresar nmero de columnas de la Matriz A[m][n]:
nColumnas

m = nFilas -1
n = nColumnas -1

Para i = 1 hasta m

Para j = 1 hasta n
A[, i, ] [ , j, ]=

A[ i ] [ j ]

FIN

Apuntes de Clase

Pg. 81

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
MOSTRAR DATOS DE UNA MATRIZ

INICIO
Ingresar nmero de filas de la Matriz A[m][n]:

nFilas
Ingresar nmero de columnas de la Matriz A[m][n]:
nColumnas
m = nFilas -1
n = nColumnas -1

Para i = 1 hasta m

Para j = 1 hasta n

, A[ i ] [ j ]

FIN

Ejercicio 2. Ingresar y mostrar Datos de una Matriz.


CDIGO:
Module Module1
Sub Main()
Dim numeroFilas, numeroColumnas, i, j, m, n As Integer
Console.Write("Ingresar nmero de Filas de la Matriz A[m][n]: ")
numeroFilas = Console.ReadLine
m = numeroFilas - 1

Apuntes de Clase

Pg. 82

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.Write("Ingresar nmero de Columnas de la Matriz A[m][n]: ")
numeroColumnas = Console.ReadLine
n = numeroColumnas - 1
Dim A(m, n) As Integer
For i = 0 To m
For j = 0 To n
Console.Write("A[ {0} ][ {1} ]= ", (i + 1), (j + 1))
A(i, j) = CInt(Console.ReadLine)
Next
Next
Console.WriteLine("Elementos de la Matriz A[m][n]")
For i = 0 To m
Console.WriteLine()
For j = 0 To n
Console.Write(" {0}", A(i, j))
Next
Next
Console.WriteLine()
Console.WriteLine()
'Determinar el nmero de elementos de la Matriz utilizando el mtodo Length
Console.WriteLine("El nmero de elementos del array A(m,n)= {0}", A.Length)
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("MATRIZ B")
'Asignacin de Datos o Valores al declarar la MATRIZ B
Dim B(2, 2) As Integer
B(0, 0) = 23
B(0, 1) = 34
B(0, 2) = 56
B(1, 0) = 89
B(1, 1) = 23
B(1, 2) = 65
B(2, 0) = 59
B(2, 1) = 78
B(2, 2) = 88
'Determinar el nmero de elementos de la Matriz utilizando el mtodo Length
Console.WriteLine("El nmero de elementos del array B(m,n)= {0}", B.Length)
Console.WriteLine("Recorrer o visualizar el contenido de la Matriz B ")
For i = 0 To 2
Console.WriteLine()
For j = 0 To 2
Console.Write(" {0}", B(i, j))
Next
Next
Console.WriteLine()
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
End Sub
End Module

Apuntes de Clase

Pg. 83

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
8.2. Estructuras: Structure
Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que permiten
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.
Ejercicio 3. Elaborar un programa que encuentre el rea y permetro de distintos tipos de
triangulo, utilizando una estructura, procedimientos, y funciones (Sub y Function)
CDIGO:
Module Module1
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)
Console.Write("Ingrese la base: ")
b = CDbl(Console.ReadLine)
Rec.TrianRec(a, b)
Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianRec)

Apuntes de Clase

Pg. 84

Ing Eduardo A. Barrantes Meja

Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("El permetro 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}", Nor.AreaTrianNor)
Console.WriteLine("El permetro del triangulo es: {0}", Nor.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

Apuntes de Clase

Pg. 85

Ing Eduardo A. Barrantes Meja