Upload
jonathan-mostacero-ordaz
View
8
Download
5
Tags:
Embed Size (px)
DESCRIPTION
VB
Citation preview
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, septiembre de 2015
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 2 Ing° Eduardo A. Barrantes Mejía
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
a. Análisis del problema.
b. Diseño del algoritmo.
c. Verificación manual del algoritmo
d. Codificación del problema.
e. Depuración y verificación del programa.
f. Documentación.
g. Mantenimiento.
Para diseñar correctamente un programa se deben seguir los siguientes pasos:
Definición y Análisis del Problema
Diseño del Algoritmo.
Verificación manual del algoritmo.
1.1. Definición y Análisis 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?
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 3 Ing° Eduardo A. Barrantes Mejía
1.2. 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.2.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.2.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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 4 Ing° Eduardo A. Barrantes Mejía
1.3. Herramientas para escribir algoritmos: La estructura de un algoritmo se puede representar en un diagrama estructurado en forma
de bloques, donde se muestran las diferentes tareas que deben ser ejecutadas y su 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.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?
1.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.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.
base, altura
Calcular el área del
Rectánguulo
“El área es = ”, Superficie
ENTRADA
PROCESO
SALIDA
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 5 Ing° Eduardo A. Barrantes Mejía
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.2.2. Símbolos y Convenciones:
En la actualidad los símbolos usados en diagramación se han estandarizado. 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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 6 Ing° Eduardo A. Barrantes Mejía
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:
1.3.3. Pseudocódigo
Es un lenguaje algorítmico escrito en el lenguaje natural 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.
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;
“Ingresar la base: ”
base
Superficie = base * altura
“El área es = ”, Superficie
Fin
altura
“Ingresar la altura: ”
Inicio
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 7 Ing° Eduardo A. Barrantes Mejía
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.2.9. Escritura inicial de un algoritmo:
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.
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 8 Ing° Eduardo A. Barrantes Mejía
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.
1.3.4. 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.
Secuencial Decisión Simple Decisión Múltiple
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 9 Ing° Eduardo A. Barrantes Mejía
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.4. Verificación o Validación Manual del Algoritmo, o Prueba de Escritorio
Utilizamos un cuadro en el cual:
Se sigue estrictamente los pasos indicados en el algoritmo (Numerar cada paso del
algoritmo)
Se ingresan los datos (como valores numéricos) a las variables.
Se ingresan valores para diferentes casos, para probar si es correcto o no el algoritmo
propuesto.
Hacer … mientras Mientras … Para … hacer
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 10 Ing° Eduardo A. Barrantes Mejía
Para el algoritmo que encuentra la superficie de un rectángulo sería:
Pseudocódigo
Programa EB_Area_Rectángulo;
Variables
entero base, altura, Superficie ;
(1) Inicio
(2) Escribir ( “Ingresar base y altura: ” ) ;
(3) Leer ( base, altura ) ;
(4) Superficie = base * altura ;
(5) Escribir ( “El area es = ”, Superficie );
(6) Fin
PASOS V A R I AB L E S
SALIDA base altura Superficie
1. Inicio
2.Escribir
3. Leer 7 9
Ingresar la base :
7 Enter
4.Escribir
5.Leer
Ingresar la altura :
9 Enter
Inicio
“Ingresar la base : ”
base
Superficie = base * altura
“El área es = ”, Superficie
Fin
1
2
3
4
5
6
“Ingresar la altura: ” 2
altura 3
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 11 Ing° Eduardo A. Barrantes Mejía
PASOS V A R I AB L E S SALIDA
6. Calcular
Superficie=
7 * 9 = 63
63
7. El área es = 63
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 12 Ing° Eduardo A. Barrantes Mejía
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
explícito. Otra característica nueva de Visual Basic .Net incluye el control estructurado de
excepciones, atributos personalizados y compatibilidad con CLS (Common Language
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 13 Ing° Eduardo A. Barrantes Mejía
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, 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 eventos. Este tipo de programación es
sensiblemente más complicada que la secuencial, y la interactiva.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 14 Ing° Eduardo A. Barrantes Mejía
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.
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 15 Ing° Eduardo A. Barrantes Mejía
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
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 16 Ing° Eduardo A. Barrantes Mejía
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)
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.
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 17 Ing° Eduardo A. Barrantes Mejía
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.
MÉTODOS de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar (5)
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 18 Ing° Eduardo A. Barrantes Mejía
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
Visual
Studio
Organiza proyectos, elementos de proyectos y elementos de
soluciones en una solución proporcionando al entorno
referencias a sus ubicaciones en disco.
.suo
Solution
user
options
Registra todas las opciones que podemos asociar a nuestra
solución de forma que cada vez que abramos la solución
incluya las personalizaciones que hayamos realizado.
.vb
Proyecto
Visual
Basic
Representa los archivos de formularios, controles de usuario,
clases y módulos que pertenecen a la solución de un solo
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 19 Ing° Eduardo A. Barrantes Mejía
.vbproj
Proyectos
Visual
Basic
Representa los archivos de formularios, controles de usuario,
clases y módulos que pertenecen a la solución con múltiples
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
.asmx
.asax
Elementos
de
proyecto
Web
Los elementos de proyecto Web incluyen archivos Web
específicos como .aspx para Web Forms, .asmx para servicios
Web XML, y .asax para clases globales de aplicaciones. Los
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).
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 20 Ing° Eduardo A. Barrantes Mejía
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:
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 21 Ing° Eduardo A. Barrantes Mejía
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
Tipos de datos predefinidos
Estructuras definidas por el
usuario
Enumeraciones
Cadenas
Matrices
Clases
Tipos valor Tipos referencia
Sistema de tipos comunes
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 22 Ing° Eduardo A. Barrantes Mejía
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 Basic .NET
Tamaño Rango de Valores
Boolean
Date
Decimal
Double
Integer
Single
2 bytes
8 bytes
16 bytes
8 bytes
4 bytes
4 bytes
Verdadero o Falso
0:00:00 del 1 de enero de 0001 a
11:59:59 PM del 31 de diciembre de 9999
Hasta 29 dígitos significativos, con
valores de hasta 7,9228 x 10 (con signo)
-4,94065645841246544E-324 a
+1,79769313486231570E+308 (con signo)
-2.147.483.648 a
+2.147.483.647 (con signo)
-3,4028235E+38 a 1,401298E-45
(con signo)
String Varía 0 a 2.000 millones aproximadamente de
caracteres Unicode
28
Tipo de dato
en VB.NET Tipo correspondiente en
el entorno de .NET
Framework
Tamaño Rango de valores
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,
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 23 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 24 Ing° Eduardo A. Barrantes Mejía
un número entero:
Dim unEntero As Integer =
250009I
Dim unEntero2 As Integer =
652000% Long
(entero largo) System.Int64 8 bytes Un entero largo (o grande)
Valores:
de -9,223,372,036,854,775,808 a
9,223,372,036,854,775,807. Se puede convertir a Single,
Double o Decimal sin producir
overflow.
Se puede usar la letra L o el signo
& para indicar que es un número
Long:
Dim unLong As Long = 12345678L
Dim unLong2 As Long =
1234567890& Object System.Object
(class) 4 bytes Cualquier tipo se puede almacenar
en una variable de tipo Object.
Todos los datos que se manejan en
.NET están basados en el tipo
Object. Short
(entero corto) System.Int16 2 bytes Un entero corto (sin decimales)
Valores:
de -32,768 a 32,767. Se puede convertir a: Integer,
Long, Single, Double o Decimal
sin producir un overflow. Se puede
usar la letra S para indicar que es
un 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
(cadenas de
longitud
variable)
System.String
(clase) Depende de
la
plataforma
Una cadena de caracteres Unicode.
Valores:
de 0 to aproximadamente 2
billones (2^31) de caracteres
Unicode.
Se puede usar el símbolo $ para
indicar que una variable es un
String. Tipos definidos por el usuario
(estructuras)
(heradada de
System.ValueType) Depende de
la
plataforma
Cada miembro de la estructura
tiene su rango, dependiendo del
tipo de dato que representa.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 25 Ing° Eduardo A. Barrantes Mejía
IntPtr IntPtr (tipo de dato no
nativo) Depende de
la
plataforma
Entero con signo con tamaño
dependiente de la plataforma: 4 Byte
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
nativo) Depende
de la
plataforma
Entero sin signo con tamaño
dependiente de la plataforma: 4 Byte
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 26 Ing° Eduardo A. Barrantes Mejía
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
int
lng
sng
dbl
dec
bln
dte
String
Integer
Long Integer
Coma flotante de precisión simple
Coma flotante de precisión doble
Decimal
Boolean (True/False)
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 27 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 28 Ing° Eduardo A. Barrantes Mejía
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
devuelve
Valores del argumento
"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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 29 Ing° Eduardo A. Barrantes Mejía
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 30 Ing° Eduardo A. Barrantes Mejía
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:
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 31 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 32 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 33 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 34 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 35 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 36 Ing° Eduardo A. Barrantes Mejía
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
+-
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 37 Ing° Eduardo A. Barrantes Mejía
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
Pseudocódigo En Visual Basic
if .... Then .... Else ....End If
Si (condición lógica)
Sentencia Verdadera (V)
Si_No
Sentencia Falsa (F)
Fin Si
If Condición lógica Then
Sentencia Verdadera (V)
Else
Sentencia Falsa (F)
End If
C.L.. SI NO
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 38 Ing° Eduardo A. Barrantes Mejía
Ejemplo 1. Ingresar un número y decir si es positivo o negativo.
Análisis del Problema:
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
Pseudocódigo: Visual Basic
Programa EB_Positivo_Negativo;
Variables
entero n;
Inicio
Escribir("Ingrese un número: ");
Leer( n );
Si (n>0)
Escribir( "El número es positivo");
Si_no
Escribir( "El número es negativo");
Fin.
Código en Visual Basic
' Variable
Dim n As Integer
' Ingreso de Datos
n = txtNumero.Text
'Proceso o cálculo
If n > 0 Then
txtRespuesta.Text = "El
número es Positivo "
Else
txtRespuesta.Text = "El
número es Negativo "
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.
0 Negativ
o
Positivo
n>0
n
Determinar
si el número n es
positivo o negativo
“El número es
....................”
“es ..................”
Entrada
Salida
Proceso
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 39 Ing° Eduardo A. Barrantes Mejía
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)
Sentencia Verdadera (V)
SiNo_Si (condición lógica)
Sentencia Verdadera (V)
SiNo_Si (condición lógica)
Sentencia Verdadera (V)
Si_No
Sentencia Falsa (F)
Fin Si
If Condición lógica 1 Then
Sentencia Verdadera 1 (V)
ElseIf Condición lógica 2
Sentencia Verdadera 2 (V)
ElseIf Condición lógica 3
Sentencia Verdadera 3 (V)
Else
Sentencia Falsa 3 (F)
End If
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 40 Ing° Eduardo A. Barrantes Mejía
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;
Variables
entero a,b,c, nMayor;
Inicio
Escribir("Ingrese tres números: ");
Leer ( a ) ;
Leer ( b ) ;
Leer ( c ) ;
Si (a > b y a > c)
nMayor = a;
SiNo_Si ( b >c )
nMayor = b;
Si_No
nMayor = c;
Escribir(“El mayor es = ”,nMayor);
Fin.
Código en Visual Basic
' Variable
Dim a, b, c, nMayor As Integer
' Ingreso de Datos
a = txtNumA.Text
b = txtNumB.Text
c = txtNumC.Text
'Proceso o cálculo
If a > b And a > c Then
nMayor = a
ElseIf b>c
nMayor = b
Else
nMayor = c
End If
txtRespuesta.Text = nMayor
Analizando este ejemplo se puede tener a una 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
Entero Numero,
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 41 Ing° Eduardo A. Barrantes Mejía
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:
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 42 Ing° Eduardo A. Barrantes Mejía
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 txtNumero
txtRespuesta
Dos Button btnCalcular
btnSalir
CÓDIGO Public Class frmPosiNegaCero
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Me.txtNumero.Focus( )
intNumero = Me.txtNumero.Text
'Proceso o cálculo
If intNumero = 0 Then
Me.txtRespuesta.Text = "El número es Cero "
Else
If intNumero > 0 Then
Me.txtRespuesta.Text = "El número es Positivo "
Else
Me.txtRespuesta.Text = "El número es Negativo "
End If
End If
Me.txtNumero.Text = ""
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 43 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 44 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 45 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 46 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 47 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 48 Ing° Eduardo A. Barrantes Mejía
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 49 Ing° Eduardo A. Barrantes Mejía
DIAGRAMA DE FLUJO
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
INICIO
“Costo de la Casa:
”
CostoCasa
“Ingresos del Comprador: ”
Ingresos
Ingresos<1000
CuotaInicial=0.1*CostoCasa
Pago Mensual=0.9*CostoCasa/20
CuotaInicial=0.2*CostoCasa
Pago Mensual=0.8*CostoCasa/12
“Cuota Inicial: ”, CuotaInicial
“Pago Mensual: ”, PagoMensual
FIN
V F
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 50 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 51 Ing° Eduardo A. Barrantes Mejía
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
Compras<=50
0
Descuento=0.08*Compras
Total=SubTotal+Impuesto
Impuesto=0.18*SubTotal
Total=SubTotal+Impuesto
“Compras ”, Compras
“Descuento: ”, Descuento
FIN
SubTotal=Compras-
Descuento
Impuesto=0.18*SubTotal
Descuento=0.12*Compr
as
V F
SubTotal=Compras-
Descuento
“Sub Total: ”, SubTotal
“Impuesto: ”, Impuesto
“Total: ”, Total
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 52 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 53 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 54 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 55 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 56 Ing° Eduardo A. Barrantes Mejía
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_Caso
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 57 Ing° Eduardo A. Barrantes Mejía
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 58 Ing° Eduardo A. Barrantes Mejía
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 que sean exactamente iguales a "manzana",
cadenas con valores entre "naranja" y "sandía" en orden alfabético y con el valor actual de
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
’ si intNumero es 11, 13
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 59 Ing° Eduardo A. Barrantes Mejía
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
Case "/"
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 60 Ing° Eduardo A. Barrantes Mejía
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
Case Is < 0
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 61 Ing° Eduardo A. Barrantes Mejía
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) If intNumero < 0 Then MsgBox("Ingresar un número Positivo")
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 62 Ing° Eduardo A. Barrantes Mejía
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 63 Ing° Eduardo A. Barrantes Mejía
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 que en este caso será igual a uno: n = n + 1,
colocado en un bucle se generan los números solicitados.
Ejemplo
n = n + 1
n = 0 → n = 0 +1 = 1;
n = 1 → n = 1 +1 = 2;
n = 2 → n = 2 +1 = 3;
así sucesivamente en cada
ciclo.
Acumulador o Totalizador: Es un tipo de 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 = 1 → suma = 1 + 2 = 3;
suma = 3 → suma = 3 + 3 = 6;
suma = 6 → suma = 6 + 4 = 10;
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 ( inicialización_variable hasta limite incremento )
inicio
sentencia 1;
sentencia 2;
.
.
sentencia n .
fin_para;
En Visual Basic el bucle For…Next,
Sintáxis:
For contador = inicio To fin [ Step incremento]
Sentencia 1
.
. Sentencia
[Exit For]
Sentencia
.
. Sentencia n
Next [contador]
suma
suma = suma + n
n
n = n +1
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 64 Ing° Eduardo A. Barrantes Mejía
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,
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
entero i, conta = 0;
real sum = 0.0;
entero prim, ultimo, temp;
Inicio
Escribir ( "Ingrese un numero entero: " ) ;
Leer( prim ) ;
Escribir ( "Ingrese otro numero: " ) ;
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 65 Ing° Eduardo A. Barrantes Mejía
Leer ( ultimo ) ;
Si (prim > ultimo)
Inicio
temp = prim;
prim = ultimo;
ultimo = temp;
Fin_Si
Para (i = prim hasta ultimo )
inicio
conta = conta +1;
sum = sum + i;
fin_para;
Escribir ( "Suma de enteros desde " , prim , " al " , ultimo , " = " , sum ) ;
Escribir ( "Promedio = " , sum / conta ) ;
Fin.
Ejercicio 1. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, por el teclado se 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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 66 Ing° Eduardo A. Barrantes Mejía
Next
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Ejercicio 2. Elaborar un programa que muestre la tabla de multiplicar de un 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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 67 Ing° Eduardo A. Barrantes Mejía
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
6.3. Estructura de 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 ;
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 68 Ing° Eduardo A. Barrantes Mejía
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.
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:
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 69 Ing° Eduardo A. Barrantes Mejía
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
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.
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 70 Ing° Eduardo A. Barrantes Mejía
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
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 71 Ing° Eduardo A. Barrantes Mejía
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()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnSalir.Click
End
End Sub
End Class
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 72 Ing° Eduardo A. Barrantes Mejía
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.
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 73 Ing° Eduardo A. Barrantes Mejía
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( )
Console.ReadLine( )
Case 2
Call Ingles( )
Console.ReadLine( )
Case 3
Call Portugues( )
Console.ReadLine( )
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 74 Ing° Eduardo A. Barrantes Mejía
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()
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)
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 75 Ing° Eduardo A. Barrantes Mejía
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
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()
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 76 Ing° Eduardo A. Barrantes Mejía
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}",
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 77 Ing° Eduardo A. Barrantes Mejía
Function Volumen(ByVal Num As Integer) As Double
Volumen = (4 * (3.14159 * (Math.Pow(Num, 3)))) / 3
End Function
Function Circunferencia(ByVal Num As Integer) As Double
Circunferencia = 2 * (3.14159 * Num)
End Function
End Module
8. ARRAYS Y ESTRUCTURAS
8.1. Arrays
Un arreglo es un tipo de 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:
Sintaxis:
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:
Dim A(3) As Integer
En este ejemplo, el número 3 que está dentro de los paréntesis indica el número total de
elementos - 1 de que tendrá el array, es decir el vector declarado tiene cuatro elementos:
A(0) A(1) A(2) A(3)
5 7 3 8
A(0)
A(1)
A(2)
A(3)
4 elementos
i = 0, 1, 2, 3
Límite inferior
Límite superior es
igual al número de
elementos menos 1
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 78 Ing° Eduardo A. Barrantes Mejía
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
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
Ejercicio 1. Ingresar y mostrar ventas de un año, utilizando un vector
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 79 Ing° Eduardo A. Barrantes Mejía
Public Class frmVector
Dim ventas(12) As Decimal
Dim i As Integer
Private Sub btnIngresar_Click(sender As Object, e As EventArgs) Handles btnIngresar.Click
i = txtMes.Text
If i >= 1 And i <= 12 Then
ventas(i) = txtImp.Text
Else
MsgBox("Ingrese un valor entre 1 y 12")
End If
txtMes.Text = ""
txtImp.Text = ""
txtMes.Focus( )
End Sub
Private Sub btnListar_Click(sender As Object, e As EventArgs) Handles btnListar.Click
i = 1
dgvTabla.Rows.Clear( )
Do While (i <= 12)
dgvTabla.Rows.Add(i, ventas(i))
i = i + 1
Loop
End Sub
Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
i = 1
Do While (i <= 12)
ventas(i) = 0
i = i + 1
Loop
End Sub
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 80 Ing° Eduardo A. Barrantes Mejía
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.
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.
A(00) A(01) A(02) . . . A(0j) . . . A(0n)
A(10) A(11) A(12) . . . A(1j) . . . A(1n).
. . . . . .
. . . . . .
. . . . . .
A(i0) A(i1) A(i2) . . . A(ij) . . . A(0n)
. . . . . .
. . . . . .
. . . . . .
A(m0) A(m1) A(i2) . . . A(mj) . . . A(0n)
j-ésima columna
i-ésima fila
Elemento generatriz
i = 0, 1, 2, 3, . . . , m filas
j = 0, 1, 2, 3, . . . , n columnas
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 81 Ing° Eduardo A. Barrantes Mejía
INGRESO DE DATOS DE UNA MATRIZ
“Ingresar número de filas de la Matriz A[m][n]: ”
“A[”, i, “ ] [ ”, j, “ ]= ”
INICIO
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
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 82 Ing° Eduardo A. Barrantes Mejía
MOSTRAR DATOS DE UNA MATRIZ
Ejercicio 2. Ingresar y mostrar Datos de una Matriz.
CÓDIGO:
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
“Ingresar número de filas de la Matriz A[m][n]: ”
“ ”, A[ i ] [ j ]
INICIO
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
FIN
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 83 Ing° Eduardo A. Barrantes Mejía
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
Next
Console.WriteLine()
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
End Sub
End Module
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 84 Ing° Eduardo A. Barrantes Mejía
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
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)
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Apuntes de Clase Pág. 85 Ing° Eduardo A. Barrantes Mejía
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