85
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

Visual Basic .NET_Eduardo BM 2015 (1)

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