Está en la página 1de 87

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, abril de 2017


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 y Definicin del problema.


b. Diagrama de Pasada
c. Diseo del algoritmo (Diagrama de Flujo)
d. Verificacin manual del algoritmo
e. Pseudocdigo
f. Codificacin del problema.
g. Depuracin y verificacin del programa.
h. Documentacin.
i. 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.

Apuntes de Clase Pg. 2 Ing Eduardo A. Barrantes Meja


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

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 PROCESO SALIDA

Datos 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.
Apuntes de Clase Pg. 3 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
PROCESO (Transformacin): calcular Superficie = base * altura.
SALIDA (Resultados): mostrar El rea es = , Superficie
Fin.
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 ENTRADA

Calcular el rea del


Rectnguulo PROCESO

El rea es = , Superficie 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.

Apuntes de Clase Pg. 4 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
h. Los nombres que se asignen a las variables o campos se recomienda que sean
nemotcnicos; es decir, que indiquen para que sirven.
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 nativo, 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 Decisin Simple Decisin Mltiple

Apuntes de Clase Pg. 8 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 Inicio

2 Ingresar la base :

3 base

4 Ingresar la altura:

5 altura

6 Superficie = base * altura

7 El rea es = , Superficie

8 Fin

Pseudocdigo

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

V A R I AB L E S
PASOS SALIDA
base altura Superficie
1. Inicio
2.Escribir Ingresar la base :
7
3. Leer 7 Enter
4.Escribir Ingresar la altura :
9
5.Leer 9 Enter

Apuntes de Clase Pg. 10 Ing Eduardo A. Barrantes Meja


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

7. El rea es = 63
8. Fin

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, Windows Chrome, Mozilla, 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

Apuntes de Clase Pg. 15 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
tiempo de diseo y tambin casi siempre en tiempo de ejecucin. En este segundo caso se
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) de
la accin 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 y 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 Descripcin


.sln Solucin Organiza proyectos, elementos de proyectos y elementos de
Visual soluciones en una solucin proporcionando al entorno
Studio referencias a sus ubicaciones en disco.
.suo Solution Registra todas las opciones que podemos asociar a nuestra
user solucin de forma que cada vez que abramos la solucin
options incluya las personalizaciones que hayamos realizado.
.vb Proyecto Representa los archivos de formularios, controles de usuario,
Visual clases y mdulos que pertenecen a la solucin de un solo
Basic 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

Apuntes de Clase Pg. 18 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
texto tiene la extensin .txt.
.vbproj Proyectos Representa los archivos de formularios, controles de usuario,
Visual clases y mdulos que pertenecen a la solucin con mltiples
Basic proyectos. Esta extensin nos permite diferenciar entre
archivos escritos en Visual Basic .NET y otros lenguajes
compatibles con .NET. (Visual C# utiliza .csproj.)
.aspx Elementos Los elementos de proyecto Web incluyen archivos Web
.asmx de especficos como .aspx para Web Forms, .asmx para servicios
.asax 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 Matrices
usuario
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 Visual
Tamao Rango de Valores
Basic .NET
Boolean 2 bytes Verdadero o Falso

Date 8 bytes 0:00:00 del 1 de enero de 0001 a


11:59:59 PM del 31 de diciembre de 9999
Decimal 16 bytes Hasta 29 dgitos significativos,
28
con
valores de hasta 7,9228 x 10 (con signo)
Double 8 bytes -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 -3,4028235E+38 a 1,401298E-45
(con signo)
String Vara 0 a 2.000 millones aproximadamente de
caracteres Unicode

Tipo de dato Tipo correspondiente en Tamao Rango de valores


en VB.NET el entorno de .NET
Framework
Boolean System.Boolean 2 bytes Un valor verdadero o falso.
Valores: True o False.
En VB se pueden representar por -
1 o 0, en CLR sern 1 y 0, aunque
no es recomendable usar valores
numricos, es preferible usar
siempre True o False.
Dim b As Boolean = True
Byte System.Byte 1 byte 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
Char System.Char 2 bytes 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,

Apuntes de Clase Pg. 22 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
usar la letra C despus de la
cadena:
Dim c As Char = "N"c
Date System.DateTime 8 bytes 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#
Decimal System.Decimal 16 bytes 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@
Double System.Double 8 bytes 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#
Integer System.Int32 4 bytes 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

Apuntes de Clase Pg. 23 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
un nmero entero:
Dim unEntero As Integer =
250009I
Dim unEntero2 As Integer =
652000%
Long System.Int64 8 bytes Un entero largo (o grande)
(entero largo) 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&
Object System.Object 4 bytes Cualquier tipo se puede almacenar
(class) en una variable de tipo Object.
Todos los datos que se manejan en
.NET estn basados en el tipo
Object.
Short System.Int16 2 bytes Un entero corto (sin decimales)
(entero corto) 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
Single System.Single 4 bytes Nmero de coma flotante de
precisin simple.
Valores:
de -3.4028235E+38 a -1.401298E-
45 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!
String System.String Depende de Una cadena de caracteres Unicode.
(cadenas de (clase) la Valores:
longitud plataforma de 0 to aproximadamente 2
variable) billones (2^31) de caracteres
Unicode.
Se puede usar el smbolo $ para
indicar que una variable es un
String.
Tipos (heradada de Depende de Cada miembro de la estructura
definidos por System.ValueType) la tiene su rango, dependiendo del
el usuario plataforma tipo de dato que representa.
(estructuras)
IntPtr IntPtr (tipo de dato no Depende de Entero con signo con tamao

Apuntes de Clase Pg. 24 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
nativo) la 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 UIntPtr (tipo de dato no Depende Entero sin signo con tamao
nativo) de la 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 String
int Integer
lng Long Integer
sng Coma flotante de precisin simple
dbl Coma flotante de precisin doble
dec Decimal
bln Boolean (True/False)
dte 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 Valores del argumento


devuelve "expresion"

CBool(expresion) Boolean Cualquier valor de cadena


o expresin numrica.
CByte(expresion) Byte de 0 a 255; las fracciones
se redondean.
CChar(expresion) Char Cualquier expresin de
cadena; los valores deben
ser de 0 a 65535.

Apuntes de Clase Pg. 28 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
CDate(expresion) Date Cualquier representacin
vlida de una fecha o una
hora.
CDbl(expresion) Double Cualquier valor Duoble,
ver la tabla anterior para
los valores posibles.
CDec(expresion) Decimal Cualquier valor Decimal,
ver la tabla anterior para
los valores posibles.
CInt(expresion) Integer Cualquier valor Integer,
ver la tabla anterior para
los valores posibles, las
fracciones se redondean.
CLng(expresion) Long Cualquier valor Long, ver
la tabla anterior para los
valores posibles, las
fracciones se redondean.
CObj(expresion) Object Cualquier expresin vlida.
CShort(expresion) Short Cualquier valor Short, ver
la tabla anterior para los
valores posibles, las
fracciones se redondean.
CSng(expresion) Single Cualquier valor Single,
ver la tabla anterior para
los valores posibles.

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 Ejemplo
= Igual a a=b
< Menor que a<b
> Mayor que a>b
<= Menor o igual que a<=b
>= Mayor o igual que a>=b
<> Diferente a a<> b

Apuntes de Clase Pg. 35 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 Las dos expresiones deben ser verdaderas
Or 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 corto-
circuito, 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 SI
C.L..

Pseudocdigo En Visual Basic


if .... Then .... Else ....End If
Si (condicin lgica) Entonces If Condicin lgica Then

Sentencia Verdadera (V) Sentencia Verdadera (V)

Si_No Else
Sentencia Falsa (F) Sentencia Falsa (F)

Fin Si End If

Apuntes de Clase 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
Anlisis del Problema: 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.

Diagrama de Pasada

n Entrada

Determinar Proceso
si el nmero n es
positivo o negativo

El nmero es Salida
....................
es ..................

Pseudocdigo: Visual Basic


Programa EB_Positivo_Negativo; Cdigo en Visual Basic
Variables ' Variable
entero n; Dim n As Integer
Inicio ' Ingreso de Datos
Escribir("Ingrese un nmero: "); n = txtNumero.Text
Leer( n );
'Proceso o clculo
Si (n>0) If n > 0 Then
Escribir( "El nmero es positivo"); txtRespuesta.Text = "El
nmero es Positivo "
Si_no Else
Escribir( "El nmero es negativo"); txtRespuesta.Text = "El
nmero es Negativo "
Fin. 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) If Condicin lgica 1 Then
Sentencia Verdadera (V) Sentencia Verdadera 1 (V)
SiNo_Si (condicin lgica) ElseIf Condicin lgica 2
Sentencia Verdadera (V) Sentencia Verdadera 2 (V)
SiNo_Si (condicin lgica) ElseIf Condicin lgica 3
Sentencia Verdadera (V) Sentencia Verdadera 3 (V)
Si_No Else
Sentencia Falsa (F) 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: Visual Basic


Programa EB_Mayor; Cdigo en Visual Basic
Variables ' Variable
entero a,b,c, nMayor; Dim a, b, c, nMayor As Integer
Inicio
Escribir("Ingrese tres nmeros: "); ' Ingreso de Datos
Leer ( a ) ; a = txtNumA.Text
Leer ( b ) ; b = txtNumB.Text
Leer ( c ) ; c = txtNumC.Text

'Proceso o clculo
Si (a > b y a > c) If a > b And a > c Then
nMayor = a; nMayor = a
SiNo_Si ( b >c ) ElseIf b>c
nMayor = b; nMayor = b
Si_No Else
nMayor = c; nMayor = c
End If
Escribir(El mayor es = ,nMayor); txtRespuesta.Text = nMayor
Fin.

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
Numero de tipo Entero
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
txtNum
txtResp
Tres Button
btnCalcular
btnBorrar
btnSalir

CDIGO
Public Class frmPosiNegaCero

Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCalcular.Click
'DECLARACIN DE VARIABLES
Dim intNum As Integer
'ENTRADA de Datos
intNum = Val(txtNum.Text)
'PROCESO
If intNum = 0 Then
txtResp.Text = "El nmero es cero"
ElseIf intNum > 0 Then
txtResp.Text = "El nmero " & intNum & " es positivo"
Else
txtResp.Text = "El nmero " & intNum & " es negativo"
End If
End Sub

Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBorrar.Click
txtNum.Text = ""
txtResp.Text = ""
txtNum.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. 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 Descuento=0.08*Compras
as
SubTotal=Compras- SubTotal=Compras-
Descuento Descuento

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}, {2}", intNumA, intNumB, intNumC)
ElseIf intNumA > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumA, intNumC, intNumB)
Else
Console.WriteLine("{0}, {1}, {2}", intNumC, intNumA, intNumB)
End If
Else
If intNumA > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumB, intNumA, intNumC)
ElseIf intNumB > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumB, intNumC, intNumA)
Else
Console.WriteLine("{0}, {1}, {2}", intNumC, intNumB, intNumA)
End If
End If
Console.ReadLine()

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_Seleccionar

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 de caracteres que sean exactamente iguales a
"manzana", cadenas con valores entre "naranja" y "sanda" en orden alfabtico con el valor
actual

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

Apuntes de Clase Pg. 58 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
si intNumero es 11, 13
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

Apuntes de Clase Pg. 59 Ing Eduardo A. Barrantes Meja


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

Apuntes de Clase Pg. 60 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Case Is < 0
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)
Apuntes de Clase Pg. 61 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
If intNumero < 0 Then
MsgBox("Ingresar un nmero Positivo")
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.
En este caso a la variable n, se incrementa su valor en una cantidad constante que ser igual a
uno: n = n + 1, inicializando la variable n=0 y colocado en un bucle se generan los nmeros
solicitados.
Ejemplo

n=n+1
n = 0 n = 0 +1 = 1;
n = n +1 n = 1 n = 1 +1 = 2;
n = 2 n = 2 +1 = 3;

n 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 Var = Inicial hasta Final Incremento

Apuntes de Clase Pg. 63 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________

Para ( inicializacin_variable hasta limite incremento )

sentencia 1;
sentencia 2;
.
.
sentencia n .
Fin_Para;

En Visual Basic .Net


Sintxis:
For contador = inicio To fin [ Step incremento]
Sentencia 1
.
.
Sentencia
[Exit For]
Sentencia
.
.
Sentencia n
Next [contador]
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,
Apuntes de Clase Pg. 64 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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
i, conta = 0 tipo entero;
sum = 0.0 tipo real;
prim, ultimo, temp tipo entero;
Inicio
Escribir ( "Ingrese un numero entero: " ) ;
Leer( prim ) ;
Escribir ( "Ingrese otro numero: " ) ;
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.

Apuntes de Clase Pg. 65 Ing Eduardo A. Barrantes Meja


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

Apuntes de Clase Pg. 66 Ing Eduardo A. Barrantes Meja


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

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. 67 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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 ;
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.

Apuntes de Clase Pg. 68 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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:
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
Apuntes de Clase Pg. 69 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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.
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

Apuntes de Clase Pg. 70 Ing Eduardo A. Barrantes Meja


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

Apuntes de Clase Pg. 72 Ing Eduardo A. Barrantes Meja


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

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 Descripcin
Abs(n) 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.

Apuntes de Clase Pg. 73 Ing Eduardo A. Barrantes Meja


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

Apuntes de Clase Pg. 74 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Console.ReadLine( )
Case 2
Call Ingles( )
Console.ReadLine( )
Case 3
Call Portugues( )
Console.ReadLine( )
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()
Apuntes de Clase Pg. 75 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Pares(Numero)
Case 2
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call EsPrimo(Numero)
Case 3
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Factorial(Numero)
Case Else
Console.WriteLine("Opcin No Vlida")
Console.Clear()
Call Menu()
End Select
Console.WriteLine()
Console.Write("Elija Su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine("{0}{1}", Space(30), "MEN DE OPCIONES")
Console.WriteLine()
Console.WriteLine("[1] Pares")
Console.WriteLine("[2] Es Primo")
Console.WriteLine("[3] Factorial")
Console.WriteLine("[4] Salir")
Console.WriteLine()
End Sub

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
Apuntes de Clase Pg. 76 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
If Numero < 6 And Numero <> 4 Then
Primo = True
ElseIf Numero Mod 2 = 0 Or Numero Mod 3 = 0 Or Numero Mod 5 = 0 Then
Primo = False
Else
Primo = True
End If
Console.WriteLine()
If Primo = True Then
Console.WriteLine("El Nmero es Primo")
Else
Console.WriteLine("El Nmero No Es Primo")
End If
End Sub
Sub Factorial(ByVal Numero As Integer)
Dim k As Integer
Dim r As Long = 1
For k = 1 To Numero
r=r*k
Next
Console.WriteLine()
Console.WriteLine("El Factorial del Nmero es : {0}", r)
End Sub

End Module

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}",
Apuntes de Clase Pg. 77 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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
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

Apuntes de Clase Pg. 78 Ing Eduardo A. Barrantes Meja


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

A(0) 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 que tendr el array, es decir el vector declarado tiene cuatro elementos:
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


Apuntes de Clase Pg. 79 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
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. 80 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. 81 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(0j) . . . A(0n)


A(10) A(11) A(12) . . . A(1j) . . . A(1n).
. . . . . .
. . . . . . Elemento generatriz
. . . . . .
A(i0) A(i1) A(i2) . . . A(ij) . . . A(0n)
. . . . . .
. . . . . . i-sima fila
. . . . . .
A(m0) A(m1) A(i2) . . . 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. 82 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. 83 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
Apuntes de Clase Pg. 84 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Console.Write("Ingresar nmero de Filas de la Matriz A[m][n]: ")
numeroFilas = Console.ReadLine
m = numeroFilas - 1
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()

Apuntes de Clase Pg. 85 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
End Sub

End Module
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: ")

Apuntes de Clase Pg. 86 Ing Eduardo A. Barrantes Meja


Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
b = CDbl(Console.ReadLine)
Rec.TrianRec(a, b)
Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianRec)
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. 87 Ing Eduardo A. Barrantes Meja

También podría gustarte