Вы находитесь на странице: 1из 87

UNIVERSIDAD NACIONAL DE CAJAMARCA

FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS ESTADISTICA E
INFORMATICA

Visual Basic .NET


APUNTES DE CLASE

Eduardo A. Barrantes Mejía

INGENIERO CIVIL

Cajamarca, 27 de agosto de 2018


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

CAPITULO I

DISEÑO DE PROGRAMAS

Cuando se utiliza un computador para solucionar o resolver un sistema específico o un


determinado problema; la solución se denomina programa. Un programa se escribe en un
lenguaje de programación y a la actividad de expresar la solución de un problema mediante un
programa se denomina programación.

Cada paso de la solución de un problema está expresado por medio de una instrucción 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 Programación

1.1. Análisis y Definición del problema.


1.2. Diagrama de Pasada
1.3. Diseño del algoritmo (Diagrama de Flujo)
1.4. Pseudocódigo
1.5. Prueba de Escritorio (Verificación o Validación manual del algoritmo)
1.6. Codificación del problema.
1.7. Depuración y verificación del programa.
1.8. Documentación.
1.9. Mantenimiento.

1.1. Análisis y Definición del Problema.

a. Enunciado del problema claro y completo.


b. Que datos de Salida o Resultados se esperan.
c. Que datos de Entrada se necesitan para obtener los resultados esperados.

Es importante tener en cuenta que: "No se puede hacer un sistema experto si no se es


experto en la materia", esto quiere decir que debemos conocer profundamente el tema que se
desea automatizar.

Cuando buscamos la solución 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. 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?

Apuntes de Clase Pág. 2 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
1.3. Diseño del Algoritmo.

Algoritmo: Es un conjunto de instrucciones que especifican el orden de la secuencia de


operaciones a realizar para resolver un sistema específico o clase de problema.

Algoritmo: Procedimiento paso a paso para solucionar un problema dado.

Algoritmo: Fórmula para la solución de un problema.

Algoritmo toma su nombre del famoso matemático y astrónomo árabe Al-khôwarizmi


(siglo IX), que escribió un conocido tratado sobre manipulación de números y ecuaciones
titulado Kitab al-jabr w'almugabala.

Idea de algoritmo: Secuencia de pasos sin ambigüedades que lleva a la solución de un


problema. Ejemplo El diseño de una mezcla para lograr un concreto de 210 Kg/cm2.

1.3.1. Características de un Algoritmo:

a) Debe ser preciso e indicar el orden de realización de cada paso.


b) Debe estar definido: si se sigue el algoritmo, dos o más veces, se debe obtener siempre el
mismo resultado.
c) Debe ser finito: si se sigue un algoritmo se debe terminar en algún momento.

1.3.2. Partes de un Algoritmo:

ENTRADA PROCESO SALIDA

Datos Transformación Resultados

base, altura
Superficie = base * altura
“El área es = ” , Superficie
ENTRADA: Información dada al algoritmo.
PROCESO: Cálculos necesarios para encontrar la solución del problema.
SALIDA : Respuestas dadas por el algoritmo o resultados finales de los cálculos.

El algoritmo es independiente del lenguaje de programación que se utilice con el


computador.

Ejemplo: Cálculo de la superficie de un rectángulo.

Análisis del problema:


Superficie = base x altura

Algoritmo:
Inicio
ENTRADA (Datos) ………. : base y altura.
PROCESO (Transformación): calcular Superficie = base * altura.
SALIDA (Resultados): mostrar “El área es = ”, Superficie
Fin.
Apuntes de Clase Pág. 3 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
1.3.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 relación
entre ellas. Entre otras tenemos las siguientes herramientas:

 Diagrama de Pasada
 Diagramas de flujo.
 Pseudocódigos.
 Diagramas de Nassi-Sneiderman (N-S) o de Chapin.

1.3.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?

ENTRADA
base, altura

Calcular el área del


PROCESO
Rectánguulo

“El área es = ”, Superficie SALIDA

1.3.3.2. Diagramas de flujo

El flujo lógico del algoritmo se muestra en un dibujo como una representación gráfica del
algoritmo. Los diagramas de flujo han sido la herramienta de programación por excelencia.
Tienen una gran limitación son difíciles de actualizar y complejos de leer si ocupan varias
páginas, cuando se han de modificar los diagramas de flujo resulta una tarea difícil
precisamente por su carácter gráfico.

1.3.3.2.1. Recomendaciones para la confección 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 símbolos 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 lógica del programa en ejecución.
f. Un diagrama debe ser claro y bien presentado.
g. El uso de conectores en ocasiones elimina flechas que dan una mala imagen; sin embargo,
el uso exagerado de los mismos dificulta el entendimiento del diagrama.
h. Los nombres que se asignen a las variables o campos se recomienda que sean
nemotécnicos; es decir, que indiquen para que sirven.

Apuntes de Clase Pág. 4 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
i. El símbolo para operaciones de asignación (el rectángulo) y cualquier símbolo para
operaciones de entrada o salida pueden ser precedidos de una o varias flechas, pero sólo
pueden ser seguidos por una flecha.

1.3.3.2.2. Símbolos y Convenciones:


En la actualidad los símbolos usados en diagramación se han estandarizado.

1.3.3.2.2.1. Los más 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 dónde empieza y en
donde termina el diagrama
Proceso, cualquier tipo de operación (tales como
desarrollar una expresión aritmética o mover un dato
de un campo a otro).

Decisión, para evaluar una condición y plantear la


selección de una alternativa.

Flechas, para unir los demás símbolos del diagrama e


indicar la secuencia de las instrucciones.

Conector en la misma página.

Conector a otra página

Pantalla, para mostrar mensajes al operador o pedir


algún dato a tiempo de ejecución del programa

Documento Impreso, para indicar que se imprime


algún resultado.

Datos Almacenados, para instrucciones de


lectura,.grabación o actualizar (regrabar)
Archivo en cinta magnética, para instrucciones de
lectura o grabación
Entrada manual de datos, desde el teclado de un
computador

Disco Magnético, para instrucciones de lectura,


grabación o actualización.

Apuntes de Clase Pág. 5 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Proceso predefinido, para la ejecución de un bloque
de instrucciones (subrutina ó procedimiento ó
función)

Utilizando estos símbolos el algoritmo para encontrar el área de un rectángulo sería:

Inicio

“Ingresar la base: ”

base

“Ingresar la altura: ”

altura

Superficie = base * altura

“El área es = ”, Superficie

Fin

1.3.3.2.2.2. Diagramas de Nassi Sneiderman o de Chapin.

Los diagramas de Nassi Sneiderman están constituidos por una serie de rectángulos que se
van rellenando de arriba hacia abajo, empleando las tres estructuras básicas de la
programación estructurada.

Apuntes de Clase Pág. 6 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

Secuencial Decisión Simple Decisión Múltiple

Hacer … mientras Mientras … Para … hacer

Utilizando los diagramas de Nassi Sneiderman o de Chapin, el algoritmo para encontrar el


área de un rectángulo sería:

Inicio
“Ingresar la base: ”
base
“Ingresar la altura: ”
altura
Superficie = base * altura
“El área es = ”, Superficie
Fin

1.4. Pseudocódigo

Es un lenguaje algorítmico escrito en el lenguaje natural nativo, pero más


conciso y que permite una redacción rápida del algoritmo aunque lógicamente no tendrá la
precisión en sus operaciones que en los lenguajes de programación. El pseudocódigo es fácil
de mantener, ya que sus modificaciones se pueden realizar con un procesador de textos.

Apuntes de Clase Pág. 7 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Se concibió para superar las dos principales desventajas del diagrama de flujo que es lento
de crear y difícil de modificar sin un nuevo dibujo.

Es más fácil de utilizar ya que es similar al español en nuestro caso.

Para el ejercicio del área del rectángulo el pseudocódigo sería:

Programa EB_Area_del_rectángulo;
Variables:
base, altura, Superficie tipo entero;
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 números.

Definición y Análisis del Problema

S=1+2+3+...+n

Pseudocódigo:
Programa EB_Suma_números_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 números es: ", suma;
Fin.

Las palabras reservadas Inicio, Leer, Para, hasta, hacer, Escribir; que están
subrayadas describen las estructuras de control fundamentales y procesos que se deben
realizar. Es importante hacer notar la forma de escribir el pseudocódigo el identado (sangrado
o justificado a la izquierda) permite dar mantenimiento (leer, corregir, escribir), a los
algorítmos posteriormente.

1.4.1. Escritura inicial de un algoritmo utilizando Pseudocódigo:

El sistema para escribir un algoritmo consiste en realizar una descripción paso a paso con
un lenguaje natural. Siendo un algoritmo un método o conjunto de reglas para solucionar un
problema. En cálculos elementales estas reglas tienen las siguientes propiedades:
a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado diferente.

Apuntes de Clase Pág. 8 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
b) Sólo puede ejecutarse una operación 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 nación.
2. Comprar recibo.
3. Ir al RENIEC.
4. Regresar a casa.

Consta de cuatro acciones básicas.

El algoritmo general se descompondrá en pasos más simples en un procedimiento llamado


refinamiento sucesivo, pues, cada acción puede descomponerse a su vez en otras acciones más
simples, así por ejemplo:
1. Inicio
2. Ver si atienden en el Banco con venta de recibos para renovación 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 atención
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 decisión permite seleccionar alternativas de acciones a seguir. También


podemos repetir una y otra vez las acciones básicas. Ejemplo:

Si venden recibos ponerse a la cola


Mientras haya personas en la cola, ir avanzando repetidamente hasta llegar a la ventanilla
de atención.
Si_No esperar, leer periódico, decidir otra actividad.

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


pseudocódigo, por ser una forma sencilla de escribirlo, leer, mantener y transcribir para su
implementación a cualquier lenguaje de programación.

1.5. Prueba de Escritorio (Verificación o Validación Manual del Algoritmo)

Utilizamos un cuadro en el cual:


a) Se sigue estrictamente los pasos indicados en el algoritmo (Numerar cada paso del
algoritmo)
b) Se ingresan los datos (como valores numéricos) a las variables.
c) Se ingresan valores para diferentes casos, para probar si es correcto o no el algoritmo
propuesto.

Apuntes de Clase Pág. 9 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
La Prueba de Escritorio (Verificación o Validación Manual del Algoritmo), del algoritmo
que encuentra la superficie de un rectángulo sería:

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

Pseudocódigo

Programa EB_Area_Rectángulo;
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 :
5
3. Leer 5 Enter

Apuntes de Clase Pág. 10 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
PASOS V A R I AB L E S SALIDA
4.Escribir Ingresar la altura :
5.Leer 10 Enter
6. Calcular
Superficie=
50
5*10 = 50

7. El área es = 50
8. Fin

Ejercicio 2. Crear un programa que encuentre el área de un triángulo dados sus tres lados.
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminación de
material de la excavación de una cimentación. Tener en cuenta el coeficiente de
expansión y el costo por metro cúbico de eliminación de material.

Valores Referenciales de Expansión 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 días de permanencia en la


universidad. El programa solicitará el año de ingreso a la Universidad y el
número de años en que piensa egresar de la universidad como ingeniero.

Apuntes de Clase Pág. 11 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

CAPITULO II

2. Introducción a Visual Basic .Net

Visual Basic .Net es uno de los Lenguajes .Net que provee Microsoft para la construcción de
lo último en componentes, aplicaciones y servicios. Con esta nueva versión, 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 cómo se relacionan entre sí.

Lo nuevo en Visual Basic .Net

Visual Basic .Net ofrece numerosas características nuevas y mejoradas, como herencia,
interfaces y sobrecarga, la palabra clave Overrides, miembros compartidos y constructores,
que lo convierten en un eficaz Lenguaje de Programación orientado a objetos. Ahora se
puede crear aplicaciones multiproceso y escalables utilizando subprocesamiento múltiple

Apuntes de Clase Pág. 12 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
explícito. Otra característica nueva de Visual Basic .Net incluye el control estructurado de
excepciones, atributos personalizados y compatibilidad con CLS (Common Language
Specification o Especificación Común de Lenguajes). También se incluyen el control
estructurado de excepciones, delegados y varios tipos de datos nuevos. Visual Basic .Net
tiene nuevas funciones que simplifican la manipulación del bits y la declaración de variables
de bucle. Con esta nueva versión, los desarrolladores pueden construir todas las aplicaciones
ASP .Net para servicios Web XML.

Características:

 Con Visual Basic se podrá diseñar 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 común en tiempo de ejecución. Es el Runtime común 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 aplicación.
Principales tareas del CLR:

 Cargar las clases y administrar la metadata


 Convierte el lenguaje intermedio Microsoft a código nativo
 Administra la ejecución del código
 Administra automáticamente 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 (también llamados tipo batch) es un programa que se arranca, lee los datos que
necesita, realiza los cálculos e imprime o guarda en el disco los resultados. Mientras un
programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este
tipo de programas se les llama también programas basados u orientados a procedimientos o a
algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente
en la actualidad, pero la difusión de los PCs ha puesto de actualidad otros tipos de
programación.
Programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien
para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús.
Los programas interactivos limitan y orientan la acción del usuario. Un ejemplo de programa
interactivo podría ser Matlab.
Programas orientados a eventos son los programas típicos 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 variadísimas, y exigen un tipo especial de programación: la programación orientada a

Apuntes de Clase Pág. 13 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
eventos. Este tipo de programación es sensiblemente más complicada que la secuencial, y la
interactiva.

2.2 PROGRAMAS PARA EL ENTORNO WINDOWS


Visual Basic está orientado a la realización de programas para Windows, pudiendo incorporar
todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de
texto, botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc.

2.2.1 Modo de Diseño y Modo de Ejecución


La aplicación Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de
diseño y en modo de ejecución.
En modo de diseño el usuario construye interactivamente la aplicación, colocando controles
en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los
eventos.
Modo de ejecución. Se prueba la aplicación, en ese caso el usuario actúa sobre el programa
(introduce eventos) y prueba cómo responde el programa. Hay algunas propiedades de los
controles que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en
tiempo de ejecución desde el programa escrito en Visual Basic, en la forma en que más
adelante se verá. También hay propiedades que sólo pueden establecerse en modo de
ejecución y que no son visibles en modo de diseño. Todos estos conceptos – controles,
propiedades, eventos, etc.- se explican posteriormente.

Tipos de ejecutables.
Con Visual Basic .NET se puede crear básicamente estos dos tipos de ejecutables: de consola,
no gráfico, al estilo del viejo MS-DOS, y gráficos, 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 aplicación 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 aplicación puede tener varios formularios,
pero un único formulario puede ser suficiente para las aplicaciones más sencillas. Los
formularios deben también tener un nombre, que puede crearse siguiendo las mismas reglas
que para los controles.

Control: Cada uno de los elementos gráficos que pueden formar parte de una aplicación
típica de Windows 95/98/NT es un tipo de control: los botones, las cajas de diálogo y de
texto, las cajas de selección desplegables, los botones de opción y de selección, las barras de
desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de
elementos son controles para Visual Basic. Cada control debe tener un nombre a través 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 genéricas que se utilizan en programación orientada a objetos
(más bien basada en objetos, habría que decir). Los formularios y los distintos tipos de
controles son entidades genéricas o clases de las que puede haber varios ejemplares concretos
en cada programa.

Apuntes de Clase Pág. 14 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
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 sería la clase.

Un objeto es una entidad que tiene asociado un conjunto de métodos, eventos y propiedades.
Ejemplo: Una caja de texto TextBox1, en la cual podemos escribir cualquier línea 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 número que se incrementa a medida
que se van introduciendo más 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 sería por ejemplo hsbTemp, donde las tres
primeras letras indican que se trata de una horizontal scroll bar, y las restantes (empezando
por una mayúscula) que servirá para definir una temperatura.
Existe una convención ampliamente aceptada que es la siguiente: se utilizan siempre tres
letras minúsculas que indican el tipo de control, seguidas por otras letras (la primera
mayúscula, a modo de separación) 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 después complételo con un nombre descriptivo acorde a la
funcionalidad que este tendrá, así el control Button btnCalcular, indica que se empleará para
iniciar los cálculos del programa
En la siguiente Tabla muestra las abreviaturas de los controles más 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 características que posee un objeto Ejemplo: definición del aspecto gráfico
del formulario (ventana de Windows) tamaño, color de fondo, posición, tipo y tamaño 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 lógicos (True, False) o numéricos concretos, propios de ese objeto y distintos de las

Apuntes de Clase Pág. 15 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
de otros objetos de su clase. Así pues, cada clase, tipo de objeto o control tiene su conjunto de
propiedades, y cada objeto o control concreto tiene unos valores determinados para las
propiedades de su clase. Casi todas las propiedades de los objetos pueden establecerse en
tiempo de diseño y también casi siempre en tiempo de ejecución. En este segundo caso se
accede a sus valores por medio de las sentencias del programa, en forma análoga a como se
accede a cualquier variable en un lenguaje de programación. 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 ejecución se deberá escribir una
sentencia de código usando la siguiente sintáxis:

objeto.Propiedad = Expresión

Por ejemplo, para hacer que una etiqueta Label, lblTitulo muestre el mensaje “Facultad de
Ingeniería”, establecemos la propiedad Text:

lblTitulo.Text = “Facultad de Ingeniería”

Algunas veces necesitará conocer el valor de la propiedad de un objeto a fin de realizar un


cálculo o alguna otra tarea en su aplicación. Para asignar el valor de la propiedad de un objeto
a una variable, coloque al lado derecho del símbolo 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. Métodos.
Los métodos son funciones internas de un determinado objeto que permite realizar acciones
sobre él o sobre otro objeto.
La sintáxis en general es:

objeto.Método
objeto.Método (Valor)

Donde: objeto es el nombre del objeto que deseamos modificar, Método es la orden (verbo) de
la acción que queremos utilizar para modificar el objeto y Valor es un argumento opcional
que utilizará el método. Ejemplo txtNombre.SetFocus, es un método que no tiene argumentos;
el método Move mueve un objeto, colocándolo en una nueva posición, en este ejemplo se
mueve el formulario frmPresentación: frmPresentación.Move (0,0)

2.2.7. Eventos.
Los eventos son hechos que son desencadenados en los formularios y controles por la acción
del usuario. A cada evento se puede asociar el código de un procedimiento que responda
adecuadamente a la acción desencadenada. Los eventos son los mensajes o solicitudes que se
envían a los objetos de Visual Basic.

Apuntes de Clase Pág. 16 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click,
movimiento del ratón. A estos eventos se les puede asociar código 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

2.2.8. Explicación y ejemplo de Objetos, Propiedades, Métodos y Eventos


Los formularios y controles de Visual Basic son objetos que exponen sus propios métodos,
propiedades y eventos. Las propiedades se pueden considerar como atributos de un objeto,
los métodos como sus acciones y los eventos como sus respuestas.

Un objeto de uso diario como el globo de un niño tiene también propiedades, métodos y
eventos.

Entre las propiedades de un globo se incluyen atributos visibles como el peso, el diámetro
y el color. Otras propiedades describen su estado (inflado o desinflado) o atributos que no
son visibles, como su edad. Por definición, todos los globos tienen estas propiedades; lo
que varía de un globo a otros son los valores de estas propiedades.

Un globo tiene también métodos o acciones inherentes que puede efectuar. Tiene un
método inflar (la acción de llenarlo de aire) o un método desinflar (sacar el aire) y un
método elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar estos
métodos.
Los globos tienen además respuestas predefinidas a ciertos eventos externos. Por ejemplo,
un globo respondería al evento de pincharlo desinflándose o al evento de soltarlo
elevándose en el aire.

Los objetos tienen:


Propiedades responden a eventos y ejecutan métodos:

Si se pudiera programar un globo, el código de Visual Basic podría ser como el siguiente.
PROPIEDADES del globo, se establecen:
Globo.Color = Negro
Globo.Diámetro = 10
Globo.Inflado = True

Observe la sintaxis del código: el objeto (Globo) seguido de la propiedad (Color) seguida
de la asignación del valor (Negro). Podría modificar el color del globo desde el código si
repitiera esta instrucción y sustituyera el valor por otro diferente. Las propiedades también
se pueden establecer en la ventana Propiedades mientras se está diseñando la aplicación.
Apuntes de Clase Pág. 17 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
MÉTODOS de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar (5)

La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un


método (un verbo). En el tercer ejemplo hay un elemento adicional, llamado argumento o
valor, que indica la distancia que se eleva. Algunos métodos tendrán uno o más argumentos
para describir más a fondo la acción que se va a ejecutar.

EVENTOS, el globo puede responder a un evento como se muestra a continuación:


Sub Globo_Pinchazo( )
Globo.Desinflar
Globo.HacerRuido "Bang"
Globo.Inflado = False
Globo.Diámetro = 1
End Sub

En este caso, el código describe el comportamiento del globo cuando se produce un evento
Pinchazo: invoca el método Desinflar y luego invoca el método 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 Diámetro 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é métodos 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 solución que se utiliza para administrar, generar y
depurar lógicamente los elementos de proyecto que constituyen nuestra aplicación.
Realizar un proyecto equivale a realizar los siguientes pasos:
 Crear una especificación de diseño
 Crear el interfaz de usuario
 Establecer las propiedades de los objetos del interfaz de usuario.
 Escribir código para añadir funcionalidad.
 Probar y depurar la aplicación.
 Generar un archivo ejecutable.
 Crear una aplicación de instalación.
 Guardar y cerrar el proyecto

2.2.10. Archivos de proyectos y soluciones

Extensión Nombre Descripción


.sln Solución Organiza proyectos, elementos de proyectos y elementos de
Visual soluciones en una solución proporcionando al entorno
Studio referencias a sus ubicaciones en disco.
.suo Solution Registra todas las opciones que podemos asociar a nuestra
user solución de forma que cada vez que abramos la solución
options incluya las personalizaciones que hayamos realizado.

Apuntes de Clase Pág. 18 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
.vb Proyecto Representa los archivos de formularios, controles de usuario,
Visual clases y módulos que pertenecen a la solución de un solo
Basic proyecto. Los archivos que no estén basados en un lenguaje de
programación tienen su propia extensión. Por ejemplo, un
archivo Crystal Report tiene la extensión .rpt, y un archivo de
texto tiene la extensión .txt.
.vbproj Proyectos Representa los archivos de formularios, controles de usuario,
Visual clases y módulos que pertenecen a la solución con múltiples
Basic proyectos. Esta extensión 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 específicos como .aspx para Web Forms, .asmx para servicios
.asax proyecto Web XML, y .asax para clases globales de aplicaciones. Los
Web proyectos Web también utilizan la extensión .vb para clases y
módulos.

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 múltiples ventanas y
múltiples funcionalidades y es por consecuencia llamado un entorno de desarrollo integrado
(integrated development environment IDE).

Apuntes de Clase Pág. 19 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

La ventana central es la ventana de diseño (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 Pág. 20 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 descripción de la
propiedad seleccionada.

Es necesario tener instalado el Visual Studio .NET, al ejecutarlo se presenta una página de
inicio, en caso de no presentarse entonces de clic en Help/Show Start Page. En esta página será
posible establecer su perfil, por ejemplo identificarse como Desarrollador Visual Studio o más
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 opción Projects y clic en el botón [New Project],
esta acción abre una ventana donde se indicará el archivo a abrir, los proyectos Visual Basic
.NET tiene la extensión .vbproj. Una vez que abre el projecto si la página 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 programación hace referencia a la clase de
datos que puede contener y a cómo 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 cómo 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 Pág. 21 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 Básicos


Tipo Visual
Tamaño 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 dígitos 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 Varía 0 a 2.000 millones aproximadamente de
caracteres Unicode

Tipo de dato Tipo correspondiente en Tamaño 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 serán 1 y 0, aunque
no es recomendable usar valores
numéricos, 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 carácter Unicode.
Valores: de 0 a 65535 (sin signo).
No se puede convertir
directamente a tipo numérico.
Para indicar que una constante de
cadena, realmente es un Char,

Apuntes de Clase Pág. 22 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
usar la letra C después 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 número 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 número más pequeño 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 número de coma flotante de
doble precisión.
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 precisión:
Dim unDoble As Double =
125897.0235R
Dim unDoble2 As Double =
987456.0125#
Integer System.Int32 4 bytes Un número 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 Pág. 23 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
un número 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 número
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 están 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 número entero corto:
Dim unShort As Short = 32000S
Single System.Single 4 bytes Número de coma flotante de
precisión 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 símbolo
! para indicar que es un número
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 símbolo $ 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 tamaño

Apuntes de Clase Pág. 24 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 tamaño
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 Ingeniería"
Dim blnBoolean As Boolean = True

4.2. Variables, Constantes

Una variable es una dirección de memoria en la que se guarda un valor o un objeto (en .NET
todo es un objeto), todas las variables deberán ser declaradas por las instrucciones

Dim nombreVariable as tipoDato.

Dim es la abreviatura de Dimensión, 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 guión bajo (underline)
 Deben contener letras, digitos y guiones bajos.
 No pueden ser palabras reservadas.

Recomendaciones:
 El nombre de las variables deberían comenzar con una letra
 El nombre de las variables deberían distinguir cada nueva palabra escribiendo la primer
letra en mayúscula
 El nombre de las variables deberían ser lo suficientemente largo para ser significativo y lo
suficientemente corto para ser manejable.

Una novedad en Visual Basic .NET es la declaración e inicialización 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 básicamente es lo mismo:

1- Declarando la variable y dejando que VB asigne el valor por defecto.


2- Declarando la variable y asignándole el valor inicial que queramos que tenga.

Apuntes de Clase Pág. 25 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Por defecto, cuando no se asigna un valor a una variable, éstas contendrán los siguientes
valores, dependiendo del tipo de datos que sea:

- Las variables numéricas tendrán un valor CERO.


- Las cadenas de caracteres una cadena vacía: ""
- Las variables Boolean un valor False (recuerda que False y CERO es lo mismo)
- Las variable de tipo Objeto tendrán 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 versión .NET de Visual Basic,


Mientras que la primera forma mostrada es la forma clásica.

Es un buen hábito seguir un estándar de asignación de nombres de variables comunes que


utilice como prefijo los tres primeros caracteres en minúscula del nombre de la variable para
designar el tipo de dato que contienen luego empezando por una letra mayúscula 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 precisión simple
dbl Coma flotante de precisión doble
dec Decimal
bln Boolean (True/False)
dte Date

AMBITO DE VARIABLES

El ámbito indica en que lugar de la aplicación 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 Pág. 26 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 módulo donde ha sido declarada.

Ejemplo:
Private strDireccion As String

Public
Se utiliza solo a nivel de módulo e indica que la variable es pública; es decir, va a ser
reconocida en toda la aplicación.
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 ningún otro valor, ya que si no, no
serían constantes, sino variables.
Por ejemplo:

Const intInicial As Integer = 250

Nota: La definición de las constantes puede empezar con las palabras Public o Private. Para que
sean públicas 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 línea al terminar de
leer el dato.
Variable = Console.ReadLine
Write
Permite mostrar por la consola ya sea una cadena (texto) o un dato numérico (número),
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 dígitos encerrados entre llaves {0}, indican el lugar donde se escribirá el contenido de las
variables Var0

Apuntes de Clase Pág. 27 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
WriteLine
Nos permite mostrar ya sea una cadena (texto) o un dato numérico (número) y a la vez hace un
cambio de línea, después de haber mostrado el dato,
Console.WriteLine(“Texto a Mostrar”)
Muestra texto, datos calculados o capturados y a la vez hace un cambio de línea, después de
haber mostrado el dato:
Console.WriteLine(“Texto a Mostrar {0},{1}, {2}, ., {n}”, Var0, Var1, Var2,., Varn)

Observamos que en la función Write y WriteLine, el texto que deseamos mostrar está entre
comillas. Escribimos {0}, {1}, etc, dentro de las comillas para mostrar la ubicación del
contenido de una variable; después de las comillas se escriben los nombres de las variables
Var0, Var1, etc, que corresponden a cada ubicación; por ejemplo para la ubicación {0}, la
variable que contiene su valor es Var0.
Ejemplo:
Si la variable N, contiene el valor 13,
Escribimos el siguiente código:
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}; después de las
comillas escribimos Var0, {0} está asociado a la variable Var0, en donde el 0 indica que
número 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. Conversión de tipos de datos

El proceso de convertir el valor de un tipo de datos en otro se denomina conversión o casting.


Podemos convertir explícitamente valores de un tipo en otro antes de que sean utilizados,
evitando así errores en nuestro código y haciendo que éste se ejecute más rápidamente. Visual
Basic .NET también puede realizar algunas conversiones de tipos de datos automática o
implícita, como convertir algunas cadenas a enteros. Sin embargo, las conversiones implícitas
pueden producir resultados imprevistos.

4.3.1. Conversiones Explícitas

Las funciones de conversión permiten convertir explícitamente un valor de un tipo de datos a


otro.
En la siguiente tabla se describen las funciones de conversión:

Nombre de la función Tipo de datos que Valores del argumento


devuelve "expresion"

CBool(expresion) Boolean Cualquier valor de cadena


o expresión numérica.
CByte(expresion) Byte de 0 a 255; las fracciones
se redondean.
CChar(expresion) Char Cualquier expresión de
cadena; los valores deben
ser de 0 a 65535.

Apuntes de Clase Pág. 28 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
CDate(expresion) Date Cualquier representación
válida 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 expresión válida.
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.

Sintáxis:
Para utilizar una función de conversión, se sitúa en el lado derecho de una instrucción de
asignación, utilizando la siguiente sintaxis:

NombreVariable = CFunción(Expresión)

El parámetro Expresión puede ser cualquier expresión válida, como una variable, un resultado
de una función o un valor constante

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


formulario Form1

La palabra clave Me nos permite referirnos a cualquier elemento del formulario (propiedades,
métodos, etc), desde dentro del propio formulario. Aunque no es necesario el uso de Me, se
recomienda por hacer más fácil la lectura del código; el propio IDE al generar el código
utiliza esta palabra, lo cual es indicativo de su importancia.

Apuntes de Clase Pág. 29 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 1. Crear un programa que encuentre el área de un rectángulo

Solución por Console


Microsoft Visual Studio > Crear ... Proyecto> Aplicación de consola > Nombre .................
> Ubicación > Crear directorio para la solución > Aceptar

CÓDIGO:
Module Module1
Sub Main()
'DECLARACIÓN 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 cálculo 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 Pág. 30 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Solución por Formularios

Microsoft Visual Studio > Crear ... Proyecto> Aplicación de windows > Nombre .................
> Ubicación > Crear directorio para la solución > Aceptar

Formulario Controles
 Cuatro Label
lblTitulo
lblBase
lblAltura
lblArea
 Tres Textbox
txtBase
txtAltura
txtArea
 Tres Button
btnCalcular
btnBorrar
btnSalir

CÓDIGO:
Public Class frmRect

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


System.EventArgs) Handles btnCalcular.Click
'Declaración de variables
Dim intBase, intAltura, intArea As Integer

'Entrada: Asignación 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 Pág. 31 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 2. Crear un programa que encuentre el área de un triángulo dados sus tres lados.

Formulario Controles
 Cinco Label
lblTitulo
lblLadoA
lblLadoB
lblLadoC
lblArea
 Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtArea
 Dos Button
btnCalcular
btnSalir

CÓDIGO:
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 Pág. 32 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminación de
material de la excavación de una cimentación. Tener en cuenta el coeficiente de
expansión y el costo por metro cúbico de eliminación 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

CÓDIGO
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 Pág. 33 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 4. Crear un programa que muestre el tiempo en días de permanencia en la
universidad. El programa solicitará el año de ingreso a la Universidad y el
número de años 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

CÓDIGO:
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 Pág. 34 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
4.4. Operadores: Aritméticos, de asignación, relacionales, lógicos.

Visual Basic .NET dispone de los siguientes operadores:

Operadores Aritméticos

Los operadores aritméticos requieren operadores numéricos (^ , * , / , \ , Mod, +, - ) y


producen resultados numéricos.

Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
\ División entera (parte entera de la división)
Mod Residuo (resto de la división entera)
^ Exponenciación (elevar a una potencia)
& Concatenación de Cadenas

Operador String

El operador de concatenación (&) String requiere operadores String y producen resultados


String.

Operadores Comparativos

Los operadores Comparativos requieren operadores Comparativos ( = , >, <, >= , <= , < >) y
producen un resultado lógico (True or False).
Comparan datos y devuelven valores lógicos de verdadero o falso como resultado de la
comparación.
Operador Descripción 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 Pág. 35 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Operadores Lógicos

Los operadores Lógicos requieren operadores Lógicos (And, Or, Not, Xor, AndAlso, OrElse)
y producen un resultado lógico.
Operadores Lógicos Descripción
And Las dos expresiones deben ser verdaderas
Or Alguna de las dos expresiones es verdadera
Not Negación del resultado de la expresión

Xor
Si una y sólo una de las expresiones es verdadera, es true;
si las dos expresiones son verdaderas o falsas es false.
AndAlso Si la primera y segunda condición son verdaderas
OrElse Si la primera o segunda condición es verdadera
Los nuevos operadores lógicos AndAlso y OrElse reciben el nombre de sistema de corto-
circuito, si la primera condición es falsa, la otra ya no se ejecuta.

Operadores Abreviados
Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la escritura de
código, por ejemplo:
x = x + 1 se puede escribir
x += 1
Operadores Abreviados
+=
-=
*=
/=
\=
^
&=

Precedencia de Operadores

A continuación se muestra el orden de precedencia/prioridad/jerarquía de los operadores en


Visual Basic .NET
Precedencia de Operadores
( )
^
-
*/
\
Mod
+-

Apuntes de Clase Pág. 36 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
5. Estructuras de Decisión
5.1. Estructura de Decisión Simple o Condicional

Es es aquella que nos permite "preguntar" para tomar una decisión, pudiendo así actuar y
realizar acciones excluyentes entre sí según la respuesta obtenida. Estas respuestas siempre
serán Verdadero o Falso, pudiendo así tomar, uno de dos caminos diferentes.

SI <expresión condicional (lógica 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), después 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 número diferentes


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

NO SI
C.L..

Pseudocódigo En Visual Basic


if .... Then .... Else ....End If
Si (condición lógica) Entonces If Condición lógica Then

Sentencia Verdadera (V) Sentencia Verdadera (V)

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

Fin Si End If

Apuntes de Clase Pág. 37 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejemplo 1. Ingresar un número y decir si es positivo o negativo.

n>0

0
Análisis del Problema: Negativ Positivo
o
El número que se ingrese por el teclado y que será almacenado en la variable n, en la recta
numérica, puede ser positivo o negativo.

Diagrama de Pasada

n Entrada

Determinar Proceso
si el número n es
positivo o negativo

“El número es Salida


....................”
“es ..................”

Pseudocódigo: Visual Basic


Programa EB_Positivo_Negativo; Código en Visual Basic
Variables ' Variable
entero n; Dim n As Integer
Inicio ' Ingreso de Datos
Escribir("Ingrese un número: "); n = txtNumero.Text
Leer( n );
'Proceso o cálculo
Si (n>0) If n > 0 Then
Escribir( "El número es positivo"); txtRespuesta.Text = "El
número es Positivo "
Si_no Else
Escribir( "El número es negativo"); txtRespuesta.Text = "El
número es Negativo "
Fin. End If

i5.1. 1. Estructura de Decisión Simple o Condicional Anidada

Es es aquella que nos permite "preguntar" para tomar una decisión, pudiendo así actuar y
realizar acciones excluyentes entre sí según la respuesta obtenida. Estas respuestas siempre
serán Verdadero o Falso, pudiendo así tomar, uno de dos caminos diferentes.
Apuntes de Clase Pág. 38 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Si (condición 1) entonces
Sentencias 1
sino
Si (condición 2) entonces
Sentencias 2
sino
Si (condición 3) entonces
Sentencias 3
Fin_Si
Fin_Si
Fin_Si

Si expresión condicional 1 (lógica booleana) Entonces


Sentencia Verdadera 1 (V)
SiNo_Si expresión condicional 2 (lógica booleana)
Sentencia Verdadera 2 (V)
SiNo_Si expresión condicional 3 (lógica booleana)
Sentencia Verdadera 3 (V)
SiNo_Si <expresión condicional 4 (lógica booleana)>
Sentencia Verdadera 4 (V)
SiNo_Si <expresión condicional 5 (lógica 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), después que las acciones se realizan, el algoritmo continúa su secuencia, pues la
estructura termina en FIN_SI

Pseudocódigo En Visual Basic


if .... Then .... ElseIf ....End If
Si (condición lógica) If Condición lógica 1 Then
Sentencia Verdadera (V) Sentencia Verdadera 1 (V)
SiNo_Si (condición lógica) ElseIf Condición lógica 2
Sentencia Verdadera (V) Sentencia Verdadera 2 (V)
SiNo_Si (condición lógica) ElseIf Condición lógica 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 Pág. 39 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejemplo 2. Elaborar un algoritmo para leer 3 números enteros diferentes entre si, y
determinar cual es el número mayor.
Solución:

Pseudocódigo: Visual Basic


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

'Proceso o cálculo
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 instrucción 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 instrucción anidada tenemos que
tener obligado un SiNo_Si cuando la expresión lógica 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 número es positivo, negativo o cero


PSEUDOCÓDIGO
Programa EB_Positivo, Negativo o Cero
VARIABLES
Numero de tipo Entero
ENTRADA
Escribir (“Ingrese un número”)
Leer (Numero)
Si Numero = 0 Entonces
Escribir ("El número ingresado es Cero ")
Si_No
Si Numero > 0 Entonces
Escribir ("El número es Positivo ")
Si_No
Escribir ("El número es Negativo ")
Fin_Si
Fin_Si

Apuntes de Clase Pág. 40 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Solución por Console
CÓDIGO:
Module Module1
Sub Main( )

'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer

'Ingreso de Datos
Console.Write("Ingrese un número: ")
intNumero = Console.ReadLine

'Proceso o cálculo
If intNumero = 0 Then
Console.WriteLine("El número ingresado es Cero ")
Else
If intNumero > 0 Then

Console.WriteLine("El número es Positivo ")


Else
Console.WriteLine("El número es Negativo ")
End If
End If

'Presionar una tecla para finalizar


Console.ReadLine( )
End Sub
End Module
Salida o resultados:

Apuntes de Clase Pág. 41 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 2. Crear un programa que determine si un número es positivo, negativo o cero.
Solución por formularios

Formulario Controles
 Un Label
lblNumero
 Dos Textbox
txtNum
txtResp
 Tres Button
btnCalcular
btnBorrar
btnSalir

CÓDIGO
Public Class frmPosiNegaCero

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


System.EventArgs) Handles btnCalcular.Click
'DECLARACIÓN DE VARIABLES
Dim intNum As Integer
'ENTRADA de Datos
intNum = Val(txtNum.Text)
'PROCESO
If intNum = 0 Then
txtResp.Text = "El número es cero"
ElseIf intNum > 0 Then
txtResp.Text = "El número " & intNum & " es positivo"
Else
txtResp.Text = "El número " & 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 Pág. 42 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 3. Validar ingreso de datos positivos. Crear un programa que muestre un mensaje si
el número ingresado es negativo o cero.
Formulario Controles
 Un Label
lblNumero
 Un Textbox
txtValor
 Dos Button
btnCalcular
btnSalir

CÓDIGO
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 lógica, el numero debe ser Positivo")
Else
MsgBox("Continuar cálculo")
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 Pág. 43 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 4. Elaborar un programa que al ingresar los tres lados de un triángulo determine si
es escaleno, equilátero o isóceles

Formulario Controles
 Cuatro Label
lblIngresar
lblLadoA
lblLadoB
lblLadoC
 Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtRespuesta
 Dos Button
btnCalcular
btnSalir

CÓDIGO
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 = "Triángulo Escaleno"
Else
If decLadoA = decLadoB And decLadoB = decLadoC Then
txtRespuesta.Text = "Triángulo Equilátero"
Else
txtRespuesta.Text = "Triángulo Isóceles"
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 Pág. 44 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 5. Elaborar un programa que al ingresar un número si es par vaya a la lista pares, si
el número es impar vaya a la lista impares y simultáneamente nos muestre cuantos números 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

CÓDIGO
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 número:")
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 Pág. 45 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 6. Elaborar un programa que al escribir un número, se seleccione la lista donde debe
ir y simultáneamente nos muestre cuantos números 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
CÓDIGO

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 número")
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 número")
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 Pág. 46 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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

CÓDIGO
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 Pág. 47 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 8. Encontrar el mayor de tres números 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

CÓDIGO
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 interés 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 años. Si los ingresos
del comprador son $ 1,000 o más, la cuota inicial será del 20% del costo de la casa y el resto
se distribuirá en pagos mensuales a pagar en 12 años. De acuerdo al costo de la casa y los
ingresos del comprador, determinar la cuota inicial y la cuota mensual.

Apuntes de Clase Pág. 48 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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

SOLUCIÓN 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 Pág. 49 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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

SOLUCIÓN POR FORMULARIOS - GRÁFICA

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 construcción, 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 Pág. 50 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 Pág. 51 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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

SOLUCIÓN POR FORMULARIOS

Public Class frmCompraMateriales

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


Handles

Apuntes de Clase Pág. 52 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 pagarán a razón de 1,5 veces la hora
ordinaria.

SOLUCIÓN POR CONSOLE


Module Module1

Sub Main()

'VARIABLES
Dim intHoras As Integer
Dim dblPrecioHora, dblSalarioSemanal As Double

'ENTRADA
Console.Write("Número 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 Pág. 53 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 números 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 número A: ")
intNumA = Console.ReadLine
Console.Write("Ingrese el número B: ")
intNumB = Console.ReadLine

Apuntes de Clase Pág. 54 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Console.Write("Ingrese el número 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 Pág. 55 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 Decisión Condicional Múltiple

Esta estructura en un algoritmo nos permite elegir una de varias opciones, al utilizar
condiciones múltiples, nos es más fácil de seguir la lógica del algoritmo, aunque también
podríamos hacerlo con la Instrucción condicional simple, pero se nos haría muy tedioso, ya que
usaríamos varias instrucciones condicionales simples ya sean independientes o anidadas. En
pseudocódigo sería:

Seleccionar en Caso (Variable_Expresión) Sea


Caso Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 1
Caso Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 2
Caso Valor 3
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 3
.
.
.
Caso Valor n
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor n
Otro Caso
Sentencia X [Opcional (Cuando ningún valor es seleccionado
se ejecutará la Sentencia imperativa X)]
Fin_Seleccionar

Apuntes de Clase Pág. 56 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
SINTAXIS EN VISUAL BASIC .NET:

Select Case Variable_Expresión

Case Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 1

Case Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 2
.
.
Case Valor n
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor n
.
.
Exit Select
Transfiere inmediatamente el control a la
sentencia que sigue a End Select
.
.
.
Case Is OperadorDeComparación Número
Sentencias a ejecutar
en caso que OperadorDeComparación sea =, < >, <, <=, > o >=

Case Else
Sentencias X (Si no se cumple ninguna de las listas de expresiones)
End Select

Variable_Expresión . 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_Expresión. Los
valores se separan mediante comas. Cada cláusula de valor puede tomar una de las siguientes
formas:

 Numero1 To Numero2
 [ Is ] operadorDeComparación Numero
 Numero

Utilice la palabra clave To para especificar los límites de un intervalo de valores que
coinciden para Variable_Expresión. El valor de Numero1 debe ser menor o igual que el valor
de Numero2.

Utilice la palabra clave Is con un operador de comparación (=, < >, <, <=, > o >=) para
especificar una restricción en los valores coincidentes para Variable_Expresión.

Apuntes de Clase Pág. 57 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Las valores pueden ser de cualquier tipo de datos, siempre que sean implícitamente
convertibles al tipo de Variable_Expresión y el correspondiente operadorDeComparación sea
válido para los dos tipos con los que se utilice.

Sentencias X
Opcional. Una o más instrucciones después de Case que se ejecutan si Variable_Expresión no
coincide con cualquier cláusula en Valores.
End Select
Termina un bloque Select Case …

Si Variable_Expresión coincide en más de un Valor Case, sólo se ejecutan las Sentencias que
siguen a la primera coincidencia.

Es recomendable tener una instrucción Case Else en el bloque Select Case para controlar los
valores de Variable_Expresión imprevistos. Si ninguna cláusula Case Valor coincide con
Variable_Expresión y no existe ninguna instrucción Case Else, la ejecución continúa en la
instrucción que sigue a End Select.

Se pueden utilizar varias expresiones o intervalos en cada cláusula Case. Por ejemplo, la línea
siguiente es válida: 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 comparación Is.

También 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 "sandía" en orden alfabético con el valor
actual

Las instrucciones Select Case pueden anidarse. Cada instrucción Select Case anidada debe
tener una instrucción End Select coincidente.

Si no necesita ejecutar más instrucciones de un bloque Case o Case Else, puede salir del
bloque mediante una instrucción Exit Select. Esto transfiere inmediatamente el control a la
instrucción que sigue a End Select.

Ejemplo:
Select Case intNumero
Case 3: ’Sentencia o Instrucción 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 Pág. 58 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
’ si intNumero es 11, 13
Case Else
’ Instrucción a realizar
End Select

En el ejemplo, hacemos varias comprobaciones, Case 3 (si intNumero vale 3) se ejecutará la


instrucción que sigue después de los dos puntos (podemos ejecutar solo una instrucción
después de los dos puntos, si en caso hubiera mas instrucciones a ejecutar, estas instrucciones
las pondríamos en la parte inferior del Case),
Si tiene un valor en un rango de 6 a 11 ejecutara la instrucción que se encuentra en su inferior, o
Si tiene el valor de 14 ó 17, ejecutara la instrucción que se encuentra en su inferior.
Cuando queremos comprobar si el valor es mayor (o cualquier otra comprobación), usaremos
Is, como en el caso de Is > 50, esto es lo mismo que comprobar si intNumero es mayor que 50,
realizará la instrucción 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 comparación, existe el Case Else, que ejecutara su instrucción,
siempre y cuando no se cumpla ninguna expresión en los demás Case.
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparación 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

CÓDIGO
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 Pág. 59 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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
 Séis Label
lblTitulo
lblNota1
lblNota2
lblNota3
lblPromedio
lblRendimiento
 Cinco Textbox
txtNota1
txtNota2
txtNota3
txtPromedio
txtRendimiento
 Tres Button
btnCalcular
btnBorrar
btnSalir

CÓDIGO
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 Pág. 60 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 número entero positivo y que efectúe los
siguientes cálculos: Si el número termina en 0, 3, 7 u ocho, cambie su valor al doble; si
termina en 1 ó 9, cambie su valor a la décima parte; de otra manera mantiene su valor. Utilice
una estructura de decisión condicional múltiple.

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 Pág. 61 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
If intNumero < 0 Then
MsgBox("Ingresar un número 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 número 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 número es : {0}", intNum)
Case 1, 9
intNum = intNum / 10
Console.Write("El número es : {0}", intNum)
Case Else
Console.Write("El número es : {0}", intNum)
End Select
Console.ReadLine()

End Sub
End Module

Apuntes de Clase Pág. 62 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
6. Estructuras de Repetición.
6.1. Contadores y acumuladores.
Contador: Es un tipo de asignación 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 números
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 asignación especial en la cual, a una variable le


asignamos su valor incrementado en una cantidad también 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 repetición: Para … , permite ejecutar ciclos repetitivos un número
determinado de veces y con un incremento que puede ser positivo o negativo.

Para Var = Inicial hasta Final Incremento

Apuntes de Clase Pág. 63 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

Para ( inicialización_variable hasta limite incremento )

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

En Visual Basic .Net


Sintáxis:
For contador = inicio To fin [ Step incremento]
Sentencia 1
.
.
Sentencia
[Exit For]
Sentencia
.
.
Sentencia n
Next [contador]
Donde:
contador Variable numérica 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 más sentencias ubicadas entre For y Next, que se ejecutan un
número especificado de veces.
Exit For, permite salir del bucle For antes que este finalice. Esta sentencia con
frecuencia se utiliza en la evaluación de alguna condición 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 construcción 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.

Análisis del Problema


Por el teclado ingresamos dos números, 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 Pág. 64 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería 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 condición lógica 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 números se
están 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 Pág. 65 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 1. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, por el teclado se ingresarán los números que determinen el rango.

Formulario Controles
 Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
 Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
 Tres Button
btnCalcular
btnBorrar
btnSalir

CÓDIGO
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 Pág. 66 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 número


cualquiera ingresado por el teclado.

Formulario Controles
 Dos Label
lblTitulo
lblNumero
 Text Box
txtNumero
 List Box
lstTabla
 Tres Button
btnCalcular
btnBorrar
btnSalir

CÓDIGO
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 Pág. 67 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
6.3. Estructura de Repetición Hacer [Mientras / Hasta que] . . .

Una Estructura de Repetición, es un algoritmo que permite repetir una o varias sentencias
un número determinado de veces. A este tipo de estructuras se denominan bucles, lazos o
loops. A la repetición de un conjunto de sentencias dentro de un bucle se le denomina
iteración.

6.3.1. Estructura de Repetición Hacer Mientras … , permite ejecutar una iteración el


conjunto o bloque de sentencias del bucle.

Hacer Mientras ( condición )


sentencia 1 ;
.
.
.
sentencia n ;
Fin_Hacer

El flujo del programa al encontrar esta estructura de repetición evalúa la condición lógica, si
es verdadera se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle,
así sucesivamente Mientras la condición lógica sea verdadera.

Esta estructura también podría ser de la siguiente forma:

Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Mientras ( condición )

El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condición, si al evaluarla la condición lógica es verdadera se repite el
conjunto de sentencias o bloque de sentencias que contiene el bucle, así sucesivamente
Mientras la condición lógica sea verdadera.

6.3.2. Estructura de Repetición Hacer …. Hasta que, permite ejecutar una iteración el
conjunto o bloque de sentencias del bucle, hasta que se cumpla la condición.

Hacer Hasta que ( condición )


sentencia 1 ;
.
.
.
sentencia n ;
Fin Hacer

El flujo del programa al encontrar esta estructura de repetición evalúa la condición lógica, si
es falsa se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle, así
sucesivamente Hasta que la condición lógica sea verdadera.

Apuntes de Clase Pág. 68 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
También podría tomar esta forma:
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Hasta que ( condición )

El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condición, si al evaluarla la condición lógica es falsa se repite el conjunto
de sentencias o bloque de sentencias que contiene el bucle, así sucesivamente Hasta que la
condición lógica sea verdadera.

6.4. En Visual Basic el bucle Do . . . Loop

Repite un bloque de instrucciones Mientras o Hasta que una condición lógica sea verdadera
Sintaxis

Do [ { While / Until } condición ]


Instrucción 1
.
.
Instrucción n
[Exit Do]
Instrucción 1
.
.
Instrucción n
Loop

Podríamos utilizar esta sintáxis:

Do
Instrucción 1
.
.
Instrucción n
[Exit Do]
Instrucción 1
.
.
Instrucción n
Loop [ { While / Until } condición ]
Donde:
condición Expresión lógica
Instrucciónes Opcional. Una o más sentencias ubicadas entre Do y Loop, que se ejecutan
mientras o hasta que se cumpla o la condición lógica sea verdadera.
Exit Do, permite una salida alternativa del bucle Do antes que este finalice.
Esta sentencia con frecuencia se utiliza en la evaluación de alguna condición
empleando una estructura condicional If ...Then, la Instrucción Exit Do
Apuntes de Clase Pág. 69 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
transfiere el control del flujo del programa a la instrucción que sigue
inmediatamente a la Instrucción 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 número cualquiera


ingresado por el teclado, utilizando el bucle Hacer - Mientras.

Análisis del Problema

Necesitamos generar números del 1 al 12 (un contador), que al ser multiplicados por el
número 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 Pág. 70 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
CÓDIGO
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 Pág. 71 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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

CÓDIGO
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 Pág. 72 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería 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 Matemáticas Predefinidas.

Una de sus Clases es System.Math la cual soporta los siguientes métodos

Método Descripción
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 raíz cuadrada de n.
Tan(n) Calcula la tangente del ángulo n expresado en radianes

La declaración de Imports debe ser a nivel de formulario :

7.2. Procedimiento es un conjunto de sentencias que realizan una acción lógica. Existen tres
tipos de procedimientos en Visual Basic .NET:

1. Event procedures/Event handler, procedimiento que contiene código que es


ejecutado en respuesta a un evento. Cuando el evento es disparado el código dentro
del manejador de eventos es ejecutado.

Visual Basic .NET para los manejadores de eventos utiliza una convención estándar la
cual combina el nombre del objeto seguido de un guión bajo y el nombre del evento.

Apuntes de Clase Pág. 73 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Private|Public Sub objeto_Evento(parámetros) handles Objeto.Evento
sentencias
End Sub

Cada manejador de eventos provee dos parámetros, el primer parámetro llamado


sender provee una referencia al objeto que dispara el evento, el segundo parámetro es
un objeto cuyo tipo de dato depende del evento que es manejado. Ambos parámetros
son pasados por valor.

Si un parámetro es declarado por referencia ByRef el parámetro apunta al argumento


actual. Por default los argumentos se pasan por valor ByVal el parámetro es una copia
local del argumento.

2. Sub procedures, contiene código que el desarrollador crea para realizar una acción
lógica.
3. Function procedures, contiene código que el desarrollador crea para realizar una
acción lógica y regresa un valor, el valor que una función envía 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 Inglés. 3. En Portugués.

Module Module1
Dim opc As Integer
Sub Main( )
Console.Write("PROCEDIMIENTOS")
Console.WriteLine( )
Call MENU( )
Console.Write("Elegir una opción = = = > ")
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 Inglés", Space(10))
Console.WriteLine("{0}[3] En Portugués", 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 Pág. 74 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Console.ReadLine( )
Case 2
Call Ingles( )
Console.ReadLine( )
Case 3
Call Portugues( )
Console.ReadLine( )
Case Else
Console.WriteLine("Opción equivocada elija correctamente")
Console.ReadLine( )
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opción = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
End Select
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opción = = = > ")
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
números pares menores que el número que se ingrese por el teclado, 2. Si el número ingresado
por el teclado es primo, 3. Calcular el factorial del número ingresado por el teclado.

CÓDIGO
Module Module1
'Programa que muestra un menú de opciones
Sub Main()
Dim opc, Numero As Integer
Call Menu()
Console.WriteLine()
Console.Write("Elija Su Opción ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
Apuntes de Clase Pág. 75 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call Pares(Numero)
Case 2
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call EsPrimo(Numero)
Case 3
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call Factorial(Numero)
Case Else
Console.WriteLine("Opción No Válida")
Console.Clear()
Call Menu()
End Select
Console.WriteLine()
Console.Write("Elija Su Opción ==> ")
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 Pág. 76 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería 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 Número es Primo")
Else
Console.WriteLine("El Número 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 Número 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.

CÓDIGO
Module Module1

Sub Main()
Dim opc, Num As Integer
Call Menu()
Console.Write("Elija su Opción ==> ")
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 Pág. 77 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Circunferencia(Num))
Case Else
Console.WriteLine("Opción No Válida")
End Select
Console.ReadLine()
Console.Clear()
Call Menu()
Console.Write("Elija su Opción ==> ")
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 Pág. 78 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
8. ARRAYS Y ESTRUCTURAS
8.1. Arrays
Un arreglo es un tipo de asignación 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)

Límite inferior
A(0)

A(1)
4 elementos
A(2)

A(3)
Límite superior es
igual al número de
elementos menos 1
i = 0, 1, 2, 3

Sintaxis en Visual Basic .Net:

Dim nombreVariable(NúmeroDeElementos) As TipoDeDato

En efecto, tal como se puede apreciar, el array será utilizable únicamente a partir de su
declaración.
Un array unidimensional tiene las siguientes características:
 El límite inferior es cero y no se puede alterar.
 El límite superior es igual al número de elementos del vector menos uno.

Por ejemplo:
Si necesitamos un vector de cuatro elementos, al declarar el vector en Visual Basic .Net, el
límite superior del vector será 4 -1 = 3
Dim A(3) As Integer
En este ejemplo, el número 3 que está dentro de los paréntesis es el límite superior, indica el
número 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 número entero por el tipo de
dato declarado

Apuntes de Clase Pág. 79 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 1. Ingresar y mostrar Datos de un Vector.

CÓDIGO:
Module Module1
Sub Main()

Dim nElementos, i, n As Integer


Console.Write("Ingresar número 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 número de elementos del Vector utilizando el método 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()
'Asignación 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 método 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
Apuntes de Clase Pág. 80 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 1. Ingresar y mostrar ventas de un año, utilizando un vector

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

Apuntes de Clase Pág. 81 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
i =i+1
Loop
End Sub

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 más dimensiones, es decir, que
cada elemento del array viene definido por dos o más subíndices. Los elementos del arreglo
almacenarán el mismo tipo de datos, que se indicará en el momento de la declaración.

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 paréntesis, separadas por comas, lo cual indica que
el array es bidimensional, puesto que los dos subíndices del mismo se separan uno de otro por
comas. Al igual que en los arreglos unidimensionales, cada uno de los subíndices tienen las
siguientes características:
 El límite inferior es cero y no se puede alterar.
 El límite superior es igual al número 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 número entero tal como fue declarado.

Apuntes de Clase Pág. 82 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

INGRESO DE DATOS DE UNA MATRIZ

INICIO

“Ingresar número de filas de la Matriz A[m][n]: ”

nFilas

“Ingresar número 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 Pág. 83 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________

MOSTRAR DATOS DE UNA MATRIZ

INICIO

“Ingresar número de filas de la Matriz A[m][n]: ”

nFilas

“Ingresar número 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.

CÓDIGO:

Apuntes de Clase Pág. 84 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Module Module1

Sub Main()
Dim numeroFilas, numeroColumnas, i, j, m, n As Integer
Console.Write("Ingresar número de Filas de la Matriz A[m][n]: ")
numeroFilas = Console.ReadLine
m = numeroFilas - 1
Console.Write("Ingresar número 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 número de elementos de la Matriz utilizando el método Length


Console.WriteLine("El número de elementos del array A(m,n)= {0}", A.Length)

Console.WriteLine()
Console.WriteLine()

Console.WriteLine("MATRIZ B")
'Asignación 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 número de elementos de la Matriz utilizando el método Length


Console.WriteLine("El número 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

Apuntes de Clase Pág. 85 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Next
Console.WriteLine()
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
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 métodos, 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
también dentro de otras estructuras e incluso dentro de clases y módulos.

Ejercicio 3. Elaborar un programa que encuentre el área y perímetro de distintos tipos de


triangulo, utilizando una estructura, procedimientos, y funciones (Sub y Function)

CÓDIGO:
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 Opción ==> ")
n = CDbl(Console.ReadLine)
Console.WriteLine()
While n < > 3
Select Case n

Apuntes de Clase Pág. 86 Ing° Eduardo A. Barrantes Mejía


Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Case 1
Console.Write("Ingrese la altura: ")
a = CDbl(Console.ReadLine)
Console.Write("Ingrese la base: ")
b = CDbl(Console.ReadLine)
Rec.TrianRec(a, b)
Console.WriteLine("El área del triangulo es: {0}", Rec.AreaTrianRec)
Console.WriteLine("El perímetro 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 perímetro del triangulo es: {0}", Nor.PeriTrianNor)
Case Else
Console.WriteLine("Opción no Válida")
End Select
Console.ReadLine()
Console.Clear()
Call Menu()
Console.Write("Elija una Opción ==> ")
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 perímetro de un
triangulo rectangulo", Space(10))
Console.WriteLine("{0} [2] Halla el área y el perímetro de un
triangulo normal", Space(10))
Console.WriteLine("{0} [3] Salir", Space(10))
Console.WriteLine()
End Sub

End Module

Apuntes de Clase Pág. 87 Ing° Eduardo A. Barrantes Mejía

Вам также может понравиться