Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS ESTADISTICA E
INFORMATICA
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
CAPITULO I
DISEO DE PROGRAMAS
Cuando se utiliza un computador para solucionar o resolver un sistema especfico o un
determinado problema; la solucin se denomina programa. Un programa se escribe en un
lenguaje de programacin y a la actividad de expresar la solucin de un problema mediante un
programa se denomina programacin.
Cada paso de la solucin de un problema est expresado por medio de una instruccin de
programa. Un programa est formado por una secuencia de instrucciones, cada una de las
cuales especifica las operaciones que debe realizar el computador.
Proceso de la Programacin
a. Anlisis del problema.
b. Diseo del algoritmo.
c. Verificacin manual del algoritmo
d. Codificacin del problema.
e. Depuracin y verificacin del programa.
f. Documentacin.
g. Mantenimiento.
Para disear correctamente un programa se deben seguir los siguientes pasos:
Apuntes de Clase
Pg. 2
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
1.2. Diseo del Algoritmo.
Algoritmo: Es un conjunto de instrucciones que especifican el orden de la secuencia de
operaciones a realizar para resolver un sistema especfico o clase de problema.
Algoritmo: Procedimiento paso a paso para solucionar un problema dado.
Algoritmo: Frmula para la solucin de un problema.
Algoritmo toma su nombre del famoso matemtico y astrnomo rabe Al-khwarizmi
(siglo IX), que escribi un conocido tratado sobre manipulacin de nmeros y ecuaciones
titulado Kitab al-jabr w'almugabala.
Idea de algoritmo: Secuencia de pasos sin ambigedades que lleva a la solucin de un
problema. Ejemplo El diseo de una mezcla para lograr un concreto de 210 Kg/cm2.
1.2.1. Caractersticas de un Algoritmo:
a) Debe ser preciso e indicar el orden de realizacin de cada paso.
b) Debe estar definido: si se sigue el algoritmo, dos o ms veces, se debe obtener siempre el
mismo resultado.
c) Debe ser finito: si se sigue un algoritmo se debe terminar en algn momento.
1.2.2. Partes de un Algoritmo:
ENTRADA
Datos
PROCESO
SALIDA
Transformacin
Resultados
base, altura
Superficie = base * altura
El rea es = , Superficie
ENTRADA: Informacin dada al algoritmo.
PROCESO: Clculos necesarios para encontrar la solucin del problema.
SALIDA : Respuestas dadas por el algoritmo o resultados finales de los clculos.
El algoritmo es independiente del lenguaje de programacin que se utilice con el
computador.
Ejemplo: Clculo de la superficie de un rectngulo.
Anlisis del problema:
Superficie = base x altura
Algoritmo:
Inicio
Entrada: base y altura.
Proceso: calcular Superficie = base * altura.
Salida: mostrar El rea es = , Superficie
Fin.
Apuntes de Clase
Pg. 3
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
1.3. Herramientas para escribir algoritmos:
La estructura de un algoritmo se puede representar en un diagrama estructurado en forma
de bloques, donde se muestran las diferentes tareas que deben ser ejecutadas y su relacin
entre ellas. Entre otras tenemos las siguientes herramientas:
Diagrama de Pasada
Diagramas de flujo.
Pseudocdigos.
Diagramas de Nassi-Sneiderman (N-S) o de Chapin.
base, altura
Calcular el rea del
Rectnguulo
El rea es = , Superficie
ENTRADA
PROCESO
SALIDA
Apuntes de Clase
Pg. 4
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
1.3.2.2. Smbolos y Convenciones:
En la actualidad los smbolos usados en diagramacin se han estandarizado. Los ms
usados son los proporcionados por la ISO (International Organization for Standarization) y la
ANSI (American National Standards Institute, Inc).
SIMBOLO
DESCRIPCION
Inicial / Terminal, para indicar en dnde empieza y en
donde termina el diagrama
Proceso, cualquier tipo de operacin (tales como
desarrollar una expresin aritmtica o mover un dato
de un campo a otro).
Decisin, para evaluar una condicin y plantear la
seleccin de una alternativa.
Flechas, para unir los dems smbolos del diagrama e
indicar la secuencia de las instrucciones.
Conector en la misma pgina.
Apuntes de Clase
Pg. 5
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Utilizando estos smbolos el algoritmo para encontrar el rea de un rectngulo sera:
Inicio
base, altura
El rea es = , Superficie
Fin
1.3.3. Pseudocdigo
Es un lenguaje algortmico escrito en el lenguaje natural pero ms conciso y
que permite una redaccin rpida del algoritmo aunque lgicamente no tendr la precisin en
sus operaciones que en los lenguajes de programacin. El pseudocdigo es fcil de mantener,
ya que sus modificaciones se pueden realizar con un procesador de textos.
Se concibi para superar las dos principales desventajas del diagrama de flujo que es lento
de crear y difcil de modificar sin un nuevo dibujo.
Es ms fcil de utilizar ya que es similar al espaol en nuestro caso.
Para el ejercicio del rea del rectngulo el pseudocdigo sera:
Programa EB_Area_del_rectngulo;
Variables:
entero base, altura, Superficie;
Inicio
Escribir (Ingresar base y altura: );
Leer ( base, altura);
Superficie = base * altura.
Escribir ( El rea es = , Superficie);
Fin.
Ejemplo: Se desea calcular la suma de los n primeros nmeros.
Definicin y Anlisis del Problema
S=1+2+3+...+n
Apuntes de Clase
Pg. 6
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Pseudocdigo:
Programa EB_Suma_nmeros_naturales;
Variables
n, suma: real;
Inicio
Leer n;
suma 0;
Para i 1 hasta n hacer
suma suma+1;
fin_para;
escribir "La suma de los n primeros nmeros es: ", suma;
fin.
Las palabras reservadas inicio, leer, Para, hasta, hacer, escribir; que estn
subrayadas describen las estructuras de control fundamentales y procesos que se deben
realizar. Es importante hacer notar la forma de escribir el pseudocdigo el identado (sangrado
o justificado a la izquierda) permite dar mantenimiento (leer, corregir, escribir), a los
algortmos posteriormente.
1.2.9. Escritura inicial de un algoritmo:
El sistema para escribir un algoritmo consiste en realizar una descripcin paso a paso con
un lenguaje natural. Siendo un algoritmo un mtodo o conjunto de reglas para solucionar un
problema. En clculos elementales estas reglas tienen las siguientes propiedades:
a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado diferente.
b) Slo puede ejecutarse una operacin a la vez.
El flujo de control usual de un algoritmo general es secuencial. Ejemplo: El algoritmo que
soluciona canjear la libreta electoral por el DNI, puede ser:
1. Ir al Banco de la nacin.
2. Comprar recibo.
3. Ir al RENIEC.
4. Regresar a casa.
Consta de cuatro acciones bsicas.
El algoritmo general se descompondr en pasos ms simples en un procedimiento llamado
refinamiento sucesivo, pues, cada accin puede descomponerse a su vez en otras acciones ms
simples, as por ejemplo:
1. Inicio
2. Ver si atienden en el Banco con venta de recibos para canje de L.E. por el DNI.
3. Si venden recibos entonces
si hay cola entonces ponerse a la cola
mientras haya personas delante hacer
avanzar la cola
sino venden recibos entonces
decidir otra actividad.
4. Comprar recibo
Apuntes de Clase
Pg. 7
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
5. Ir al RENIEC
Mientras llenan nuestra ficha hacer
que el empleado escriba correctamente nuestros datos personales.
6. Abandonar la oficina del RENIEC.
7. Regresar a casa
8. Fin.
La capacidad de decisin permite seleccionar alternativas de acciones a seguir. Tambin
podemos repetir una y otra vez las acciones bsicas. Ejemplo:
si venden recibos ponerse a la cola
mientras haya personas en la cola, ir avanzando repetidamente hasta llegar a la ventanilla
de atencin.
sino esperar, leer peridico, decidir otra actividad.
Los diagramas de Nassi Sneiderman estn constituidos por una serie de rectngulos que se
van rellenando de arriba hacia abajo, empleando las tres estructuras bsicas de la
programacin estructurada.
Secuencial
Hacer mientras
Apuntes de Clase
Decisin Simple
Decisin Mltiple
Mientras
Pg. 8
Para hacer
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
En el presente trabajo, como herramienta para escribir los algoritmos utilizaremos el
pseudocdigo, por ser una forma sencilla de escribirlo, leer, mantener y transcribir para su
implementacin a cualquier lenguaje de programacin.
1.4. Verificacin o Validacin Manual del Algoritmo, o Prueba de Escritorio
Utilizamos un cuadro en el cual:
Se sigue estrictamente los pasos indicados en el algoritmo.
Se ingresan los datos (como valores numricos) a las variables.
Se ingresan valores para diferentes casos, para probar si es correcto o no el algoritmo
propuesto.
Para el algoritmo que encuentra la superficie de un rectngulo sera:
1
2
Inicio
base, altura
El rea es = , Superficie
Fin
Pseudocdigo
Programa EB_Area_Rectngulo;
Variables
entero base, altura, Superficie ;
(1) Inicio
(2) Escribir ( Ingresar base y altura: ) ;
(3) Leer ( base, altura ) ;
(4) Superficie = base * altura ;
(5) Escribir ( El area es = , Superficie );
(6) Fin
Apuntes de Clase
Pg. 9
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
PASOS
V A R I AB L E S
base
altura
Superficie
1. Inicio
2, 3.
7
SALIDA
Ingresar base y
altura:
7 Enter
9 Enter
4. Calcular
Superficie=
7*9=
63
5.
6. Fin
Apuntes de Clase
63
El rea es = 63
Pg. 10
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
CAPITULO II
2. Introduccin a Visual Basic .Net
Visual Basic .Net es uno de los Lenguajes .Net que provee Microsoft para la construccin de
lo ltimo en componentes, aplicaciones y servicios. Con esta nueva versin, los
desarrolladores pueden construir todas las aplicaciones de ASP .Net para servicios Web
XML. En la plataforma Visual Studio .NET
Apuntes de Clase
Pg. 11
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Caractersticas:
Con Visual Basic se podr disear dos tipos de aplicaciones: Aplicaciones para
Windows y Aplicaciones para Internet.
El acceso de datos ser usando ADO .Net el cual nos permitir trabajar con DataServs
desconectados.
TIPOS DE PROGRAMAS
Existen distintos tipos de programas.
Programa secuencial, en los primeros tiempos de los ordenadores los programas eran de tipo
secuencial (tambin llamados tipo batch) es un programa que se arranca, lee los datos que
necesita, realiza los clculos e imprime o guarda en el disco los resultados. Mientras un
programa secuencial est ejecutndose no necesita ninguna intervencin del usuario. A este
tipo de programas se les llama tambin programas basados u orientados a procedimientos o a
algoritmos (procedural languages). Este tipo de programas siguen utilizndose ampliamente
en la actualidad, pero la difusin de los PCs ha puesto de actualidad otros tipos de
programacin.
Programas interactivos exigen la intervencin del usuario en tiempo de ejecucin, bien
para suministrar datos, bien para indicar al programa lo que debe hacer por medio de mens.
Los programas interactivos limitan y orientan la accin del usuario. Un ejemplo de programa
interactivo podra ser Matlab.
Programas orientados a eventos son los programas tpicos de Windows, tales como
Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas se ejecuta y esta
activo, lo nico que hace es quedarse a la espera de las acciones del usuario, que en este caso
son llamadas eventos. El usuario dice si quiere abrir y modificar un fichero existente, o bien
comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte de su
tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que
el usuario puede realizar en un momento determinado son variadsimas, y exigen un tipo
especial de programacin: la programacin orientada a eventos. Este tipo de programacin es
sensiblemente ms complicada que la secuencial, y la interactiva.
2.2 PROGRAMAS PARA EL ENTORNO WINDOWS
Visual Basic est orientado a la realizacin de programas para Windows, pudiendo incorporar
todos los elementos de este entorno informtico: ventanas, botones, cajas de dilogo y de
texto, botones de opcin y de seleccin, barras de desplazamiento, grficos, mens, etc.
Apuntes de Clase
Pg. 12
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
2.2.1 Modo de Diseo y Modo de Ejecucin
La aplicacin Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de
diseo y en modo de ejecucin.
En modo de diseo el usuario construye interactivamente la aplicacin, colocando controles
en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los
eventos.
Modo de ejecucin. Se prueba la aplicacin, en ese caso el usuario acta sobre el programa
(introduce eventos) y prueba cmo responde el programa. Hay algunas propiedades de los
controles que deben establecerse en modo de diseo, pero muchas otras pueden cambiarse en
tiempo de ejecucin desde el programa escrito en Visual Basic, en la forma en que ms
adelante se ver. Tambin hay propiedades que slo pueden establecerse en modo de
ejecucin y que no son visibles en modo de diseo. Todos estos conceptos controles,
propiedades, eventos, etc.- se explican posteriormente.
Tipos de ejecutables.
Con Visual Basic .NET se puede crear bsicamente estos dos tipos de ejecutables: de consola,
no grfico, al estilo del viejo MS-DOS, y grficos, como los que normalmente estamos
acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con
Visual Basic .NET: aplicaciones ASP.NET, (realmente no es una aplicacin o ejecutable, sino
un compendio de distintos tipos de elementos...), servicios Web, servicios Windows, etc.
2.2.2. Formularios y Controles
Formulario (Form) Se llama as a una ventana. Un formulario puede ser considerado como
una especie de contenedor para los controles. Una aplicacin puede tener varios formularios,
pero un nico formulario puede ser suficiente para las aplicaciones ms sencillas. Los
formularios deben tambin tener un nombre, que puede crearse siguiendo las mismas reglas
que para los controles.
Control: Cada uno de los elementos grficos que pueden formar parte de una aplicacin
tpica de Windows 95/98/NT es un tipo de control: los botones, las cajas de dilogo y de
texto, las cajas de seleccin desplegables, los botones de opcin y de seleccin, las barras de
desplazamiento horizontales y verticales, los grficos, los mens, y muchos otros tipos de
elementos son controles para Visual Basic. Cada control debe tener un nombre a travs del
cual se puede hacer referencia a l en el programa. Visual Basic proporciona nombres por
defecto que el usuario puede modificar.
2.2.3 Clases, Objetos
Clase se llama as a entidades genricas que se utilizan en programacin orientada a objetos
(ms bien basada en objetos, habra que decir). Los formularios y los distintos tipos de
controles son entidades genricas o clases de las que puede haber varios ejemplares concretos
en cada programa.
Objeto se llama as a cada ejemplar de una clase determinada. Por ejemplo, en un programa
puede haber varios botones, cada uno de los cuales es un objeto del tipo de control Button,
que sera la clase.
Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades.
Ejemplo : Una caja de texto TextBox1, en la cual podemos escribir cualquier lnea es un
objeto de la clase TextBox.
Apuntes de Clase
Pg. 13
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
2.2.4 Nombres de objetos
En principio cada objeto de Visual Basic debe tener un nombre, por medio del cual se hace
referencia a dicho objeto. El nombre puede ser el que el usuario desee, Visual Basic
proporciona nombres por defecto para los diversos controles. Estos nombres por defecto
hacen referencia al tipo de control y van seguidos de un nmero que se incrementa a medida
que se van introduciendo ms controles de ese tipo en el formulario (por ejemplo TextBox1,
TextBox2, etc.).
Los nombres por defecto no son adecuados porque hacen referencia al tipo de control, pero no
al uso que de dicho control est haciendo el programador. Por ejemplo, si se utiliza una barra
de desplazamiento para introducir una temperatura, conviene que su nombre haga referencia a
la palabra temperatura, y as cuando haya que utilizar ese nombre se sabr exactamente a qu
control corresponde. Un nombre adecuado sera por ejemplo hsbTemp, donde las tres
primeras letras indican que se trata de una horizontal scroll bar, y las restantes (empezando
por una mayscula) que servir para definir una temperatura.
Existe una convencin ampliamente aceptada que es la siguiente: se utilizan siempre tres
letras minsculas que indican el tipo de control, seguidas por otras letras (la primera
mayscula, a modo de separacin) libremente escogidas por el usuario, que tienen que hacer
referencia al uso que se va a dar a ese control; por ejemplo, si emplea un control Button
emplee siempre como prefijo btn despus compltelo con un nombre descriptivo acorde a la
funcionalidad que este tendr, as el control Button btnCalcular, indica que se emplear para
iniciar los clculos del programa
En la siguiente Tabla muestra las abreviaturas de los controles ms usuales, junto con la
nomenclatura inglesa de la que derivan.
Control
Prefijo
Button
btn
Label
lbl
PictureBox
pic
Timer
tmr
Text Box
txt
List Box
lst
Combo Box
cbo
Check Box
chk
2.2.5. Propiedades.
Son los atributos o caractersticas que posee un objeto Ejemplo: definicin del aspecto grfico
del formulario (ventana de Windows) tamao, color de fondo, posicin, tipo y tamao de
letra, etc. y su forma de responder a las acciones del usuario (si est activo o no).
Cada tipo de control tiene un conjunto de propiedades que tienen un nombre que viene
definido por el lenguaje. Por lo general, las propiedades de un objeto son datos que tienen
valores lgicos (True, False) o numricos concretos, propios de ese objeto y distintos de las
de otros objetos de su clase. As pues, cada clase, tipo de objeto o control tiene su conjunto de
propiedades, y cada objeto o control concreto tiene unos valores determinados para las
propiedades de su clase. Casi todas las propiedades de los objetos pueden establecerse en
tiempo de diseo y tambin casi siempre en tiempo de ejecucin. En este segundo caso se
accede a sus valores por medio de las sentencias del programa, en forma anloga a como se
accede a cualquier variable en un lenguaje de programacin. Para ciertas propiedades sta es
Apuntes de Clase
Pg. 14
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
la nica forma de acceder a ellas. Por supuesto Visual Basic permite crear distintos tipos de
variables.
Para establecer una propiedad de un objeto en tiempo de ejecucin se deber escribir una
sentencia de cdigo usando la siguiente sintxis:
objeto.Propiedad = Expresin
Por ejemplo, para hacer que una etiqueta Label, lblTitulo muestre el mensaje Facultad de
Ingeniera, establecemos la propiedad Text:
lblTitulo.Text = Facultad de Ingeniera
Algunas veces necesitar conocer el valor de la propiedad de un objeto a fin de realizar un
clculo o alguna otra tarea en su aplicacin. Para asignar el valor de la propiedad de un objeto
a una variable, coloque la referencia al objeto (variable) y propiedad al lado derecho del
smbolo igual:
Variable = objeto.Propiedad
Ejemplo: decAncho = txtAncho.Text, el contenido del cuadro de texto txtAncho se asigna a la
variable decAncho
2.2.6. Mtodos.
Los mtodos son funciones internas de un determinado objeto que permite realizar acciones
sobre l o sobre otro objeto.
La sintxis en general es:
objeto.Mtodo
objeto.Mtodo (Valor)
donde objeto es el nombre del objeto que deseamos modificar, Mtodo es la orden (verbo)
que queremos utilizar para modificar el objeto y Valor es un argumento opcional que utilizar
el mtodo. Ejemplo txtNombre.SetFocus, es un mtodo que no tiene argumentos; el mtodo
Move mueve un objeto, colocndolo en una nueva posicin, en este ejemplo se mueve el
formulario frmPresentacin: frmPresentacin.Move (0,0)
2.2.7. Eventos.
Los eventos son hechos que son desencadenados en los formularios y controles por la accin
del usuario. A cada evento se puede asociar el cdigo de un procedimiento que responda
adecuadamente a la accin desencadenada. Los eventos son los mensajes o solicitudes que se
envan a los objetos de Visual Basic.
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click,
movimiento del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al
producir el evento.
Un programa Visual Basic es un POE (Programa orientado a eventos).
Todo lo que hacemos en un programa Visual Basic est generado por medio de eventos
2.2.8. Explicacin y ejemplo de Objetos, Propiedades, Mtodos y Eventos
Los formularios y controles de Visual Basic son objetos que exponen sus propios mtodos,
propiedades y eventos. Las propiedades se pueden considerar como atributos de un objeto,
los mtodos como sus acciones y los eventos como sus respuestas.
Apuntes de Clase
Pg. 15
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Un objeto de uso diario como el globo de un nio tiene tambin propiedades, mtodos y
eventos.
Entre las propiedades de un globo se incluyen atributos visibles como el peso, el dimetro
y el color. Otras propiedades describen su estado (inflado o desinflado) o atributos que no
son visibles, como su edad. Por definicin, todos los globos tienen estas propiedades; lo
que vara de un globo a otros son los valores de estas propiedades.
Un globo tiene tambin mtodos o acciones inherentes que puede efectuar. Tiene un
mtodo inflar (la accin de llenarlo de aire) o un mtodo desinflar (sacar el aire) y un
mtodo elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar estos
mtodos.
Los globos tienen adems respuestas predefinidas a ciertos eventos externos. Por ejemplo,
un globo respondera al evento de pincharlo desinflndose o al evento de soltarlo
elevndose en el aire.
Los objetos tienen:
Propiedades
responden a eventos
ejecutan mtodos:
Si se pudiera programar un globo, el cdigo de Visual Basic podra ser como el siguiente.
Para establecer las propiedades del globo:
Globo.Color = Negro
Globo.Dimetro = 10
Globo.Inflado = True
Observe la sintaxis del cdigo: el objeto (Globo) seguido de la propiedad (Color) seguida
de la asignacin del valor (Negro). Podra modificar el color del globo desde el cdigo si
repitiera esta instruccin y sustituyera el valor por otro diferente. Las propiedades tambin
se pueden establecer en la ventana Propiedades mientras se est diseando la aplicacin.
Los mtodos de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar (5)
La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un
mtodo (un verbo). En el tercer ejemplo hay un elemento adicional, llamado argumento o
valor, que indica la distancia que se eleva. Algunos mtodos tendrn uno o ms argumentos
para describir ms a fondo la accin que se va a ejecutar.
Apuntes de Clase
Pg. 16
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
El globo puede responder a un evento como se muestra a continuacin:
Sub Globo_Pinchazo( )
Globo.Desinflar
Globo.HacerRuido "Bang"
Globo.Inflado = False
Globo.Dimetro = 1
End Sub
En este caso, el cdigo describe el comportamiento del globo cuando se produce un evento
Pinchazo: invoca el mtodo Desinflar y luego invoca el mtodo HacerRuido con un
argumento Bang (el tipo de ruido que se va a hacer). Como el globo ya no est inflado, la
propiedad Inflado tiene el valor False y la propiedad Dimetro adopta un nuevo valor.
Si bien no puede programar un globo, s puede programar un formulario o un control de
Visual Basic. Como programador, tiene el control: decide qu propiedades se deben
modificar, qu mtodos se deben invocar o a qu eventos hay que responder para conseguir la
apariencia y el comportamiento deseados
2.2.9. Proyectos
Un proyecto es un recipiente dentro de una solucin que se utiliza para administrar, generar y
depurar lgicamente los elementos de proyecto que constituyen nuestra aplicacin.
Realizar un proyecto equivale a realizar los siguientes pasos:
Crear una especificacin de diseo
Crear el interfaz de usuario
Establecer las propiedades de los objetos del interfaz de usuario.
Escribir cdigo para aadir funcionalidad.
Probar y depurar la aplicacin.
Generar un archivo ejecutable.
Crear una aplicacin de instalacin.
Guardar y cerrar el proyecto
2.2.10. Archivos de proyectos y soluciones
Extensin Nombre
.sln
Solucin
Visual
Studio
.suo
Solution
user
options
.vb
Proyecto
Visual
Basic
.vbproj
Proyectos
Visual
Basic
Apuntes de Clase
Descripcin
Organiza proyectos, elementos de proyectos y elementos de
soluciones en una solucin proporcionando al entorno
referencias a sus ubicaciones en disco.
Registra todas las opciones que podemos asociar a nuestra
solucin de forma que cada vez que abramos la solucin
incluya las personalizaciones que hayamos realizado.
Representa los archivos de formularios, controles de usuario,
clases y mdulos que pertenecen a la solucin de un solo
proyecto. Los archivos que no estn basados en un lenguaje de
programacin tienen su propia extensin. Por ejemplo, un
archivo Crystal Report tiene la extensin .rpt, y un archivo de
texto tiene la extensin .txt.
Representa los archivos de formularios, controles de usuario,
clases y mdulos que pertenecen a la solucin con mltiples
proyectos. Esta extensin nos permite diferenciar entre
archivos escritos en Visual Basic .NET y otros lenguajes
Pg. 17
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
.aspx
.asmx
.asax
3. Entorno de desarrollo
Apuntes de Clase
Pg. 18
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Apuntes de Clase
Pg. 19
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
4. ELEMENTOS DEL LENGUAJE VISUAL BASIC.NET:
4.1. Tipos de Datos.
El tipo de datos de una variable o un elemento de programacin hace referencia a la clase de
datos que puede contener y a cmo se almacenan los datos. El sistema de tipos comunes
(Common Type System CTS) define los tipos de datos que soporta el Common Language
Runtime. Visual Basic .NET utiliza tipos de datos que se corresponden directamente con los
tipos de datos del sistema de tipos comunes.
El sistema de tipos comunes define cmo se declaran, utilizan y gestionan los tipos en el
Common Language Runtime. Cada tipo de datos utilizado en Visual Basic .NET corresponde
directamente a un tipo definido en el sistema de tipos comunes.
Tipos referencia
Cadenas
Matrices
Clases
Enumeraciones
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.
Apuntes de Clase
Pg. 20
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Tipos de datos Bsicos
Tipo de dato
en VB.NET
Tipo Visual
Basic .NET
Boolean
2 bytes
Verdadero o Falso
Date
8 bytes
Decimal
16 bytes
Double
8 bytes
Integer
4 bytes
-2.147.483.648 a
+2.147.483.647 (con signo)
Single
4 bytes
String
Vara
-3,4028235E+38 a 1,401298E-45
(con signo)
0 a 2.000 millones aproximadamente de
caracteres Unicode
Tamao
Rango de Valores
Tamao
Boolean
Tipo correspondiente en
el entorno de .NET
Framework
System.Boolean
Byte
System.Byte
1 byte
Char
System.Char
2 bytes
Date
System.DateTime
8 bytes
Apuntes de Clase
Pg. 21
2 bytes
Rango de valores
Un valor verdadero o falso.
Valores: True o False.
En VB se pueden representar por 1 o 0, en CLR sern 1 y 0, aunque
no es recomendable usar valores
numricos, es preferible usar
siempre True o False.
Dim b As Boolean = True
Un valor positivo, sin signo, para
contener datos binarios.
Valores: de 0 a 255
Puede convertirse a: Short,
Integer, Long, Single, Double o
Decimal sin recibir overflow
Dim b As Byte = 129
Un carcter Unicode.
Valores: de 0 a 65535 (sin signo).
No se puede convertir
directamente a tipo numrico.
Para indicar que una constante de
cadena, realmente es un Char,
usar la letra C despus de la
cadena:
Dim c As Char = "N"c
Una fecha.
Valores: desde las 0:00:00 del 1
de Enero del 0001 hasta las
23:59:59 del 31 de Diciembre del
9999.
Las fechas deben representarse
entre almohadillas # y por lo
habitual usando el formato
norteamericano:
#m-d-yyyy# Dim
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Decimal
System.Decimal
16 bytes
Double
System.Double
8 bytes
Integer
System.Int32
4 bytes
Long
(entero largo)
8 bytes
System.Int64
Apuntes de Clase
Pg. 22
d As Date = #10-27-2001#
Un nmero decimal.
Valores:
de 0 a +/79,228,162,514,264,337,593,543,
950,335 sin decimales;
de 0 a +/7.92281625142643375935439503
35 con 28 lugares a la derecha del
decimal;
el nmero ms pequeo es:
+/0.00000000000000000000000000
01 (+/-1E-28).
En los literales se puede usar la
letra D o el signo @ para indicar
que el valor es Decimal.
Dim unDecimal As Decimal =
9223372036854775808D
Dim unDecimal2 As Decimal =
987654321.125@
Un nmero de coma flotante de
doble precisin.
Valores:
de -1.79769313486231570E+308
a
-4.94065645841246544E-324
para valores negativos; de
4.94065645841246544E-324 a
1.79769313486231570E+308
para valores positivos.
Se puede convertir a Decimal sin
recibir un overflow. Se puede usar
como sufijo el signo almohadilla #
o la letra R para representar un
valor de doble precisin:
Dim unDoble As Double =
125897.0235R
Dim unDoble2 As Double =
987456.0125#
Un nmero entero (sin decimales)
Valores:
de -2,147,483,648 a
2,147,483,647.
Se puede convertir a Long, Single,
Double o Decimal sin producir
overflow. Se puede usar la letra I
o el signo % para indicar que es
un nmero entero:
Dim unEntero As Integer =
250009I
Dim unEntero2 As Integer =
652000%
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
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Object
Short
(entero corto)
Single
System.Object
(class)
System.Int16
System.Single
String
(cadenas de
longitud
variable)
System.String
(clase)
Tipos
definidos por
el usuario
(estructuras)
(heradada de
System.ValueType)
IntPtr
UIntPtr
Apuntes de Clase
Pg. 23
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo:
Dim intInteger As Integer = 42
Dim sngSingle As Single = 39.345677653
Dim strString As String = "Facultad de Ingeniera"
Dim blnBoolean As Boolean = True
4.2. Variables, Constantes
Una variable es una direccin de memoria en la que se guarda un valor o un objeto (en .NET
todo es un objeto), todas las variables debern ser declaradas por las instrucciones
Dim nombreVariable as tipoDato.
Dim es la abreviatura de Dimensin, que sirve para reservar espacio para la variable. La
sentencia Dim especifica el nombre de la variable y su tipo de dato asociado.
Las variables deben tener un nombre nico llamado Identificador, los identificadores se forman
siguiendo las siguientes reglas:
Comenzar con una letra o guin bajo (underline)
Deben contener letras, digitos y guiones bajos.
No pueden ser palabras reservadas.
Recomendaciones:
El nombre de las variables deberan comenzar con una letra
El nombre de las variables deberan distinguir cada nueva palabra escribiendo la primer
letra en mayscula
El nombre de las variables deberan ser lo suficientemente largo para ser significativo y lo
suficientemente corto para ser manejable.
Una novedad en Visual Basic .NET es la declaracin e inicializacin de variables, ya que es
posible hacer esto al mismo tiempo:
Dim nombreVariable as tipoDato = valorInicial
Si no se define un tipo de dato para la variable, entonces asume el tipo de dato por default que
es Object.
Las variables se pueden declarar de dos formas, aunque bsicamente es lo mismo:
1- Declarando la variable y dejando que VB asigne el valor por defecto.
2- Declarando la variable y asignndole el valor inicial que queramos que tenga.
Por defecto, cuando no se asigna un valor a una variable, stas contendrn los siguientes
valores, dependiendo del tipo de datos que sea:
- Las variables numricas tendrn un valor CERO.
- Las cadenas de caracteres una cadena vaca: ""
- Las variables Boolean un valor False (recuerda que False y CERO es lo mismo)
- Las variable de tipo Objeto tendrn un valor Nothing, es decir nada, un valor nulo.
Por ejemplo:
Dim decVolumen As Integer
La variable decVolumen tendr un valor inicial de 0
Apuntes de Clase
Pg. 24
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Pero si queremos que inicialmente valga 3500, podemos hacerlo de cualquiera de estas dos
formas:
Dim decVolumen As Decimal
decVolumen = 3500
Dim decVolumen As Decimal = 3500
Esta segunda forma es exclusiva de la versin .NET de Visual Basic,
Mientras que la primera forma mostrada es la forma clsica.
Es un buen hbito seguir un estndar de asignacin de nombres de variables comunes que
utilice como prefijo los tres primeros caracteres en minscula del nombre de la variable para
designar el tipo de dato que contienen luego empezando por una letra mayscula describir su
finalidad, ejemplo decVolumen, es una variable de tipo decimal que almacenar un Volumen.
Prefijo
str
int
lng
sng
dbl
dec
bln
dte
Tipo de variable
String
Integer
Long Integer
Coma flotante de precisin simple
Coma flotante de precisin doble
Decimal
Boolean (True/False)
Date
AMBITO DE VARIABLES
El mbito indica en que lugar de la aplicacin desea utilizar la variable y puede ser una de las
siguientes palabras claves. Dim, Static, Private o Public.
Dim
Se puede utilizar a nivel de procedimiento y a nivel del formulario. Si se declara una variable a
nivel de procedimiento con la palabra Dim, que proviene de la palabra Dimension, Visual Basic
reinicializa (borra su contenido) la variable cada vez que ejecuta el procedimiento.
Ejemplo:
Dim intLongitud As Integer
Static
Se utiliza solo a nivel del procedimiento. Cuando una variable se declara con la palabra Static,
Visual Basic no reinicializa la variable cada vez que se ejecuta el procedimiento, solo lo hace la
primera vez. Esto quiere decir que la variable conserva su valor entre una llamada al
procedimiento y otra.
Ejemplo:
Static dblArea As Double
Private
Se utiliza solo a nivel del modulo e indica que la variable es privada; es decir, solo va a ser
reconocida dentro del mdulo donde ha sido declarada.
Apuntes de Clase
Pg. 25
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo:
Private strDireccion As String
Public
Se utiliza solo a nivel de mdulo e indica que la variable es pblica; es decir, va a ser
reconocida en toda la aplicacin.
Public dteFecha As Date
CONSTANTES
Es un elemento con un nombre determinado que mantiene un valor constante durante el
desarrollo de todo el programa el cual no se puede cambiar.
Las constantes se declaran de la misma forma que la indicada en al asignarle un valor a la
variable a una constante no se le puede volver a asignar ningn otro valor, ya que si no, no
seran constantes, sino variables.
Por ejemplo:
Const intInicial As Integer = 250
Nota: La definicin de las constantes puede empezar con las palabras Public o Private. Para que
sean pblicas o privadas. Por defecto son privadas.
PROGRAMAS TIPO CONSOLE
Las funciones para capturar y mostrar datos por la consola son las siguientes:
Read
Captura o lee el dato que el usuario ingresa.
Variable = Console.Read
ReadLine
Captura o lee el dato que el usuario ingresa, pero a la vez hace un cambio de lnea al terminar de
leer el dato.
Variable = Console.ReadLine
Write
Permite mostrar por la consola ya sea una cadena (texto) o un dato numrico (nmero).
Para mostrar texto y datos calculados o capturados
Console.Write(Texto a Mostrar {0},{1}, {2}, ., {n}, Var0, Var1, Var2,., Varn)
Para mostrar texto
Console.Write(Texto a Mostrar)
WriteLine
Nos permite mostrar ya sea una cadena (texto) o un dato numrico (nmero), y a la vez hace un
cambio de lnea, despus de haber mostrado el dato.
Para mostrar texto y datos calculados o capturados
Console.WriteLine(Texto a Mostrar {0},{1}, {2}, ., {n}, Var0, Var1, Var2,., Varn)
Para mostrar texto
Console.WriteLine(Texto a Mostrar)
Observamos que en la funcin Write y WriteLine, en el texto que deseamos mostrar y que est
entre comillas, escribimos {0}, {1}, seguido de Var0, Var1, etc.; lo escribimos para mostrar la
ubicacin del contenido de una variable, despus de las comillas se escriben los nombres de las
variables Var0, Var1, etc, que correspoden a cada ubicacin; por ejemplo para la ubicacin {0},
la variable que contiene valor que se escribir en esa ubicacin ser Var0
Apuntes de Clase
Pg. 26
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo: si deseo mostrar: El Valor de la Variable N es : 13,
Escribimos el siguiente cdigo:
Console.WriteLine("El Valor de la Variable N es : {0}", N)
Asumiendo que la variable N, contiene el valor 13
Se debe tener presente, que por cada variable o dato que queremos mostrar despus del texto,
tenemos que agregar {0}, en donde el 0 indica que numero de dato se va mostrar, mejor dicho
Visual Basic lo convierte en un array y este muestre el valor del array comenzando del 0, as
que si queremos mostrar 5 datos, tendremos que escribir {0}, {1},{2}, {3}, {4}, y si queremos
mostrar tres datos despus del texto tendremos que escribir {0}, {1},{2},{3}, {4}
4.3. Conversin de tipos de datos
El proceso de convertir el valor de un tipo de datos en otro se denomina conversin o casting.
Podemos convertir explcitamente valores de un tipo en otro antes de que sean utilizados,
evitando as errores en nuestro cdigo y haciendo que ste se ejecute ms rpidamente. Visual
Basic .NET tambin puede realizar algunas conversiones de tipos de datos automtica o
implcitamente, como convertir algunas cadenas a enteros. Sin embargo, las conversiones
implcitas pueden producir resultados imprevistos
4.3.1. Conversiones Explcitas
Las funciones de conversin permiten convertir explcitamente un valor de un tipo de datos a
otro.
En la siguiente tabla se describen las funciones de conversin:
Nombre de la funcin
CBool(expresion)
Boolean
CByte(expresion)
Byte
CChar(expresion)
Char
CDate(expresion)
Date
CDbl(expresion)
Double
CDec(expresion)
Decimal
CInt(expresion)
Integer
CLng(expresion)
Long
CObj(expresion)
CShort(expresion)
Object
Short
Apuntes de Clase
Pg. 27
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
CSng(expresion)
Single
valores
posibles,
las
fracciones se redondean.
Cualquier valor Single,
ver la tabla anterior para
los valores posibles.
Sintxis:
Para utilizar una funcin de conversin, se sita en el lado derecho de una instruccin de
asignacin, utilizando la siguiente sintaxis:
NombreVariable = CFuncin(Expresin)
El parmetro Expresin puede ser cualquier expresin vlida, como una variable, un resultado
de una funcin o un valor constante
Apuntes de Clase
Pg. 28
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 1. Crear un programa que encuentre el rea de un rectngulo
Solucin por Console
Inicio > Todos los programas > Microsoft Visual Basic > Crear ... Proyecto> Aplicacin de
consola > Nombre ................. > Ubicacin > Crear directorio para la solucin >
Aceptar
CDIGO:
Module Module1
Sub Main()
'VARIABLES
'Variables de Ingreso datos
Dim base, altura As Integer
'Variables de Salida o Resultados
Dim Superficie As Integer
'Ingreso de Datos
Console.Write("Ingrese la base: ")
base = Console.ReadLine
Console.Write("Ingrese la altura: ")
altura = Console.ReadLine
'Proceso o clculo del area
Superficie = base * altura
'Salida o Resultados
Console.WriteLine("El rea es = {0}", Superficie)
'Presionar una tecla para finalizar
Console.ReadLine()
End Sub
End Module
Salida o resultados:
Apuntes de Clase
Pg. 29
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Solucin por Formularios
Inicio > Todos los programas > Microsoft Visual Basic > Crear ... Proyecto> Aplicacin de
windows > Nombre ................. > Ubicacin > Crear directorio para la solucin >
Aceptar
Ejercicio 2. Crear un programa que encuentre el rea de un tringulo dados sus tres lados.
Formulario
Controles
Cinco Label
lblTitulo
lblLadoA
lblLadoB
lblLadoC
lblArea
Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtArea
Dos Button
btnCalcular
btnSalir
CDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim decA, decB, decC, decP, decArea As Decimal
decA = txtLadoA.Text
decB = txtLadoB.Text
decC = txtLadoC.Text
decP = (decA + decB + decC) / 2
decArea = Math.Sqrt(decP * (decP - decA) * (decP - decB) * (decP decC))
txtArea.Text = decAre
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 30
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 3. Eliminacin de material de la excavacin de una cimentacin
Formulario
Controles
Ocho Label
lblTitulo
lblAncho
lblProf
lblLong
lblCostoM3
lblExpancion
lblVolumen
lblCostoEM
Siete TextBox
txtAncho
txtProf
txtLong
txtCostoM3
txtExpancion
txtVolumen
txtCostoEM
Dos Button
btnCalcular
btnSalir
CDIGO
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblAncho, dblProf, dblLong, dblCostoM3, dblExpansion As Double
Dim dblVolumen, dblCostoEM As Double
dblAncho = txtAncho.Text
dblProf = txtProf.Text
dblLong = txtLong.Text
dblCostoM3 = txtCostoM3.Text
dblExpansion = txtExpansion.Text
dblVolumen = dblAncho * dblProf * dblLong * dblExpansion
dblCostoEM = dblCostoM3 * dblVolumen
txtVolumen.Text = dblVolumen
txtCostoEM.Text = dblCostoEM
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 31
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 4. Crear un programa que muestre el tiempo en das de permanencia en la
universidad.
Formulario
Controles
Nueve Label
lblTitulo
lblTIngreso
lblTSalida
lblTPerm
lblTIngeniero
lblProfesional
.. . .
Cinco Textbox
txtTIngreso
txtTSalida
txtTPerm
txtTIngeniero
txtProfesional
Dos Button
btnCalcular
btnSalir
CDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCalcular.Click
Dim decTPerm As Decimal
Dim decTIngeniero As Decimal
decTPerm = (20.. - txtTIngreso.Text) * 365
decTIngeniero = txtTSalida.Text * 365
txtTPerm.Text = decTPerm
txtTIngeniero.Text = decTIngeniero
txtProfesional.Text = decTPerm + decTIngeniero
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 32
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
4.4. Operadores: Aritmticos, de asignacin, relacionales, lgicos.
Visual Basic .NET dispone de los siguientes operadores:
Operadores Aritmticos
Los operadores aritmticos requieren operadores numricos (^ , * , / , \ , Mod, +, - ) y
producen resultados numricos.
Operador
Descripcin
Suma
Resta
Multiplicacin
Divisin
Mod
&
Concatenacin de Cadenas
Operador String
El operador de concatenacin (&) String requiere operadores String y producen resultados
String.
Operadores Comparativos
Los operadores Comparativos requieren operadores Comparativos ( = , >, <, >= , <= , < >) y
producen un resultado lgico (True or False).
Comparan datos y devuelven valores lgicos de verdadero o falso como resultado de la
comparacin.
Operador
Descripcin
Igual a
<
Menor que
a=b
a<b
>
Mayor que
<=
a<=b
>=
a>=b
<>
Apuntes de Clase
Ejemplo
Diferente a
Pg. 33
a>b
a<> b
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Operadores Lgicos
Los operadores Lgicos requieren operadores Lgicos (And, Or, Not, Xor, AndAlso, OrElse)
y producen un resultado lgico.
Operadores Lgicos
Descripcin
And
Or
Not
Xor
AndAlso
OrElse
Precedencia de Operadores
A continuacin se muestra el orden de precedencia/prioridad/jerarqua de los operadores en
Visual Basic .NET
Precedencia de Operadores
( )
^
*/
\
Mod
+-
Apuntes de Clase
Pg. 34
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
5. Estructuras de Decisin
5.1. Estructura de Decisin Simple o Condicional
Es es aquella que nos permite "preguntar" para tomar una decisin, pudiendo as actuar y
realizar acciones excluyentes entre s segn la respuesta obtenida. Estas respuestas siempre
sern Verdadero o Falso, pudiendo as tomar, uno de dos caminos diferentes.
SI <expresin condicional (lgica booleana)> ENTONCES
Sentencia Verdadera (V)
SINO
Sentencia Falsa (F)
FIN_SI
Las acciones se representan como sentencia V (cuando es verdadera), sentencia F (cuando es
falsa), despus que las acciones se realizan, el algoritmo continua su secuencia, pues la
estructura termina en FIN_SI
Ejemplo:
Si consideramos que A y B son nmero diferentes
SI (A > B) ENTONCES
Escribir . El Mayor es A.
SINO
Escribir . El Mayor es B.
FIN_SI
NO
Pseudocdigo
SI
C.L..
En Visual Basic
if .... Then .... Else ....End If
Si (condicin lgica)
If Condicin lgica
Then
Fin Si
Apuntes de Clase
End If
Pg. 35
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo 1. Ingresar un nmero y decir si es positivo o negativo.
n>0
0
Negativ
Positivo
o
El nmero que se ingrese por el teclado y que ser almacenado en la variable n, en la recta
numrica, puede ser positivo o negativo.
Anlisis del Problema:
Diagrama de Pasada
n
Entrada
Determinar
si el nmero n es
positivo o negativo
El nmero es
....................
es ..................
Pseudocdigo:
Programa EB_Positivo_Negativo;
Variables
entero n;
Inicio
Escribir("Ingrese un nmero: ");
Leer( n );
Si (n>0)
Escribir( "El nmero es positivo");
Si_no
Escribir( "El nmero es negativo");
Fin.
Proceso
Salida
Visual Basic
Cdigo en Visual Basic
' Variable
Dim n As Integer
' Ingreso de Datos
n = txtNumero.Text
'Proceso o clculo
If n > 0 Then
txtRespuesta.Text = "El
nmero es Positivo "
Else
txtRespuesta.Text = "El
nmero es Negativo "
End If
Apuntes de Clase
Pg. 36
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Si (condicin 1) entonces
Sentencias 1
sino
Si (condicin 2) entonces
Sentencias 2
sino
Si (condicin 3) entonces
Sentencias 3
Fin_Si
Fin_Si
Fin_Si
En Visual Basic
if .... Then .... ElseIf ....End If
Si (condicin lgica)
Sentencia Verdadera (V)
SiNo_Si (condicin lgica)
Sentencia Verdadera (V)
SiNo_Si (condicin lgica)
Sentencia Verdadera (V)
Si_No
Sentencia Falsa (F)
Fin Si
Apuntes de Clase
Pg. 37
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejemplo 2. Elaborar un algoritmo para leer 3 nmeros enteros diferentes entre si, y
determinar cual es el nmero mayor.
Solucin:
Pseudocdigo:
Programa EB_Mayor;
Variables
entero a,b,c, nMayor;
Inicio
Escribir("Ingrese tres nmeros: ");
Leer ( a ) ;
Leer ( b ) ;
Leer ( c ) ;
Si (a > b y a > c)
nMayor = a;
SiNo_Si ( b >c )
nMayor = b;
Si_No
nMayor = c;
Escribir(El mayor es = ,nMayor);
Fin.
Visual Basic
Cdigo en Visual Basic
' Variable
Dim a, b, c, nMayor As Integer
' Ingreso de Datos
a = txtNumA.Text
b = txtNumB.Text
c = txtNumC.Text
'Proceso o clculo
If a > b And a > c Then
nMayor = a
ElseIf b>c
nMayor = b
Else
nMayor = c
End If
txtRespuesta.Text = nMayor
Analizando este ejemplo se puede tener a una instruccin condicional dentro de otra, esto se
llama, instrucciones anidadas, pero hay una regla para hacer estas instrucciones anidadas, la
regla es que para cada Si que usen debe haber un Fin_Si, pero estas a la vez pueden tener un
Si_No, depende como lo usen, por ejemplo, para hacer un instruccin anidada tenemos que
tener obligado un SiNo_Si cuando la expresin lgica en el SI del que depende es falsa, y as
sucesivamente, bueno esto lo vamos a comprender mejor cuando lo implementemos en el
Visual Basic .NET
Ejercicio 1. Crear un programa que determine si un nmero es positivo, negativo o cero
Solucin por Console
CDIGO:
Module Module1
Sub Main( )
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Console.Write("Ingrese un nmero: ")
intNumero = Console.ReadLine
'Proceso o clculo
If intNumero = 0 Then
Apuntes de Clase
Pg. 38
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("El nmero ingresado es Cero ")
Else
If intNumero > 0 Then
Console.WriteLine("El nmero es Positivo ")
Else
Console.WriteLine("El nmero es Negativo ")
End If
End If
'Presionar una tecla para finalizar
Console.ReadLine( )
End Sub
End Module
Salida o resultados:
Controles
Un Label
lblNumero
Dos Textbox
txtNumero
txtRespuesta
Dos Button
btnCalcular
btnSalir
CDIGO
Public Class frmPosiNegaCero
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Me.txtNumero.Focus( )
intNumero = Me.txtNumero.Text
'Proceso o clculo
If intNumero = 0 Then
Me.txtRespuesta.Text = "El nmero es Cero "
Apuntes de Clase
Pg. 39
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Else
If intNumero > 0 Then
Me.txtRespuesta.Text = "El nmero es Positivo "
Else
Me.txtRespuesta.Text = "El nmero es Negativo "
End If
End If
Me.txtNumero.Text = ""
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Ejercicio 3. Validar ingreso de datos positivos. Crear un programa que muestre un mensaje si
el nmero ingresado es negativo o cero.
Formulario
Controles
Un Label
lblNumero
Un Textbox
txtValor
Dos Button
btnCalcular
btnSalir
CDIGO
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim intValor As Integer = 0
intValor = Me.txtValor.Text
If intValor <= 0 AndAlso intValor / 0 Then
MsgBox("Error de lgica, el numero debe ser Positivo")
Else
MsgBox("Continuar clculo")
End If
Me.txtValor.Text = ""
Me.txtValor.Focus( )
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
Apuntes de Clase
Pg. 40
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
End
End Sub
End Class
Ejercicio 4. Elaborar un programa que al ingresar los tres lados de un tringulo determine si
es escaleno, equiltero o isceles
Formulario
Controles
Cuatro Label
lblIngresar
lblLadoA
lblLadoB
lblLadoC
Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtRespuesta
Dos Button
btnCalcular
btnSalir
CDIGO
Public Class Form1
Private Sub btnCalular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalular.Click
Dim decLadoA, decLadoB, decLadoC As Decimal
decLadoA = txtLadoA.Text
decLadoB = txtLadoB.Text
decLadoC = txtLadoC.Text
If decLadoA < > decLadoB And decLadoA < > decLadoC And decLadoB
< > decLadoC Then
txtRespuesta.Text = "Tringulo Escaleno"
Else
If decLadoA = decLadoB And decLadoB = decLadoC Then
txtRespuesta.Text = "Tringulo Equiltero"
Else
txtRespuesta.Text = "Tringulo Isceles"
End If
End If
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 41
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 5. Elaborar un programa que al ingresar un nmero si es par vaya a la lista pares, si
el nmero es impar vaya a la lista impares y simultneamente nos muestre cuantos nmeros se
han ingresado a cada lista.
Formulario
Controles
Cinco Label
lblNumero
lblPares
lblImpares
lblCantidadPares
lblCantidadImpares
Tres Textbox
txtNumero
txtCantidadPares
txtCantidadImpares
Dos ListBox
lstPares
lstImpares
Dos Button
btnIngresar
btnCerrar
CDIGO
Public Class frmParImp
Private Sub btnIngresar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnIngresar.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero:")
Else
If Me.txtNumero.Text Mod 2 = 0 Then
Me.lstPares.Items.Add(Me.txtNumero.Text)
Else
Me.lstImpares.Items.Add(Me.txtNumero.Text)
End If
End If
Me.txtCantidadPares.Text = Me.lstPares.Items.Count( )
Me.txtCantidadImpares.Text = Me.lstImpares.Items.Count( )
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
Close( )
End Sub
End Class
Apuntes de Clase
Pg. 42
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 6. Elaborar un programa que al escribir un nmero, se seleccione la lista donde debe
ir y simultneamente nos muestre cuantos nmeros se han ingresado a cada lista.
Formulario
Controles
Cinco Label
lblNumero
lblLista1
lblLista2
lblCantidadLista1
lblCantidadLista2
Tres Textbox
txtNumero
txtCantidadLista1
txtCantidadLista2
Dos ListBox
lstLista1
lstLista2
Un Button
btnCerrar
Dos RadioButton
rbtLista1
rbtLista2
CDIGO
Public Class frmListadoNumeros
Private Sub rbtLista1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbtLista1.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero")
Me.txtNumero.Focus( )
Else
Me.lstLista1.Items.Add(Me.txtNumero.Text)
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End If
Me.txtCantidadLista1.Text = Me.lstLista1.Items.Count( )
End Sub
Private Sub rbtLista2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbtLista2.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un nmero")
Me.txtNumero.Focus( )
Else
Me.lstLista2.Items.Add(Me.txtNumero.Text)
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End If
Me.txtCantidadLista2.Text = Me.lstLista2.Items.Count( )
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 43
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 7. Elaborar una calculadora de cuatro operaciones utilizando la estructura if
anidada.
Formulario
Controles
Tres Label
lblNumeroA
lblNumeroB
lblOperador
Cuatro Textbox
txtNumeroA
txtNumeroB
txtOperador
txtRespuesta
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class Calculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
If strOperador = "+" Then
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "-" Then
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "*" Then
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "/" Then
If Me.txtNumeroB.Text = "0" Then
txtRespuesta.Text = "Error"
MsgBox("Ingrese un numero diferente de cero como divisor")
Else
dblRespuesta = dblNumeroA / dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
End If
End If
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumeroA.Text = ""
Me.txtNumeroB.Text = ""
Me.txtOperador.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumeroA.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 44
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 8. Encontrar el mayor de tres nmeros que se ingresan por el teclado.
Formulario
Controles
Cinco Label
lblTitulo
lblNumA
lblNumB
lblNumC
lblRespuesta
Cuatro Textbox
txtNumA
txtNumB
txtNumC
txtRespuesta
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmMayor
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim a, b, c, nMayor As Integer
a = Me.txtNumA.Text
b = Me.txtNumB.Text
c = Me.txtNumC.Text
If a > b And a > c Then
nMayor = a
ElseIf b > c Then
nMayor = b
Else
nMayor = c
End If
Me.txtRespuesta.Text = nMayor
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumA.Text = ""
Me.txtNumB.Text = ""
Me.txtNumC.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumA.Focus()
End Sub
End Class
PROBLEMA 1. Una empresa ofrece casas de inters social, bajo las condiciones siguientes:
Si los ingresos del comprador son menores a $ 1,000, la cuota inicial ser del 10% del costo
de la casa y el resto se distribuir en pagos mensuales, a pagar en veinte aos. Si los ingresos
del comprador son $ 1,000 o ms, la cuota inicial ser del 20% del costo de la casa y el resto
se distribuir en pagos mensuales a pagar en 12 aos. De acuerdo al costo de la casa y los
ingresos del comprador, determinar la cuota inicial y la cuota mensual.
Apuntes de Clase
Pg. 45
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
DIAGRAMA DE FLUJO
INICIO
Costo de la Casa:
CostoCasa
Ingresos del Comprador:
Ingresos
F
V
Ingresos<1000
CuotaInicial=0.2*CostoCasa
CuotaInicial=0.1*CostoCasa
Pago Mensual=0.8*CostoCasa/12
Pago Mensual=0.9*CostoCasa/20
FIN
Apuntes de Clase
Pg. 46
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("Pago Mensual = {0}", dblPagoMensual)
Console.ReadLine()
End Sub
End Module
Apuntes de Clase
Pg. 47
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
INICIO
Ingrese el Total de Compras:
Compras
F
V
Compras<=50
0
Descuento=0.12*Compr
as
Descuento=0.08*Compras
SubTotal=ComprasDescuento
SubTotal=ComprasDescuento
Impuesto=0.18*SubTotal
Impuesto=0.18*SubTotal
Total=SubTotal+Impuesto
Total=SubTotal+Impuesto
Compras , Compras
Descuento: , Descuento
Impuesto: , Impuesto
Total: , Total
FIN
Apuntes de Clase
Pg. 48
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
Apuntes de Clase
Pg. 49
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
Apuntes de Clase
Pg. 50
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
SOLUCION POR FORMULARIOS
PROBLEMA 5. Escribir un programa que lea tres nmeros y los muestre ordenados de
mayor a menor.
SOLUCION POR CONSOLE
Module Module1
Sub Main()
'VARIABLES
Dim intNumA, intNumB, intNumC As Integer
'ENTRADA
Console.Write("Ingrese el nmero A: ")
intNumA = Console.ReadLine
Console.Write("Ingrese el nmero B: ")
intNumB = Console.ReadLine
Console.Write("Ingrese el nmero C: ")
intNumC = Console.ReadLine
'PROCESO
If intNumA > intNumB Then
If intNumB > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumA, intNumB, intNumC)
ElseIf intNumA > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumA, intNumC, intNumB)
Else
Apuntes de Clase
Pg. 51
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
Apuntes de Clase
Pg. 52
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
Apuntes de Clase
Pg. 53
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 2
.
.
Case Valor n
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor n
.
.
Exit Select
Transfiere inmediatamente el control a la
sentencia que sigue a End Select
.
.
.
Case Is OperadorDeComparacin Nmero
Sentencias a ejecutar
en caso que OperadorDeComparacin sea =, < >, <, <=, > o >=
Case Else
Sentencias X (Si no se cumple ninguna de las listas de expresiones)
End Select
Variable_Expresin . Debe evaluarse en uno de los tipos de datos elementales (Boolean,
Byte, Char, Date, Double, Decimal, Integer, Long, Object, Short, Single o String).
Valor 1, Valor 2, , Valor n : lista de valores que coinciden para Variable_Expresin. Los
valores se separan mediante comas. Cada clusula de valor puede tomar una de las siguientes
formas:
Numero1 To Numero2
[ Is ] operadorDeComparacin Numero
Numero
Utilice la palabra clave To para especificar los lmites de un intervalo de valores que
coinciden para Variable_Expresin. El valor de Numero1 debe ser menor o igual que el valor
de Numero2.
Utilice la palabra clave Is con un operador de comparacin (=, <>, <, <=, > o >=) para
especificar una restriccin en los valores coincidentes para Variable_Expresin.
Las valores pueden ser de cualquier tipo de datos, siempre que sean implcitamente
convertibles al tipo de Variable_Expresin y el correspondiente operadorDeComparacin sea
vlido para los dos tipos con los que se utilice.
Sentencias X
Opcional. Una o ms instrucciones despus de Case que se ejecutan si Variable_Expresin no
coincide con cualquier clusula en Valores.
End Select
Termina un bloque Select...Case.
Apuntes de Clase
Pg. 54
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Si Variable_Expresin coincide en ms de un Valor Case, slo se ejecutan las Sentencias que
siguen a la primera coincidencia.
Es recomendable tener una instruccin Case Else en el bloque Select Case para controlar los
valores de Variable_Expresin imprevistos. Si ninguna clusula Case Valor coincide con
Variable_Expresin y no existe ninguna instruccin Case Else, la ejecucin contina en la
instruccin que sigue a End Select.
Se pueden utilizar varias expresiones o intervalos en cada clusula Case. Por ejemplo, la lnea
siguiente es vlida: Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparacin Is.
Tambin puede especificar intervalos y varias expresiones para cadenas de caracteres. En el
siguiente ejemplo, Case coincide con cadenas que sean exactamente iguales a "manzana",
cadenas con valores entre "naranja" y "sanda" en orden alfabtico y con el valor actual de
Las instrucciones Select Case pueden anidarse. Cada instruccin Select Case anidada debe
tener una instruccin End Select coincidente.
Si no necesita ejecutar ms instrucciones de un bloque Case o Case Else, puede salir del
bloque mediante una instruccin Exit Select. Esto transfiere inmediatamente el control a la
instruccin que sigue a End Select.
Ejemplo:
Select Case intNumero
Case 3: Sentencia o Instruccin a realizar
Case 6 To 11
Sentencias a ejecutar si intNumero est en el rango de 6 a 11
Case 14, 17
Sentencias a ejecutar si intNumero es 14 17
Case Is < 19
Sentencias a ejecutar si intNumero < 19
Case Is = 31, 33, 35, 40
Sentencias a ejecutar si intNumero = 31 33 35 40
Case Is > 50
Sentencias a ejecutar si intNumero > 50
Case 1 To 4, 7 To 9, 11, 13, Is > maximoNumero
Sentencias a ejecutar si intNumero est en el rango de 1 a 4, 7 a 9
si intNumero es 11, 13
Case Else
Instruccin a realizar
End Select
En el ejemplo, hacemos varias comprobaciones, Case 3 (si intNumero vale 3) se ejecutar la
instruccin que sigue despus de los dos puntos (podemos ejecutar solo una instruccin
despus de los dos puntos, si en caso hubiera mas instrucciones a ejecutar, estas instrucciones
las pondramos en la parte inferior del Case),
Si tiene un valor en un rango de 6 a 11 ejecutara la instruccin que se encuentra en su inferior, o
Si tiene el valor de 14 17, ejecutara la instruccin que se encuentra en su inferior.
Apuntes de Clase
Pg. 55
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Cuando queremos comprobar si el valor es mayor (o cualquier otra comprobacin), usaremos
Is, como en el caso de Is > 50, esto es lo mismo que comprobar si intNumero es mayor que 50,
realizar la instruccin que se encuentra en su inferior. Se pueden utilizar varias expresiones o
intervalos en cada Case 1 To 4, 7 To 9, 11, 13, Is > maximoNumero
Por ultimo si no cumple ninguna comparacin, existe el Case Else, que ejecutara su instruccin,
siempre y cuando no se cumpla ninguna expresin en los dems Case.
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparacin Is.
Ejercicio 1. Elaborar una calculadora de cuatro operaciones utilizando la estructura Select
Case.
Formulario
Controles
Tres Label
lblNumeroA
lblNumeroB
lblOperador
Cuatro Textbox
txtNumeroA
txtNumeroB
txtOperador
txtRespuesta
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmCalculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
Select Case strOperador
Case "+"
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "-"
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "*"
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "/"
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 = ""
Apuntes de Clase
Pg. 56
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Me.txtOperador.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumeroA.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Ejercicio 2. Se desea evaluar el rendimiento a los alumnos de una asignatura en la que tienen
tres notas, utilizando la estructura Select Case.
Formulario
Controles
Sis Label
lblTitulo
lblNota1
lblNota2
lblNota3
lblPromedio
lblRendimiento
Cinco Textbox
txtNota1
txtNota2
txtNota3
txtPromedio
txtRendimiento
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmEvaluacion
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblNota1, dblNota2, dblNota3, dblPromedio As Double
dblNota1 = Me.txtNota1.Text
dblNota2 = Me.txtNota2.Text
dblNota3 = Me.txtNota3.Text
dblPromedio = Math.Round((dblNota1 + dblNota2 + dblNota3) / 3)
Me.txtPromedio.Text = dblPromedio
Select Case dblPromedio
Case Is < 0
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
Apuntes de Clase
Pg. 57
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBorrar.Click
Me.txtNota1.Text = ""
Me.txtNota2.Text = ""
Me.txtNota3.Text = ""
Me.txtPromedio.Text = ""
Me.txtRendimiento.Text = ""
Me.txtNota1.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
PROBLEMA 3. Escribir un programa que lea un nmero entero positivo y que efecte los
siguientes clculos: Si el nmero termina en 0, 3, 7 u ocho, cambie su valor al doble; si
termina en 1 9, cambie su valor a la dcima parte; de otra manera mantiene su valor. Utilice
una estructura de decisin condicional mltiple.
Apuntes de Clase
Pg. 58
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
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
End Sub
End Module
Apuntes de Clase
Pg. 59
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
6. Estructuras de Repeticin.
6.1. Contadores y acumuladores.
Contador: Es un tipo de asignacin especial en la cual a la variable se asigna su valor
incrementado en una cantidad constante que en este caso ser igual a uno: n = n + 1,
colocado en un bucle se generan los nmeros solicitados.
Ejemplo
n = n +1
n=n+1
n = 0 n = 0 +1 = 1;
n = 1 n = 1 +1 = 2;
n = 2 n = 2 +1 = 3;
as sucesivamente en cada
ciclo.
Apuntes de Clase
Pg. 60
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Next [contador]
Donde:
contador
Variable numrica que se utiliza como contador en el bucle.
inicio
Valor inicial del contador
fin
Valor final del contador
incremento
Opcional. Cantidad en la que cambia el contador cada vez que se ejecuta un
ciclo en el bucle. Si no se especifica el incremento, el valor predeterminado de
incremento es uno.
sentencias
Opcional. Una o ms sentencias ubicadas entre For y Next, que se ejecutan un
nmero especificado de veces.
Exit For, permite salir del bucle For antes que este finalice. Esta sentencia con
frecuencia se utiliza en la evaluacin de alguna condicin empleando una
estructura condicional If ...Then.
Se pueden anidar bucles For ... Next, colocando un bucle For dentro de otro. En cada bucle, la
variable contador debe ser nica. La siguiente construccin es correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Ejemplo. Programa que calcula la suma y promedio de un rango de enteros.
Anlisis del Problema
Por el teclado ingresamos dos nmeros, los que se almacenan en las variables prim y ultimo;
si el contenido de la variable prim es mayor que el contenido de la variable ultimo,
cambiamos el contenido de las variables de tal manera que el contenido de la variable ultimo
sea mayor, para esto utilizamos una variable auxiliar denominada temp la siguiente manera:
temp = prim
prim = ultimo
ultimo = temp
En el bucle Para ( ), inicializamos la variable de control i = prim,
la condicin lgica ser i ultimo,
el incremento de la variable de control ser de uno en uno;
en el bloque de sentencias colocaremos un contador (conta), que contar cuantos nmeros se
estn sumando en la variable sum.
El promedio se calculara dividiendo el contenido de la variable sum entre el contenido de la
variable conta.
Algoritmo
Programa EB_Suma_Promedio_RE;
Variables
entero i, conta = 0;
real sum = 0.0;
entero prim, ultimo, temp;
Inicio
Escribir ( "Ingrese un numero entero: " ) ;
Leer( prim ) ;
Apuntes de Clase
Pg. 61
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Escribir ( "Ingrese otro numero: " ) ;
Leer ( ultimo ) ;
Si (prim > ultimo)
Inicio
temp = prim;
prim = ultimo;
ultimo = temp;
Fin_Si
Para (i = prim hasta ultimo )
inicio
conta = conta +1;
sum = sum + i;
fin_para;
Escribir ( "Suma de enteros desde " , prim , " al " , ultimo , " = " , sum ) ;
Escribir ( "Promedio = " , sum / conta ) ;
Fin.
Ejercicio 1. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, por el teclado se ingresarn los nmeros que determinen el rango.
Formulario
Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmSumaProducto
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal As Integer
Dim intContador, intSuma, intPromedio, i As Integer
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
For i = intPrimero To intUltimo
intSuma += i
Apuntes de Clase
Pg. 62
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
intContador += 1
Next
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Controles
Dos Label
lblTitulo
lblNumero
Text Box
txtNumero
List Box
lstTabla
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmTablaMultiplicar
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intMultiplicando, i, intProducto As Integer
Dim strResultado As String
intMultiplicando = Me.txtNumero.Text
For i = 1 To 12
intProducto = i * intMultiplicando
strResultado = i & " * " & intMultiplicando & " = " & intProducto
Me.lstTabla.Items.Add(strResultado)
Next
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumero.Text = ""
Me.lstTabla.Items.Clear()
Me.txtNumero.Focus()
End Sub
Apuntes de Clase
Pg. 63
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 64
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
sentencia n ;
Fin Hacer
El flujo del programa al encontrar esta estructura de repeticin evala la condicin lgica, si
es falsa se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle, as
sucesivamente Hasta que la condicin lgica sea verdadera.
Tambin podra tomar esta forma:
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Hasta que ( condicin )
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condicin, si al evaluarla la condicin lgica es falsa se repite el conjunto
de sentencias o bloque de sentencias que contiene el bucle, as sucesivamente Hasta que la
condicin lgica sea verdadera.
6.4. En Visual Basic el bucle Do . . . Loop
Repite un bloque de instrucciones Mientras o Hasta que una condicin lgica sea verdadera
Sintaxis
Do [ { While / Until } condicin ]
Instruccin 1
.
.
Instruccin n
[Exit Do]
Instruccin 1
.
.
Instruccin n
Loop
Apuntes de Clase
Pg. 65
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Donde:
condicin Expresin lgica
Instruccines Opcional. Una o ms sentencias ubicadas entre Do y Loop, que se ejecutan
mientras o hasta que se cumpla o la condicin lgica sea verdadera.
Exit Do, permite una salida alternativa del bucle Do antes que este finalice.
Esta sentencia con frecuencia se utiliza en la evaluacin de alguna condicin
empleando una estructura condicional If ...Then, la Instruccin Exit Do
transfiere el control del flujo del programa a la instruccin que sigue
inmediatamente a la Instruccin Loop
Se puede anidar uno o mas bucles Do . . . Loop, dentro de otro bucle Do . . . Loop
Ejemplo. Elaborar un programa para una tabla de multiplicar de un nmero cualquiera
ingresado por el teclado, utilizando el bucle Hacer - Mientras.
Anlisis del Problema
Necesitamos generar nmeros del 1 al 12 (un contador), que al ser multiplicados por el
nmero de la tabla que deseamos ver, obtendremos el resultado esperado.
En el bucle hacer mientras colocamos como bloque de sentencias la variable contador cont
y a la variable prod = cont * mult, el contenido de la variable mul se ingresa por el teclado,
mostramos los resultados obtenidos.
Algoritmo
Programa EB_Tabla_Multiplicar ;
Variables
Entero cont = 0, mult, prod ;
Inicio
Escribir ( "Ingrese el numero de la tabla que desee ver : " ) ;
Leer ( mult ) ;
Escribir ( "TABLA DE MULTIPLICAR DEL NUMERO " , mult ) ;
Hacer
cont = cont + 1 ;
prod = cont * mult;
Escribir (cont ," * ", mult ," = " , prod ) ;
Mientras (cont<12);
Fin.
Apuntes de Clase
Pg. 66
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 3. Elaborar un programa que encuentre la suma y el promedio de un rango de enteros, utilizando la
estructura Do ..... While.
Formulario
Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmSumaPromedio
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal, intContador, intSuma, i As Integer
Dim intPromedio As Double
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
i = intPrimero
Do
intSuma + = i
intContador + = 1
i+=1
Loop While i < = intUltimo
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 67
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Ejercicio 4. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, utilizando la estructura Do ..... Until.
Formulario
Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmSumaPromedio
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal, intContador, intSuma, i As Integer
Dim intPromedio As Double
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
i = intPrimero
Do
intSuma + = i
intContador + = 1
i+=1
Loop Until i > intUltimo
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnSalir.Click
End
End Sub
End Class
Apuntes de Clase
Pg. 68
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
CAPITULO III
7. FUNCIONES Y PROCEDIMIENTOS
7.1. Funciones Matemticas Predefinidas.
Una de sus Clases es System.Math la cual soporta los siguientes mtodos
Mtodo
Abs(n)
Descripcin
Calcula el valor absoluto de n
Exp(n)
Apuntes de Clase
Pg. 69
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
un objeto cuyo tipo de dato depende del evento que es manejado. Ambos parmetros
son pasados por valor.
Si un parmetro es declarado por referencia ByRef el parmetro apunta al argumento
actual. Por default los argumentos se pasan por valor ByVal el parmetro es una copia
local del argumento.
2. Sub procedures, contiene cdigo que el desarrollador crea para realizar una accin
lgica.
3. Function procedures, contiene cdigo que el desarrollador crea para realizar una
accin lgica y regresa un valor, el valor que una funcin enva de regreso al
programa que lo invoco es llamado valor de regreso. Para regresar un valor se utiliza
la sentencia Return.
Ejercicio 1. Elaborar un programa usando procedimientos, que muestre un saludo por la
noche: 1. En Castellano. 2. En Ingls. 3. En Portugus.
Module Module1
Dim opc As Integer
Sub Main( )
Console.Write("PROCEDIMIENTOS")
Console.WriteLine( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
Call OPCIONES( )
Console.WriteLine("Fin del Programa")
Console.ReadLine( )
End Sub
Sub MENU()
Console.WriteLine("{0}SALUDO POR LA NOCHE", Space(30))
Console.WriteLine("{0}Men de Opciones", Space(32))
Console.WriteLine("{0}[1] En Castellano", Space(10))
Console.WriteLine("{0}[2] En Ingls", Space(10))
Console.WriteLine("{0}[3] En Portugus", Space(10))
Console.WriteLine("{0}[4] Salir", Space(10))
End Sub
Sub OPCIONES( )
While opc < > 4
Select Case opc
Case 1
Call Castellano( )
Console.ReadLine( )
Case 2
Call Ingles( )
Console.ReadLine( )
Case 3
Call Portugues( )
Console.ReadLine( )
Apuntes de Clase
Pg. 70
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Case Else
Console.WriteLine("Opcin equivocada elija correctamente")
Console.ReadLine( )
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
End Select
Console.Clear( )
Call MENU( )
Console.Write("Elegir una opcin = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
End While
End Sub
Sub Castellano( )
Console.Write("Buenas Noches")
Console.ReadLine( )
End Sub
Sub Ingles( )
Console.Write("Good Nigth")
Console.Read( )
End Sub
Sub Portugues( )
Console.Write("Boa Noite")
Console.ReadLine( )
End Sub
End Module
Ejercicio 2. Elaborar un programa que muestre un men de opciones para: 1. Mostrar los
nmeros pares menores que el nmero que se ingrese por el teclado, 2. Si el nmero ingresado
por el teclado es primo, 3. Calcular el factorial del nmero ingresado por el teclado.
CDIGO
Module Module1
'Programa que muestra un men de opciones
Sub Main()
Dim opc, Numero As Integer
Call Menu()
Console.WriteLine()
Console.Write("Elija Su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Pares(Numero)
Case 2
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call EsPrimo(Numero)
Apuntes de Clase
Pg. 71
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Case 3
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Factorial(Numero)
Case Else
Console.WriteLine("Opcin No Vlida")
Console.Clear()
Call Menu()
End Select
Console.WriteLine()
Console.Write("Elija Su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine("{0}{1}", Space(30), "MEN DE OPCIONES")
Console.WriteLine()
Console.WriteLine("[1] Pares")
Console.WriteLine("[2] Es Primo")
Console.WriteLine("[3] Factorial")
Console.WriteLine("[4] Salir")
Console.WriteLine()
End Sub
Sub Pares(ByVal Numero As Integer)
Dim i As Integer = 1
Console.WriteLine()
Console.WriteLine("Los Pares Menores que {0} Son: ", Numero)
Console.WriteLine()
While i < Numero
If i Mod 2 = 0 Then
Console.WriteLine("{0}", i)
End If
i = i + 1
End While
End Sub
Sub EsPrimo(ByVal Numero As Integer)
Dim Primo As Boolean
If Numero < 6 And Numero <> 4 Then
Primo = True
ElseIf Numero Mod 2 = 0 Or Numero Mod 3 = 0 Or Numero Mod 5 = 0 Then
Primo = False
Else
Primo = True
End If
Console.WriteLine()
If Primo = True Then
Console.WriteLine("El Nmero es Primo")
Else
Console.WriteLine("El Nmero No Es Primo")
End If
End Sub
Sub Factorial(ByVal Numero As Integer)
Dim k As Integer
Dim r As Long = 1
For k = 1 To Numero
r = r * k
Next
Console.WriteLine()
Apuntes de Clase
Pg. 72
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("El Factorial del Nmero es : {0}", r)
End Sub
End Module
Apuntes de Clase
Pg. 73
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Function Volumen(ByVal Num As Integer) As Double
Volumen = (4 * (3.14159 * (Math.Pow(Num, 3)))) / 3
End Function
Function Circunferencia(ByVal Num As Integer) As Double
Circunferencia = 2 * (3.14159 * Num)
End Function
End Module
8. ARRAYS Y ESTRUCTURAS
8.1. Arrays
Un arreglo es un tipo de asignacin especial en la cual las variables, tienen el mismo nombre y
diferente sub ndice.
8.1.1. Array Unidimensional
Un Array (arreglo) es un conjunto de variables que tienen el mismo nombre, diferente sub
ndice, que es lo que los diferencia e identifica y contienen el mismo tipo de dato.
Sintaxis:
5
A(0)
8
A(1)
A(2)
A(3)
Lmite inferior
A(0)
A(1)
4 elementos
A(2)
A(3)
Lmite superior es
igual al nmero de
elementos menos 1
i = 0, 1, 2, 3
Sintaxis:
Dim nombreVariable(NmeroDeElementos) As TipoDeDato
En efecto, tal como se puede apreciar, el array ser utilizable nicamente a partir de su
declaracin.
Un array unidimensional tiene las siguientes caractersticas:
El lmite inferior es cero y no se puede alterar.
El lmite superior es igual al nmero de elementos del vector menos uno.
Por ejemplo:
Dim A(3) As Integer
En este ejemplo, el nmero 3 que est dentro de los parntesis indica el nmero total de
elementos - 1 de que tendr el array, es decir el vector declarado tiene cuatro elementos:
Apuntes de Clase
Pg. 74
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
A(0), A(1), A(2) y A(3), que cada uno de ellos almacenar un nmero entero por el tipo de
dato declarado
Ejercicio 1. Ingresar y mostrar Datos de un Vector.
CDIGO:
Module Module1
Sub Main()
Dim nElementos, i, n As Integer
Console.Write("Ingresar nmero de elementos del Vector A(): ")
nElementos = Console.ReadLine
n = nElementos - 1
Dim A(n) As Integer
For i = 0 To n
Console.Write("A[ {0} ]= ", (i + 1))
A(i) = CInt(Console.ReadLine)
Next
Console.WriteLine("Elementos del Vector A")
For i = 0 To n
Console.Write("
{0}", A(i))
Next
Console.WriteLine()
Console.WriteLine()
'Determinar el nmero de elementos del Vector utilizando el mtodo Length
Console.WriteLine("Elementos del array A()= {0}", A.Length)
'Visualizar los elementos del Vector utilizando For Each
Console.WriteLine("Recorrer o visualizar el contenido del Vector A(),
usando For Each ")
For Each i In A
Console.WriteLine(i)
Next
Console.WriteLine()
Console.WriteLine()
'Asignacin de Datos o Valores al declarar el VECTOR B
Dim B() As Integer = {10, 52, 85, 37, 14}
'Determinar el numero de elementos del Vector utilizando el mtodo Length
Console.WriteLine("Elementos del array B()= {0}", B.Length)
'Visualizar los elementos del Vector utilizando For Each
Console.WriteLine("Recorrer o visualizar el contenido del Vector B(),
usando For Each ")
For Each i In B
Console.WriteLine(i)
Next
'
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
End Sub
End Module
Apuntes de Clase
Pg. 75
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Apuntes de Clase
Pg. 76
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
End
End Sub
End Class
A(0j) . . . A(0n)
A(1j) . . . A(1n).
.
.
.
.
Elemento generatriz
.
.
A(ij) . . . A(0n)
.
.
.
.
i-sima fila
.
.
A(mj) . . . A(0n)
i = 0, 1, 2, 3, . . . , m filas
j = 0, 1, 2, 3, . . . , n columnas
Sintaxis:
Dim nombreVariable(a, b) As TipoDeDato
Como vemos, hay dos letras dentro de los parntesis, separadas por comas, lo cual indica que
el array es bidimensional, puesto que los dos subndices del mismo se separan uno de otro por
comas. Al igual que en los arreglos unidimensionales, cada uno de los subndices tienen las
siguientes caractersticas:
El lmite inferior es cero y no se puede alterar.
El lmite superior es igual al nmero de elementos menos uno.
Ejemplo:
Dim A(1,3) As Integer
Este array es bidimensional o matriz, los sub ndices indican que la matriz tiene los siguientes
elementos
A(0,0) A(0,1) A(0,2) A(0,3)
A(1,0) A(1,1) A(1,2) A(1,3)
Cada uno de los elementos de la matriz almacenar un nmero entero tal como fue declarado.
Apuntes de Clase
Pg. 77
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
INGRESO DE DATOS DE UNA MATRIZ
INICIO
Ingresar nmero de filas de la Matriz A[m][n]:
nFilas
Ingresar nmero de columnas de la Matriz A[m][n]:
nColumnas
m = nFilas -1
n = nColumnas -1
Para i = 1 hasta m
Para j = 1 hasta n
A[, i, ] [ , j, ]=
A[ i ] [ j ]
FIN
Apuntes de Clase
Pg. 78
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
MOSTRAR DATOS DE UNA MATRIZ
INICIO
Ingresar nmero de filas de la Matriz A[m][n]:
nFilas
Ingresar nmero de columnas de la Matriz A[m][n]:
nColumnas
m = nFilas -1
n = nColumnas -1
Para i = 1 hasta m
Para j = 1 hasta n
, A[ i ] [ j ]
FIN
Apuntes de Clase
Pg. 79
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.Write("Ingresar nmero de Columnas de la Matriz A[m][n]: ")
numeroColumnas = Console.ReadLine
n = numeroColumnas - 1
Dim A(m, n) As Integer
For i = 0 To m
For j = 0 To n
Console.Write("A[ {0} ][ {1} ]= ", (i + 1), (j + 1))
A(i, j) = CInt(Console.ReadLine)
Next
Next
Console.WriteLine("Elementos de la Matriz A[m][n]")
For i = 0 To m
Console.WriteLine()
For j = 0 To n
Console.Write(" {0}", A(i, j))
Next
Next
Console.WriteLine()
Console.WriteLine()
'Determinar el nmero de elementos de la Matriz utilizando el mtodo Length
Console.WriteLine("El nmero de elementos del array A(m,n)= {0}", A.Length)
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("MATRIZ B")
'Asignacin de Datos o Valores al declarar la MATRIZ B
Dim B(2, 2) As Integer
B(0, 0) = 23
B(0, 1) = 34
B(0, 2) = 56
B(1, 0) = 89
B(1, 1) = 23
B(1, 2) = 65
B(2, 0) = 59
B(2, 1) = 78
B(2, 2) = 88
'Determinar el nmero de elementos de la Matriz utilizando el mtodo Length
Console.WriteLine("El nmero de elementos del array B(m,n)= {0}", B.Length)
Console.WriteLine("Recorrer o visualizar el contenido de la Matriz B ")
For i = 0 To 2
Console.WriteLine()
For j = 0 To 2
Console.Write(" {0}", B(i, j))
Next
Next
Console.WriteLine()
Console.WriteLine("Presione Enter para finalizar")
Console.ReadLine()
End Sub
End Module
Apuntes de Clase
Pg. 80
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
8.2. Estructuras: Structure
Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que permiten
tener mtodos, propiedades, etc., la diferencia principal entre las clases y las estructuras es
que stas ltimas son tipos por valor, mientras que las clases son tipos por referencia. Las
estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y
tambin dentro de otras estructuras e incluso dentro de clases y mdulos.
Ejercicio 3. Elaborar un programa que encuentre el rea y permetro de distintos tipos de
triangulo, utilizando una estructura, procedimientos, y funciones (Sub y Function)
CDIGO:
Module Module1
Structure Triangulo
Dim a, b, c, p, h As Double
Sub TrianRec(ByVal d As Double, ByVal e As Double)
a=d
b=e
End Sub
Sub TrianNor(ByVal d As Double, ByVal e As Double, ByVal f As Double)
a=d
b=e
c=f
End Sub
Function AreaTrianRec() As Double
Return (a * b) / 2
End Function
Function AreaTrianNor() As Double
p = (a + b + c) / 2
Return Math.Sqrt(p * (p - a) * (p - b) * (p - c))
End Function
Function PeriTrianRec() As Double
h = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2))
Return h + a + b
End Function
Function PeriTrianNor() As Double
Return a + b + c
End Function
End Structure
Sub Main()
Dim Rec, Nor As Triangulo
Dim n, a, b, c As Double
Call Menu()
Console.Write("Elija una Opcin ==> ")
n = CDbl(Console.ReadLine)
Console.WriteLine()
While n <> 3
Select Case n
Case 1
Console.Write("Ingrese la altura: ")
a = CDbl(Console.ReadLine)
Console.Write("Ingrese la base: ")
b = CDbl(Console.ReadLine)
Rec.TrianRec(a, b)
Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianRec)
Apuntes de Clase
Pg. 81
Facultad de Ingeniera
Visual Basic . Net
_____________________________________________________
Console.WriteLine("El permetro del triangulo es: {0}", Rec.PeriTrianRec)
Case 2
Console.Write("Ingrese el primer lado: ")
a = CDbl(Console.ReadLine)
Console.Write("Ingrese el segundo lado: ")
b = CDbl(Console.ReadLine)
Console.Write("Ingrese el tercer lado: ")
c = CDbl(Console.ReadLine)
Nor.TrianNor(a, b, c)
Console.WriteLine("El rea del triangulo es: {0}", Nor.AreaTrianNor)
Console.WriteLine("El permetro del triangulo es: {0}", Nor.PeriTrianNor)
Case Else
Console.WriteLine("Opcin no Vlida")
End Select
Console.ReadLine()
Console.Clear()
Call Menu()
Console.Write("Elija una Opcin ==> ")
n = CDbl(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} MEN DE OPCIONES", Space(25))
Console.WriteLine()
Console.WriteLine("{0} [1] Halla el rea y el permetro de un
triangulo rectangulo", Space(10))
Console.WriteLine("{0} [2] Halla el rea y el permetro de un
triangulo normal", Space(10))
Console.WriteLine("{0} [3] Salir", Space(10))
Console.WriteLine()
End Sub
End Module
Apuntes de Clase
Pg. 82