Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS ESTADISTICA E
INFORMATICA
INGENIERO CIVIL
CAPITULO I
DISEO DE PROGRAMAS
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
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.
Algoritmo:
Inicio
ENTRADA (Datos) . : base y altura.
Apuntes de Clase Pg. 3 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
PROCESO (Transformacin): calcular Superficie = base * altura.
SALIDA (Resultados): mostrar El rea es = , Superficie
Fin.
1.3. Herramientas para escribir algoritmos:
La estructura de un algoritmo se puede representar en un diagrama estructurado en forma
de bloques, donde se muestran las diferentes tareas que deben ser ejecutadas y su relacin
entre ellas. Entre otras tenemos las siguientes herramientas:
Diagrama de Pasada
Diagramas de flujo.
Pseudocdigos.
Diagramas de Nassi-Sneiderman (N-S) o de Chapin.
Permite visualizar lo que se desea realizar, indicando que datos se necesitan, que se desea
ejecutar y que resultados de salida se esperan. Ponerse en el lugar del computador: que
resultados se debe entregar?, que datos necesito para entregar los resultados?
El flujo lgico del algoritmo se muestra en un dibujo como una representacin grfica del
algoritmo. Los diagramas de flujo han sido la herramienta de programacin por excelencia.
Tienen una gran limitacin son difciles de actualizar y complejos de leer si ocupan varias
pginas, cuando se han de modificar los diagramas de flujo resulta una tarea difcil
precisamente por su carcter grfico.
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).
Inicio
Ingresar la base:
base
Ingresar la altura:
altura
El rea es = , Superficie
Fin
1.3.3. Pseudocdigo
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.
Programa EB_Area_del_rectngulo;
Variables:
base, altura, Superficie tipo entero;
S=1+2+3+...+n
Pseudocdigo:
Programa EB_Suma_nmeros_naturales;
Variables
n, suma tipo real;
Inicio
Leer n;
suma 0;
Para i 1 hasta n hacer
suma suma+i;
Fin_para;
Escribir "La suma de los n primeros nmeros es: ", suma;
Fin.
Las palabras reservadas Inicio, Leer, Para, hasta, hacer, Escribir; que estn
subrayadas describen las estructuras de control fundamentales y procesos que se deben
realizar. Es importante hacer notar la forma de escribir el pseudocdigo el identado (sangrado
o justificado a la izquierda) permite dar mantenimiento (leer, corregir, escribir), a los
algortmos posteriormente.
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.
1. Ir al Banco de la nacin.
2. Comprar recibo.
3. Ir al RENIEC.
4. Regresar a casa.
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.
1 Inicio
2 Ingresar la base :
3 base
4 Ingresar la altura:
5 altura
7 El rea es = , Superficie
8 Fin
Pseudocdigo
Programa EB_Area_Rectngulo;
Variables
base, altura, Superficie de tipo entero ;
(1) Inicio
(2) Escribir ( Ingresar base : ) ;
(3) Leer ( base ) ;
(4) Escribir ( Ingresar altura : ) ;
(5) Leer ( altura ) ;
(6) Superficie = base * altura ;
(7) Escribir ( El area es = , Superficie );
(8) Fin
V A R I AB L E S
PASOS SALIDA
base altura Superficie
1. Inicio
2.Escribir Ingresar la base :
7
3. Leer 7 Enter
4.Escribir Ingresar la altura :
9
5.Leer 9 Enter
7. El rea es = 63
8. Fin
Ejercicio 2. Crear un programa que encuentre el rea de un tringulo dados sus tres lados.
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminacin de
material de la excavacin de una cimentacin. Tener en cuenta el coeficiente de
expansin y el costo por metro cbico de eliminacin de material.
CAPITULO II
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
Visual Basic .Net ofrece numerosas caractersticas nuevas y mejoradas, como herencia,
interfaces y sobrecarga, la palabra clave Overrides, miembros compartidos y constructores,
que lo convierten en un eficaz Lenguaje de Programacin orientado a objetos. Ahora se
puede crear aplicaciones multiproceso y escalables utilizando subprocesamiento mltiple
explcito. Otra caracterstica nueva de Visual Basic .Net incluye el control estructurado de
excepciones, atributos personalizados y compatibilidad con CLS (Common Language
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
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.
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.
Objeto se llama as a cada ejemplar de una clase determinada. Por ejemplo, en un programa
puede haber varios botones, cada uno de los cuales es un objeto del tipo de control Button,
que sera la clase.
Apuntes de Clase Pg. 14 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades.
Ejemplo : Una caja de texto TextBox1, en la cual podemos escribir cualquier lnea es un
objeto de la clase TextBox.
Control Prefijo
Button btn
Label lbl
PictureBox pic
Timer tmr
Text Box txt
List Box lst
Combo Box cbo
Check Box chk
Radio Button rad
2.2.5. Propiedades.
Son los atributos o caractersticas que posee un objeto Ejemplo: definicin del aspecto grfico
del formulario (ventana de Windows) tamao, color de fondo, posicin, tipo y tamao de
letra, etc. y su forma de responder a las acciones del usuario (si est activo o no).
Cada tipo de control tiene un conjunto de propiedades que tienen un nombre que viene
definido por el lenguaje. Por lo general, las propiedades de un objeto son datos que tienen
valores lgicos (True, False) o numricos concretos, propios de ese objeto y distintos de las
de otros objetos de su clase. As pues, cada clase, tipo de objeto o control tiene su conjunto de
propiedades, y cada objeto o control concreto tiene unos valores determinados para las
propiedades de su clase. Casi todas las propiedades de los objetos pueden establecerse en
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:
Variable = objeto.Propiedad
2.2.6. Mtodos.
Los mtodos son funciones internas de un determinado objeto que permite realizar acciones
sobre l o sobre otro objeto.
La sintxis en general es:
objeto.Mtodo
objeto.Mtodo (Valor)
Donde: objeto es el nombre del objeto que deseamos modificar, Mtodo es la orden (verbo) de
la accin que queremos utilizar para modificar el objeto y Valor es un argumento opcional
que utilizar el mtodo. Ejemplo txtNombre.SetFocus, es un mtodo que no tiene argumentos;
el mtodo Move mueve un objeto, colocndolo en una nueva posicin, en este ejemplo se
mueve el formulario frmPresentacin: frmPresentacin.Move (0,0)
2.2.7. Eventos.
Los eventos son hechos que son desencadenados en los formularios y controles por la accin
del usuario. A cada evento se puede asociar el cdigo de un procedimiento que responda
adecuadamente a la accin desencadenada. Los eventos son los mensajes o solicitudes que se
envan a los objetos de Visual Basic.
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click,
movimiento del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al
producir el evento.
Un programa Visual Basic es un POE (Programa orientado a eventos).
Todo lo que hacemos en un programa Visual Basic est generado por medio de eventos
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.
Si se pudiera programar un globo, el cdigo de Visual Basic podra ser como el siguiente.
PROPIEDADES del globo, se establecen:
Globo.Color = Negro
Globo.Dimetro = 10
Globo.Inflado = True
Observe la sintaxis del cdigo: el objeto (Globo) seguido de la propiedad (Color) seguida
de la asignacin del valor (Negro). Podra modificar el color del globo desde el cdigo si
repitiera esta instruccin y sustituyera el valor por otro diferente. Las propiedades tambin
se pueden establecer en la ventana Propiedades mientras se est diseando la aplicacin.
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
3. Entorno de desarrollo
Es necesario tener instalado el Visual Studio .NET, al ejecutarlo se presenta una pgina de
inicio, en caso de no presentarse entonces de clic en Help/Show Start Page. En esta pgina ser
posible establecer su perfil, por ejemplo identificarse como Desarrollador Visual Studio o ms
especifico como Desarrollador Visual Basic con lo cual Visual Studio configura de inmediato el
entorno de desarrollo para programar en Visual Basic.
Para iniciar un nuevo proyecto, de clic en la opcin Projects y clic en el botn [New Project],
esta accin abre una ventana donde se indicar el archivo a abrir, los proyectos Visual Basic
.NET tiene la extensin .vbproj. Una vez que abre el projecto si la pgina de inicio estaba
visible continuar as y en el Explorador de Soluciones (Solution Explorer) se cargan los
archivos correspondientes al proyecto.
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.
Ejemplo:
Dim intInteger As Integer = 42
Dim sngSingle As Single = 39.345677653
Dim strString As String = "Facultad de Ingeniera"
Dim blnBoolean As Boolean = True
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 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.
Si no se define un tipo de dato para la variable, entonces asume el tipo de dato por default que
es Object.
Por ejemplo:
Dim decVolumen As Integer
La variable decVolumen tendr un valor inicial de 0
Pero si queremos que inicialmente valga 3500, podemos hacerlo de cualquiera de estas dos
formas:
Dim decVolumen As Decimal
decVolumen = 3500
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
Private
Se utiliza solo a nivel del modulo e indica que la variable es privada; es decir, solo va a ser
reconocida dentro del mdulo donde ha sido declarada.
Ejemplo:
Private strDireccion As String
Public
Se utiliza solo a nivel de mdulo e indica que la variable es pblica; es decir, va a ser
reconocida en toda la aplicacin.
Public dteFecha As Date
CONSTANTES
Nota: La definicin de las constantes puede empezar con las palabras Public o Private. Para que
sean pblicas o privadas. Por defecto son privadas.
Los dgitos encerrados entre llaves {0}, indican el lugar donde se escribir el contenido de las
variables Var0
Observamos que en la funcin Write y WriteLine, el texto que deseamos mostrar est entre
comillas. Escribimos {0}, {1}, etc, dentro de las comillas para mostrar la ubicacin del
contenido de una variable; despus de las comillas se escriben los nombres de las variables
Var0, Var1, etc, que corresponden a cada ubicacin; por ejemplo para la ubicacin {0}, la
variable que contiene su valor es Var0.
Ejemplo:
Si la variable N, contiene el valor 13,
Escribimos el siguiente cdigo:
Console.WriteLine("El valor de la variable es : {0}", N)
Mostrar:
El valor de la variable N es : 13
Se debe tener presente, que por cada variable o dato contenido en la variable que queremos
mostrar su contenido, en el texto, que debe estar entre comillas, escribimos {0}; despus de las
comillas escribimos Var0, {0} est asociado a la variable Var0, en donde el 0 indica que
nmero de variable o dato se va mostrar, Visual Basic lo convierte en un array y muestra el
valor de los elementos del array comenzando del 0, as que si queremos mostrar 5 datos,
tendremos que escribir {0}, {1},{2}, {3}, {4}, y si queremos mostrar dos datos tendremos que
escribir {0}, {1}
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
La palabra clave Me nos permite referirnos a cualquier elemento del formulario (propiedades,
mtodos, etc), desde dentro del propio formulario. Aunque no es necesario el uso de Me, se
recomienda por hacer ms fcil la lectura del cdigo; el propio IDE al generar el cdigo
utiliza esta palabra, lo cual es indicativo de su importancia.
CDIGO:
Module Module1
Sub Main()
'DECLARACIN DE VARIABLES
'Variables de Ingreso datos
Dim base, altura As Integer
'SALIDA o Resultados
Console.WriteLine("El rea es = {0}", Superficie)
Microsoft Visual Studio > Crear ... Proyecto> Aplicacin de windows > Nombre .................
> Ubicacin > Crear directorio para la solucin > Aceptar
Formulario Controles
Cuatro Label
lblTitulo
lblBase
lblAltura
lblArea
Tres Textbox
txtBase
txtAltura
txtArea
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO:
Public Class frmRect
'Proceso
intArea = intBase * intAltura
'Salida
txtArea.Text = intArea
End Sub
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
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
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
End Sub
Operadores Aritmticos
Operador Descripcin
+ Suma
- Resta
* Multiplicacin
/ Divisin
\ Divisin entera (parte entera de la divisin)
Mod Residuo (resto de la divisin entera)
^ Exponenciacin (elevar a una potencia)
& Concatenacin de Cadenas
Operador String
Operadores Comparativos
Los operadores Comparativos requieren operadores Comparativos ( = , >, <, >= , <= , < >) y
producen un resultado lgico (True or False).
Comparan datos y devuelven valores lgicos de verdadero o falso como resultado de la
comparacin.
Operador Descripcin Ejemplo
= Igual a a=b
< Menor que a<b
> Mayor que a>b
<= Menor o igual que a<=b
>= Mayor o igual que a>=b
<> Diferente a a<> b
Los operadores Lgicos requieren operadores Lgicos (And, Or, Not, Xor, AndAlso, OrElse)
y producen un resultado lgico.
Operadores Lgicos Descripcin
And Las dos expresiones deben ser verdaderas
Or Alguna de las dos expresiones es verdadera
Not Negacin del resultado de la expresin
Xor
Si una y slo una de las expresiones es verdadera, es true;
si las dos expresiones son verdaderas o falsas es false.
AndAlso Si la primera y segunda condicin son verdaderas
OrElse Si la primera o segunda condicin es verdadera
Los nuevos operadores lgicos AndAlso y OrElse reciben el nombre de sistema de corto-
circuito, si la primera condicin es falsa, la otra ya no se ejecuta.
Operadores Abreviados
Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la escritura de
cdigo, por ejemplo:
x = x + 1 se puede escribir
x += 1
Operadores Abreviados
+=
-=
*=
/=
\=
^
&=
Precedencia de Operadores
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.
Ejemplo:
NO SI
C.L..
Si_No Else
Sentencia Falsa (F) Sentencia Falsa (F)
Fin Si End If
n>0
0
Anlisis del Problema: Negativ Positivo
o
El nmero que se ingrese por el teclado y que ser almacenado en la variable n, en la recta
numrica, puede ser positivo o negativo.
Diagrama de Pasada
n Entrada
Determinar Proceso
si el nmero n es
positivo o negativo
El nmero es Salida
....................
es ..................
Es es aquella que nos permite "preguntar" para tomar una decisin, pudiendo as actuar y
realizar acciones excluyentes entre s segn la respuesta obtenida. Estas respuestas siempre
sern Verdadero o Falso, pudiendo as tomar, uno de dos caminos diferentes.
Apuntes de Clase Pg. 38 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Si (condicin 1) entonces
Sentencias 1
sino
Si (condicin 2) entonces
Sentencias 2
sino
Si (condicin 3) entonces
Sentencias 3
Fin_Si
Fin_Si
Fin_Si
'Proceso o clculo
Si (a > b y a > c) If a > b And a > c Then
nMayor = a; nMayor = a
SiNo_Si ( b >c ) ElseIf b>c
nMayor = b; nMayor = b
Si_No Else
nMayor = c; nMayor = c
End If
Escribir(El mayor es = ,nMayor); txtRespuesta.Text = nMayor
Fin.
Analizando este ejemplo se puede tener a una instruccin condicional dentro de otra, esto se
llama, instrucciones anidadas, pero hay una regla para hacer estas instrucciones anidadas, la
regla es que para cada Si que usen debe haber un Fin_Si, pero estas a la vez pueden tener un
Si_No, depende como lo usen, por ejemplo, para hacer un instruccin anidada tenemos que
tener obligado un SiNo_Si cuando la expresin lgica en el SI del que depende es falsa, y as
sucesivamente, bueno esto lo vamos a comprender mejor cuando lo implementemos en el
Visual Basic .NET
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Console.Write("Ingrese un nmero: ")
intNumero = Console.ReadLine
'Proceso o clculo
If intNumero = 0 Then
Console.WriteLine("El nmero ingresado es Cero ")
Else
If intNumero > 0 Then
Formulario Controles
Un Label
lblNumero
Dos Textbox
txtNum
txtResp
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmPosiNegaCero
CDIGO
Public Class Form1
Formulario Controles
Cuatro Label
lblIngresar
lblLadoA
lblLadoB
lblLadoC
Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtRespuesta
Dos Button
btnCalcular
btnSalir
CDIGO
Public Class Form1
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
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
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
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.
INICIO
Costo de la Casa:
CostoCasa
Ingresos
F V
Ingresos<1000
CuotaInicial=0.2*CostoCasa CuotaInicial=0.1*CostoCasa
FIN
Sub Main()
Dim dblCostoCasa, dblIngresos, dblCuotaInicial,
dblPagoMensual As Double
Console.Write("Costo de la casa: ")
dblCostoCasa = Console.ReadLine
Console.Write("Ingresos del comprador: ")
dblIngresos = Console.ReadLine
If dblIngresos < 1000 Then
dblCuotaInicial = 0.1 * dblCostoCasa
dblPagoMensual = 0.9 * dblCostoCasa / 20
Else
dblCuotaInicial = 0.2 * dblCostoCasa
End Module
INICIO
Compras
F V
Compras<=50
0
Descuento=0.12*Compr Descuento=0.08*Compras
as
SubTotal=Compras- SubTotal=Compras-
Descuento Descuento
Impuesto=0.18*SubTotal Impuesto=0.18*SubTotal
Total=SubTotal+Impuesto Total=SubTotal+Impuesto
Compras , Compras
Descuento: , Descuento
Impuesto: , Impuesto
Total: , Total
FIN
Sub Main()
Dim dblCompras, dblDescuento, dblSubTotal, dblImpuesto,
dblTotal As Double
Console.Write("Ingrese el Total de compras: ")
dblCompras = Console.ReadLine
If dblCompras <= 500 Then
dblDescuento = dblCompras * 0.08
dblSubTotal = dblCompras - dblDescuento
dblImpuesto = dblSubTotal * 0.18
dblTotal = dblSubTotal + dblImpuesto
Else
dblDescuento = dblCompras * 0.12
dblSubTotal = dblCompras - dblDescuento
dblImpuesto = dblSubTotal * 0.18
dblTotal = dblSubTotal + dblImpuesto
End If
Console.WriteLine("Compras = {0}", dblCompras)
Console.WriteLine("Descuento = {0}", dblDescuento)
Console.WriteLine("Sub Total = {0}", dblSubTotal)
Console.WriteLine("Impuesto = {0}", dblImpuesto)
Console.WriteLine("Total = {0}", dblTotal)
Console.ReadLine()
End Sub
End Module
' Do
'Me.txtCompra.Text = ""
' Me.txtCompra.Focus()
dblCompra = Val(Me.txtCompra.Text)
' Loop While (dblCompra < 0)
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs)
Handles
btnSalir.Click
End
End Sub
End Class
Sub Main()
'VARIABLES
Dim intHoras As Integer
Dim dblPrecioHora, dblSalarioSemanal As Double
'ENTRADA
Console.Write("Nmero de Horas Trabajadas: ")
intHoras = Console.ReadLine
Console.Write("Precio por hora: ")
dblPrecioHora = Console.ReadLine
'PROCESO
If intHoras > 40 Then
dblSalarioSemanal = dblPrecioHora*40+(intHoras-40)*1.5* dblPrecioHora
'SALIDA
Console.Write("Salario semanal: {0} ", dblSalarioSemanal)
Console.ReadLine()
End Sub
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
'PROCESO
If intNumA > intNumB Then
If intNumB > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumA, intNumB, intNumC)
ElseIf intNumA > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumA, intNumC, intNumB)
Else
Console.WriteLine("{0}, {1}, {2}", intNumC, intNumA, intNumB)
End If
Else
If intNumA > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumB, intNumA, intNumC)
ElseIf intNumB > intNumC Then
Console.WriteLine("{0}, {1}, {2}", intNumB, intNumC, intNumA)
Else
Console.WriteLine("{0}, {1}, {2}", intNumC, intNumB, intNumA)
End If
End If
Console.ReadLine()
End Sub
End Module
Esta estructura en un algoritmo nos permite elegir una de varias opciones, al utilizar
condiciones mltiples, nos es ms fcil de seguir la lgica del algoritmo, aunque tambin
podramos hacerlo con la Instruccin condicional simple, pero se nos hara muy tedioso, ya que
usaramos varias instrucciones condicionales simples ya sean independientes o anidadas. En
pseudocdigo sera:
Case Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 1
Case Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor 2
.
.
Case Valor n
Sentencias a ejecutar
en caso que la Variable_Expresin = Valor n
.
.
Exit Select
Transfiere inmediatamente el control a la
sentencia que sigue a End Select
.
.
.
Case Is OperadorDeComparacin Nmero
Sentencias a ejecutar
en caso que OperadorDeComparacin sea =, < >, <, <=, > o >=
Case Else
Sentencias X (Si no se cumple ninguna de las listas de expresiones)
End Select
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.
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
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.
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
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
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
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.
Sub Main()
'VARIABLES
Dim intNum As Integer
'ENTRADA
Do
Console.Write("Ingrese un nmero entero positivo: ")
intNum = Console.ReadLine
Loop While intNum < 0
'PROCESO
Select Case intNum Mod 10
Case 0, 3, 7, 8
intNum = 2 * intNum
Console.Write("El nmero es : {0}", intNum)
Case 1, 9
intNum = intNum / 10
Console.Write("El nmero es : {0}", intNum)
Case Else
Console.Write("El nmero es : {0}", intNum)
End Select
Console.ReadLine()
End Sub
End Module
n=n+1
n = 0 n = 0 +1 = 1;
n = n +1 n = 1 n = 1 +1 = 2;
n = 2 n = 2 +1 = 3;
n as sucesivamente en cada
ciclo.
sentencia 1;
sentencia 2;
.
.
sentencia n .
Fin_Para;
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
Algoritmo
Programa EB_Suma_Promedio_RE;
Variables
i, conta = 0 tipo entero;
sum = 0.0 tipo real;
prim, ultimo, temp tipo entero;
Inicio
Escribir ( "Ingrese un numero entero: " ) ;
Leer( prim ) ;
Escribir ( "Ingrese otro numero: " ) ;
Leer ( ultimo ) ;
Si (prim > ultimo)
Inicio
temp = prim;
prim = ultimo;
ultimo = temp;
Fin_Si
Para (i = prim hasta ultimo )
inicio
conta = conta +1;
sum = sum + i;
fin_para;
Escribir ( "Suma de enteros desde " , prim , " al " , ultimo , " = " , sum ) ;
Escribir ( "Promedio = " , sum / conta ) ;
Fin.
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
Formulario Controles
Dos Label
lblTitulo
lblNumero
Text Box
txtNumero
List Box
lstTabla
Tres Button
btnCalcular
btnBorrar
btnSalir
CDIGO
Public Class frmTablaMultiplicar
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intMultiplicando, i, intProducto As Integer
Dim strResultado As String
intMultiplicando = Me.txtNumero.Text
For i = 1 To 12
intProducto = i * intMultiplicando
strResultado = i & " * " & intMultiplicando & " = " & intProducto
Me.lstTabla.Items.Add(strResultado)
Next
End Sub
End Class
Apuntes de Clase Pg. 67 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
6.3. Estructura de Repeticin Hacer [Mientras / Hasta que] . . .
Una Estructura de Repeticin, es un algoritmo que permite repetir una o varias sentencias
un nmero determinado de veces. A este tipo de estructuras se denominan bucles, lazos o
loops. A la repeticin de un conjunto de sentencias dentro de un bucle se le denomina
iteracin.
El flujo del programa al encontrar esta estructura de repeticin evala la condicin lgica, si
es verdadera se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle,
as sucesivamente Mientras la condicin lgica sea verdadera.
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Mientras ( condicin )
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condicin, si al evaluarla la condicin lgica es verdadera se repite el
conjunto de sentencias o bloque de sentencias que contiene el bucle, as sucesivamente
Mientras la condicin lgica sea verdadera.
6.3.2. Estructura de Repeticin Hacer . Hasta que, permite ejecutar una iteracin el
conjunto o bloque de sentencias del bucle, hasta que se cumpla la condicin.
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.
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.
Repite un bloque de instrucciones Mientras o Hasta que una condicin lgica sea verdadera
Sintaxis
Do
Instruccin 1
.
.
Instruccin n
[Exit Do]
Instruccin 1
.
.
Instruccin n
Loop [ { While / Until } condicin ]
Donde:
condicin Expresin lgica
Instruccines Opcional. Una o ms sentencias ubicadas entre Do y Loop, que se ejecutan
mientras o hasta que se cumpla o la condicin lgica sea verdadera.
Exit Do, permite una salida alternativa del bucle Do antes que este finalice.
Esta sentencia con frecuencia se utiliza en la evaluacin de alguna condicin
empleando una estructura condicional If ...Then, la Instruccin Exit Do
Apuntes de Clase Pg. 69 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
transfiere el control del flujo del programa a la instruccin que sigue
inmediatamente a la Instruccin Loop
Se puede anidar uno o mas bucles Do . . . Loop, dentro de otro bucle Do . . . Loop
Necesitamos generar nmeros del 1 al 12 (un contador), que al ser multiplicados por el
nmero de la tabla que deseamos ver, obtendremos el resultado esperado.
En el bucle hacer mientras colocamos como bloque de sentencias la variable contador cont
y a la variable prod = cont * mult, el contenido de la variable mul se ingresa por el teclado,
mostramos los resultados obtenidos.
Algoritmo
Programa EB_Tabla_Multiplicar ;
Variables
Entero cont = 0, mult, prod ;
Inicio
Escribir ( "Ingrese el numero de la tabla que desee ver : " ) ;
Leer ( mult ) ;
Escribir ( "TABLA DE MULTIPLICAR DEL NUMERO " , mult ) ;
Hacer
cont = cont + 1 ;
prod = cont * mult;
Escribir (cont ," * ", mult ," = " , prod ) ;
Mientras (cont<12);
Fin.
Ejercicio 3. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, utilizando la estructura Do ..... While.
Formulario Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
Tres Button
btnCalcular
btnBorrar
btnSalir
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()
CAPITULO III
7. FUNCIONES Y PROCEDIMIENTOS
Mtodo Descripcin
Abs(n) Calcula el valor absoluto de n
Atan(n) Calcula el arcotangente de n en radianes
Cos(n) Calcula el coseno del ngulo n expresado en radianes
Exp(n) Calcula el constante de e elevada a n
Sign(n) Regresa -1 si n es menor que cero, 0 si n es cero y +1 si n es mayor a cero
Sin(n) Calcula el seno del ngulo n expresado en radianes
Sqrt(n) Calcula la raz cuadrada de n.
Tan(n) Calcula la tangente del ngulo n expresado en radianes
7.2. Procedimiento es un conjunto de sentencias que realizan una accin lgica. Existen tres
tipos de procedimientos en Visual Basic .NET:
Visual Basic .NET para los manejadores de eventos utiliza una convencin estndar la
cual combina el nombre del objeto seguido de un guin bajo y el nombre del evento.
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.
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( )
End Sub
Sub Castellano( )
Console.Write("Buenas Noches")
Console.ReadLine( )
End Sub
Sub Ingles( )
Console.Write("Good Nigth")
Console.Read( )
End Sub
Sub Portugues( )
Console.Write("Boa Noite")
Console.ReadLine( )
End Sub
End Module
Ejercicio 2. Elaborar un programa que muestre un men de opciones para: 1. Mostrar los
nmeros pares menores que el nmero que se ingrese por el teclado, 2. Si el nmero ingresado
por el teclado es primo, 3. Calcular el factorial del nmero ingresado por el teclado.
CDIGO
Module Module1
'Programa que muestra un men de opciones
Sub Main()
Dim opc, Numero As Integer
Call Menu()
Console.WriteLine()
Console.Write("Elija Su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
Apuntes de Clase Pg. 75 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Pares(Numero)
Case 2
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call EsPrimo(Numero)
Case 3
Console.Write("Ingrese un Nmero Entero: ")
Numero = CInt(Console.ReadLine)
Call Factorial(Numero)
Case Else
Console.WriteLine("Opcin No Vlida")
Console.Clear()
Call Menu()
End Select
Console.WriteLine()
Console.Write("Elija Su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine("{0}{1}", Space(30), "MEN DE OPCIONES")
Console.WriteLine()
Console.WriteLine("[1] Pares")
Console.WriteLine("[2] Es Primo")
Console.WriteLine("[3] Factorial")
Console.WriteLine("[4] Salir")
Console.WriteLine()
End Sub
End Module
CDIGO
Module Module1
Sub Main()
Dim opc, Num As Integer
Call Menu()
Console.Write("Elija su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("El rea de la circunferencia es: {0}", Area(Num))
Case 2
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("El volumen de la esfera es: {0}", Volumen(Num))
Case 3
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("La longitud de la circunferencia es: {0}",
Apuntes de Clase Pg. 77 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Circunferencia(Num))
Case Else
Console.WriteLine("Opcin No Vlida")
End Select
Console.ReadLine()
Console.Clear()
Call Menu()
Console.Write("Elija su Opcin ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} MEN DE OPCIONES", Space(25))
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} [1] El rea de una circunferencia", Space(10))
Console.WriteLine("{0} [2] El volumen de una esfera", Space(10))
Console.WriteLine("{0} [3] La longitud de una circunferencia",
Space(10))
Console.WriteLine("{0} [4] Salir del Programa", Space(10))
Console.WriteLine()
End Sub
End Module
5 8 3 7
Lmite inferior
A(0)
A(1)
4 elementos
A(2)
A(3)
Lmite superior es
igual al nmero de
elementos menos 1
i = 0, 1, 2, 3
Sintaxis:
Dim nombreVariable(NmeroDeElementos) As TipoDeDato
En efecto, tal como se puede apreciar, el array ser utilizable nicamente a partir de su
declaracin.
Un array unidimensional tiene las siguientes caractersticas:
El lmite inferior es cero y no se puede alterar.
El lmite superior es igual al nmero de elementos del vector menos uno.
Por ejemplo:
Dim A(3) As Integer
En este ejemplo, el nmero 3 que est dentro de los parntesis indica el nmero total de
elementos - 1 que tendr el array, es decir el vector declarado tiene cuatro elementos:
A(0), A(1), A(2) y A(3), que cada uno de ellos almacenar un nmero entero por el tipo de
dato declarado
CDIGO:
Module Module1
Sub Main()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
'Asignacin de Datos o Valores al declarar el VECTOR B
Dim B() As Integer = {10, 52, 85, 37, 14}
End Sub
End Module
End Sub
Los arrays multidimensionales son aquellos que tienen dos o ms dimensiones, es decir, que
cada elemento del array viene definido por dos o ms subndices. Los elementos del arreglo
almacenarn el mismo tipo de datos, que se indicar en el momento de la declaracin.
j-sima columna
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.
INICIO
nFilas
nColumnas
m = nFilas -1
n = nColumnas -1
Para i = 1 hasta m
Para j = 1 hasta n
A[, i, ] [ , j, ]=
A[ i ] [ j ]
FIN
INICIO
nFilas
nColumnas
m = nFilas -1
n = nColumnas -1
Para i = 1 hasta m
Para j = 1 hasta n
, A[ i ] [ j ]
FIN
CDIGO:
Module Module1
Sub Main()
Dim numeroFilas, numeroColumnas, i, j, m, n As Integer
Apuntes de Clase Pg. 84 Ing Eduardo A. Barrantes Meja
Facultad de Ingeniera Visual Basic . Net
_____________________________________________________
Console.Write("Ingresar nmero de Filas de la Matriz A[m][n]: ")
numeroFilas = Console.ReadLine
m = numeroFilas - 1
Console.Write("Ingresar nmero de Columnas de la Matriz A[m][n]: ")
numeroColumnas = Console.ReadLine
n = numeroColumnas - 1
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
End Module
8.2. Estructuras: Structure
Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que permiten
tener mtodos, propiedades, etc., la diferencia principal entre las clases y las estructuras es
que stas ltimas son tipos por valor, mientras que las clases son tipos por referencia. Las
estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y
tambin dentro de otras estructuras e incluso dentro de clases y mdulos.
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: ")
End Module