Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS ESTADISTICA E
INFORMATICA
INGENIERO CIVIL
CAPITULO I
DISEÑO DE PROGRAMAS
Cada paso de la solución de un problema está expresado por medio de una instrucción de
programa. Un programa está formado por una secuencia de instrucciones, cada una de las
cuales especifica las operaciones que debe realizar el computador.
Proceso de la Programación
base, altura
Superficie = base * altura
“El área es = ” , Superficie
ENTRADA: Información dada al algoritmo.
PROCESO: Cálculos necesarios para encontrar la solución del problema.
SALIDA : Respuestas dadas por el algoritmo o resultados finales de los cálculos.
Algoritmo:
Inicio
ENTRADA (Datos) ………. : base y altura.
PROCESO (Transformación): calcular Superficie = base * altura.
SALIDA (Resultados): mostrar “El área es = ”, Superficie
Fin.
Apuntes de Clase Pág. 3 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
1.3.3. Herramientas para escribir algoritmos:
La estructura de un algoritmo se puede representar en un diagrama estructurado en forma
de bloques, donde se muestran las diferentes tareas que deben ser ejecutadas y su relación
entre ellas. Entre otras tenemos las siguientes herramientas:
Diagrama de Pasada
Diagramas de flujo.
Pseudocódigos.
Diagramas de Nassi-Sneiderman (N-S) o de Chapin.
Permite visualizar lo que se desea realizar, indicando que datos se necesitan, que se desea
ejecutar y que resultados de salida se esperan. Ponerse en el lugar del computador: ¿que
resultados se debe entregar?, ¿que datos necesito para entregar los resultados?
ENTRADA
base, altura
El flujo lógico del algoritmo se muestra en un dibujo como una representación gráfica del
algoritmo. Los diagramas de flujo han sido la herramienta de programación por excelencia.
Tienen una gran limitación son difíciles de actualizar y complejos de leer si ocupan varias
páginas, cuando se han de modificar los diagramas de flujo resulta una tarea difícil
precisamente por su carácter gráfico.
1.3.3.2.2.1. Los más usados son los proporcionados por la ISO (International Organization for
Standarization) y la ANSI (American National Standards Institute, Inc).
SIMBOLO DESCRIPCION
Inicial / Terminal, para indicar en dónde empieza y en
donde termina el diagrama
Proceso, cualquier tipo de operación (tales como
desarrollar una expresión aritmética o mover un dato
de un campo a otro).
Inicio
“Ingresar la base: ”
base
“Ingresar la altura: ”
altura
Fin
Los diagramas de Nassi Sneiderman están constituidos por una serie de rectángulos que se
van rellenando de arriba hacia abajo, empleando las tres estructuras básicas de la
programación estructurada.
Inicio
“Ingresar la base: ”
base
“Ingresar la altura: ”
altura
Superficie = base * altura
“El área es = ”, Superficie
Fin
1.4. Pseudocódigo
Programa EB_Area_del_rectángulo;
Variables:
base, altura, Superficie tipo entero;
Inicio
Escribir (“Ingresar la base: ”);
Leer (base);
Escribir (“Ingresar la altura: ”);
Leer (altura);
Superficie = base * altura.
Escribir ( “El área es = ”, Superficie);
Fin.
S=1+2+3+...+n
Pseudocódigo:
Programa EB_Suma_números_naturales;
Variables
n, suma tipo real;
Inicio
Leer n;
suma 0;
Para i 1 hasta n hacer
suma suma+i;
Fin_para;
Escribir "La suma de los n primeros números es: ", suma;
Fin.
Las palabras reservadas Inicio, Leer, Para, hasta, hacer, Escribir; que están
subrayadas describen las estructuras de control fundamentales y procesos que se deben
realizar. Es importante hacer notar la forma de escribir el pseudocódigo el identado (sangrado
o justificado a la izquierda) permite dar mantenimiento (leer, corregir, escribir), a los
algorítmos posteriormente.
El sistema para escribir un algoritmo consiste en realizar una descripción paso a paso con
un lenguaje natural. Siendo un algoritmo un método o conjunto de reglas para solucionar un
problema. En cálculos elementales estas reglas tienen las siguientes propiedades:
a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado diferente.
1. Ir al Banco de la nación.
2. Comprar recibo.
3. Ir al RENIEC.
4. Regresar a casa.
1 Inicio
2 “Ingresar la base : ”
3 base
4 “Ingresar la altura: ”
5 altura
8 Fin
Pseudocódigo
Programa EB_Area_Rectángulo;
Variables
base, altura, Superficie de tipo entero ;
(1) Inicio
(2) Escribir ( “Ingresar base : ” ) ;
(3) Leer ( base ) ;
(4) Escribir ( “Ingresar altura : ” ) ;
(5) Leer ( altura ) ;
(6) Superficie = base * altura ;
(7) Escribir ( “El area es = ”, Superficie );
(8) Fin
V A R I AB L E S
PASOS SALIDA
base altura Superficie
1. Inicio
2.Escribir Ingresar la base :
5
3. Leer 5 Enter
7. El área es = 50
8. Fin
Ejercicio 2. Crear un programa que encuentre el área de un triángulo dados sus tres lados.
Ejercicio 3. Elaborar un programa que determine cual es el costo de la eliminación de
material de la excavación de una cimentación. Tener en cuenta el coeficiente de
expansión y el costo por metro cúbico de eliminación de material.
CAPITULO II
Visual Basic .Net es uno de los Lenguajes .Net que provee Microsoft para la construcción de
lo último en componentes, aplicaciones y servicios. Con esta nueva versión, los
desarrolladores pueden construir todas las aplicaciones de ASP .Net para servicios Web
XML. En la plataforma Visual Studio .NET
Visual Basic .Net ofrece numerosas características nuevas y mejoradas, como herencia,
interfaces y sobrecarga, la palabra clave Overrides, miembros compartidos y constructores,
que lo convierten en un eficaz Lenguaje de Programación orientado a objetos. Ahora se
puede crear aplicaciones multiproceso y escalables utilizando subprocesamiento múltiple
Características:
Con Visual Basic se podrá diseñar dos tipos de aplicaciones: Aplicaciones para
Windows y Aplicaciones para Internet.
El acceso de datos será usando ADO .Net el cual nos permitirá trabajar con DataServs
desconectados.
TIPOS DE PROGRAMAS
Tipos de ejecutables.
Con Visual Basic .NET se puede crear básicamente estos dos tipos de ejecutables: de consola,
no gráfico, al estilo del viejo MS-DOS, y gráficos, como los que normalmente estamos
acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con
Visual Basic .NET: aplicaciones ASP.NET, (realmente no es una aplicación o ejecutable, sino
un compendio de distintos tipos de elementos...), servicios Web, servicios Windows, etc.
Control: Cada uno de los elementos gráficos que pueden formar parte de una aplicación
típica de Windows 95/98/NT es un tipo de control: los botones, las cajas de diálogo y de
texto, las cajas de selección desplegables, los botones de opción y de selección, las barras de
desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de
elementos son controles para Visual Basic. Cada control debe tener un nombre a través del
cual se puede hacer referencia a él en el programa. Visual Basic proporciona nombres por
defecto que el usuario puede modificar.
Clase se llama así a entidades genéricas que se utilizan en programación orientada a objetos
(más bien basada en objetos, habría que decir). Los formularios y los distintos tipos de
controles son entidades genéricas o clases de las que puede haber varios ejemplares concretos
en cada programa.
Un objeto es una entidad que tiene asociado un conjunto de métodos, eventos y propiedades.
Ejemplo: Una caja de texto TextBox1, en la cual podemos escribir cualquier línea es un
objeto de la clase TextBox.
Control Prefijo
Button btn
Label lbl
PictureBox pic
Timer tmr
Para establecer una propiedad de un objeto en tiempo de ejecución se deberá escribir una
sentencia de código usando la siguiente sintáxis:
objeto.Propiedad = Expresión
Por ejemplo, para hacer que una etiqueta Label, lblTitulo muestre el mensaje “Facultad de
Ingeniería”, establecemos la propiedad Text:
Variable = objeto.Propiedad
2.2.6. Métodos.
Los métodos son funciones internas de un determinado objeto que permite realizar acciones
sobre él o sobre otro objeto.
La sintáxis en general es:
objeto.Método
objeto.Método (Valor)
Donde: objeto es el nombre del objeto que deseamos modificar, Método es la orden (verbo) de
la acción que queremos utilizar para modificar el objeto y Valor es un argumento opcional
que utilizará el método. Ejemplo txtNombre.SetFocus, es un método que no tiene argumentos;
el método Move mueve un objeto, colocándolo en una nueva posición, en este ejemplo se
mueve el formulario frmPresentación: frmPresentación.Move (0,0)
2.2.7. Eventos.
Los eventos son hechos que son desencadenados en los formularios y controles por la acción
del usuario. A cada evento se puede asociar el código de un procedimiento que responda
adecuadamente a la acción desencadenada. Los eventos son los mensajes o solicitudes que se
envían a los objetos de Visual Basic.
Un objeto de uso diario como el globo de un niño tiene también propiedades, métodos y
eventos.
Entre las propiedades de un globo se incluyen atributos visibles como el peso, el diámetro
y el color. Otras propiedades describen su estado (inflado o desinflado) o atributos que no
son visibles, como su edad. Por definición, todos los globos tienen estas propiedades; lo
que varía de un globo a otros son los valores de estas propiedades.
Un globo tiene también métodos o acciones inherentes que puede efectuar. Tiene un
método inflar (la acción de llenarlo de aire) o un método desinflar (sacar el aire) y un
método elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar estos
métodos.
Los globos tienen además respuestas predefinidas a ciertos eventos externos. Por ejemplo,
un globo respondería al evento de pincharlo desinflándose o al evento de soltarlo
elevándose en el aire.
Si se pudiera programar un globo, el código de Visual Basic podría ser como el siguiente.
PROPIEDADES del globo, se establecen:
Globo.Color = Negro
Globo.Diámetro = 10
Globo.Inflado = True
Observe la sintaxis del código: el objeto (Globo) seguido de la propiedad (Color) seguida
de la asignación del valor (Negro). Podría modificar el color del globo desde el código si
repitiera esta instrucción y sustituyera el valor por otro diferente. Las propiedades también
se pueden establecer en la ventana Propiedades mientras se está diseñando la aplicación.
Apuntes de Clase Pág. 17 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
MÉTODOS de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar (5)
En este caso, el código describe el comportamiento del globo cuando se produce un evento
Pinchazo: invoca el método Desinflar y luego invoca el método HacerRuido con un
argumento “Bang” (el tipo de ruido que se va a hacer). Como el globo ya no está inflado, la
propiedad Inflado tiene el valor False y la propiedad Diámetro adopta un nuevo valor.
Si bien no puede programar un globo, sí puede programar un formulario o un control de
Visual Basic. Como programador, tiene el control: decide qué propiedades se deben
modificar, qué métodos se deben invocar o a qué eventos hay que responder para conseguir la
apariencia y el comportamiento deseados
2.2.9. Proyectos
Un proyecto es un recipiente dentro de una solución que se utiliza para administrar, generar y
depurar lógicamente los elementos de proyecto que constituyen nuestra aplicación.
Realizar un proyecto equivale a realizar los siguientes pasos:
Crear una especificación de diseño
Crear el interfaz de usuario
Establecer las propiedades de los objetos del interfaz de usuario.
Escribir código para añadir funcionalidad.
Probar y depurar la aplicación.
Generar un archivo ejecutable.
Crear una aplicación de instalación.
Guardar y cerrar el proyecto
3. Entorno de desarrollo
Es necesario tener instalado el Visual Studio .NET, al ejecutarlo se presenta una página de
inicio, en caso de no presentarse entonces de clic en Help/Show Start Page. En esta página será
posible establecer su perfil, por ejemplo identificarse como Desarrollador Visual Studio o más
especifico como Desarrollador Visual Basic con lo cual Visual Studio configura de inmediato el
entorno de desarrollo para programar en Visual Basic.
Para iniciar un nuevo proyecto, de clic en la opción Projects y clic en el botón [New Project],
esta acción abre una ventana donde se indicará el archivo a abrir, los proyectos Visual Basic
.NET tiene la extensión .vbproj. Una vez que abre el projecto si la página de inicio estaba
visible continuará así y en el Explorador de Soluciones (Solution Explorer) se cargan los
archivos correspondientes al proyecto.
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 Ingeniería"
Dim blnBoolean As Boolean = True
Una variable es una dirección de memoria en la que se guarda un valor o un objeto (en .NET
todo es un objeto), todas las variables deberán ser declaradas por las instrucciones
Dim es la abreviatura de Dimensión, que sirve para reservar espacio para la variable. La
sentencia Dim especifica el nombre de la variable y su tipo de dato asociado.
Las variables deben tener un nombre único llamado Identificador, los identificadores se forman
siguiendo las siguientes reglas:
Comenzar con una letra o guión bajo (underline)
Deben contener letras, digitos y guiones bajos.
No pueden ser palabras reservadas.
Recomendaciones:
El nombre de las variables deberían comenzar con una letra
El nombre de las variables deberían distinguir cada nueva palabra escribiendo la primer
letra en mayúscula
El nombre de las variables deberían ser lo suficientemente largo para ser significativo y lo
suficientemente corto para ser manejable.
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 aplicación desea utilizar la variable y puede ser una de las
siguientes palabras claves. Dim, Static, Private o Public.
Dim
Se puede utilizar a nivel de procedimiento y a nivel del formulario. Si se declara una variable a
nivel de procedimiento con la palabra Dim, que proviene de la palabra Dimension, Visual Basic
reinicializa (borra su contenido) la variable cada vez que ejecuta el procedimiento.
Ejemplo:
Dim intLongitud As Integer
Private
Se utiliza solo a nivel del modulo e indica que la variable es privada; es decir, solo va a ser
reconocida dentro del módulo donde ha sido declarada.
Ejemplo:
Private strDireccion As String
Public
Se utiliza solo a nivel de módulo e indica que la variable es pública; es decir, va a ser
reconocida en toda la aplicación.
Public dteFecha As Date
CONSTANTES
Nota: La definición de las constantes puede empezar con las palabras Public o Private. Para que
sean públicas o privadas. Por defecto son privadas.
Los dígitos encerrados entre llaves {0}, indican el lugar donde se escribirá el contenido de las
variables Var0
Observamos que en la función Write y WriteLine, el texto que deseamos mostrar está entre
comillas. Escribimos {0}, {1}, etc, dentro de las comillas para mostrar la ubicación del
contenido de una variable; después de las comillas se escriben los nombres de las variables
Var0, Var1, etc, que corresponden a cada ubicación; por ejemplo para la ubicación {0}, la
variable que contiene su valor es Var0.
Ejemplo:
Si la variable N, contiene el valor 13,
Escribimos el siguiente código:
Console.WriteLine("El valor de la variable es : {0}", N)
Mostrará:
El valor de la variable N es : 13
Se debe tener presente, que por cada variable o dato contenido en la variable que queremos
mostrar su contenido, en el texto, que debe estar entre comillas, escribimos {0}; después de las
comillas escribimos Var0, {0} está asociado a la variable Var0, en donde el 0 indica que
número de variable o dato se va mostrar, Visual Basic lo convierte en un array y muestra el
valor de los elementos del array comenzando del 0, así que si queremos mostrar 5 datos,
tendremos que escribir {0}, {1},{2}, {3}, {4}, y si queremos mostrar dos datos tendremos que
escribir {0}, {1}
Sintáxis:
Para utilizar una función de conversión, se sitúa en el lado derecho de una instrucción de
asignación, utilizando la siguiente sintaxis:
NombreVariable = CFunción(Expresión)
El parámetro Expresión puede ser cualquier expresión válida, como una variable, un resultado
de una función o un valor constante
La palabra clave Me nos permite referirnos a cualquier elemento del formulario (propiedades,
métodos, etc), desde dentro del propio formulario. Aunque no es necesario el uso de Me, se
recomienda por hacer más fácil la lectura del código; el propio IDE al generar el código
utiliza esta palabra, lo cual es indicativo de su importancia.
CÓDIGO:
Module Module1
Sub Main()
'DECLARACIÓN 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> Aplicación de windows > Nombre .................
> Ubicación > Crear directorio para la solución > Aceptar
Formulario Controles
Cuatro Label
lblTitulo
lblBase
lblAltura
lblArea
Tres Textbox
txtBase
txtAltura
txtArea
Tres Button
btnCalcular
btnBorrar
btnSalir
CÓDIGO:
Public Class frmRect
'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
CÓDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim decA, decB, decC, decP, decArea As Decimal
decA = txtLadoA.Text
decB = txtLadoB.Text
decC = txtLadoC.Text
Formulario Controles
Ocho Label
lblTitulo
lblAncho
lblProf
lblLong
lblCostoM3
lblExpancion
lblVolumen
lblCostoEM
Siete TextBox
txtAncho
txtProf
txtLong
txtCostoM3
txtExpancion
txtVolumen
txtCostoEM
Dos Button
btnCalcular
btnSalir
CÓDIGO
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblAncho, dblProf, dblLong, dblCostoM3, dblExpansion As Double
Dim dblVolumen, dblCostoEM As Double
dblAncho = txtAncho.Text
dblProf = txtProf.Text
dblLong = txtLong.Text
dblCostoM3 = txtCostoM3.Text
dblExpansion = txtExpansion.Text
dblVolumen = dblAncho * dblProf * dblLong * dblExpansion
dblCostoEM = dblCostoM3 * dblVolumen
txtVolumen.Text = dblVolumen
txtCostoEM.Text = dblCostoEM
End Sub
Formulario Controles
Nueve Label
lblTitulo
lblTIngreso
lblTSalida
lblTPerm
lblTIngeniero
lblProfesional
. . .
Cinco Textbox
txtTIngreso
txtTSalida
txtTPerm
txtTIngeniero
txtProfesional
Dos Button
btnCalcular
btnSalir
CÓDIGO:
Public Class Form1
Private Sub btnCalcular_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCalcular.Click
End Sub
Operadores Aritméticos
Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
\ División entera (parte entera de la división)
Mod Residuo (resto de la división entera)
^ Exponenciación (elevar a una potencia)
& Concatenación de Cadenas
Operador String
Operadores Comparativos
Los operadores Comparativos requieren operadores Comparativos ( = , >, <, >= , <= , < >) y
producen un resultado lógico (True or False).
Comparan datos y devuelven valores lógicos de verdadero o falso como resultado de la
comparación.
Operador Descripción Ejemplo
= Igual a a=b
< Menor que a<b
> Mayor que a>b
<= Menor o igual que a<=b
>= Mayor o igual que a>=b
<> Diferente a a<> b
Los operadores Lógicos requieren operadores Lógicos (And, Or, Not, Xor, AndAlso, OrElse)
y producen un resultado lógico.
Operadores Lógicos Descripción
And Las dos expresiones deben ser verdaderas
Or Alguna de las dos expresiones es verdadera
Not Negación del resultado de la expresión
Xor
Si una y sólo una de las expresiones es verdadera, es true;
si las dos expresiones son verdaderas o falsas es false.
AndAlso Si la primera y segunda condición son verdaderas
OrElse Si la primera o segunda condición es verdadera
Los nuevos operadores lógicos AndAlso y OrElse reciben el nombre de sistema de corto-
circuito, si la primera condición es falsa, la otra ya no se ejecuta.
Operadores Abreviados
Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la escritura de
código, por ejemplo:
x = x + 1 se puede escribir
x += 1
Operadores Abreviados
+=
-=
*=
/=
\=
^
&=
Precedencia de Operadores
Es es aquella que nos permite "preguntar" para tomar una decisión, pudiendo así actuar y
realizar acciones excluyentes entre sí según la respuesta obtenida. Estas respuestas siempre
serán Verdadero o Falso, pudiendo así tomar, uno de dos caminos diferentes.
Ejemplo:
NO SI
C.L..
Si_No Else
Sentencia Falsa (F) Sentencia Falsa (F)
Fin Si End If
n>0
0
Análisis del Problema: Negativ Positivo
o
El número que se ingrese por el teclado y que será almacenado en la variable n, en la recta
numérica, puede ser positivo o negativo.
Diagrama de Pasada
n Entrada
Determinar Proceso
si el número n es
positivo o negativo
Es es aquella que nos permite "preguntar" para tomar una decisión, pudiendo así actuar y
realizar acciones excluyentes entre sí según la respuesta obtenida. Estas respuestas siempre
serán Verdadero o Falso, pudiendo así tomar, uno de dos caminos diferentes.
Apuntes de Clase Pág. 38 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Si (condición 1) entonces
Sentencias 1
sino
Si (condición 2) entonces
Sentencias 2
sino
Si (condición 3) entonces
Sentencias 3
Fin_Si
Fin_Si
Fin_Si
'Proceso o cálculo
Si (a > b y a > c) If a > b And a > c Then
nMayor = a; nMayor = a
SiNo_Si ( b >c ) ElseIf b>c
nMayor = b; nMayor = b
Si_No Else
nMayor = c; nMayor = c
End If
Escribir(“El mayor es = ”,nMayor); txtRespuesta.Text = nMayor
Fin.
Analizando este ejemplo se puede tener a una instrucción condicional dentro de otra, esto se
llama, instrucciones anidadas, pero hay una regla para hacer estas instrucciones anidadas, la
regla es que para cada Si que usen debe haber un Fin_Si, pero estas a la vez pueden tener un
Si_No, depende como lo usen, por ejemplo, para hacer un instrucción anidada tenemos que
tener obligado un SiNo_Si cuando la expresión lógica en el SI del que depende es falsa, y así
sucesivamente, bueno esto lo vamos a comprender mejor cuando lo implementemos en el
Visual Basic .NET
'VARIABLES
'Variables de Ingreso datos
Dim intNumero As Integer
'Ingreso de Datos
Console.Write("Ingrese un número: ")
intNumero = Console.ReadLine
'Proceso o cálculo
If intNumero = 0 Then
Console.WriteLine("El número ingresado es Cero ")
Else
If intNumero > 0 Then
Formulario Controles
Un Label
lblNumero
Dos Textbox
txtNum
txtResp
Tres Button
btnCalcular
btnBorrar
btnSalir
CÓDIGO
Public Class frmPosiNegaCero
CÓDIGO
Public Class Form1
Formulario Controles
Cuatro Label
lblIngresar
lblLadoA
lblLadoB
lblLadoC
Cuatro Textbox
txtLadoA
txtLadoB
txtLadoC
txtRespuesta
Dos Button
btnCalcular
btnSalir
CÓDIGO
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
CÓDIGO
Public Class frmParImp
Private Sub btnIngresar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnIngresar.Click
If Me.txtNumero.Text = "" Then
MsgBox("Escriba un número:")
Else
If Me.txtNumero.Text Mod 2 = 0 Then
Me.lstPares.Items.Add(Me.txtNumero.Text)
Else
Me.lstImpares.Items.Add(Me.txtNumero.Text)
End If
End If
Me.txtCantidadPares.Text = Me.lstPares.Items.Count( )
Me.txtCantidadImpares.Text = Me.lstImpares.Items.Count( )
Me.txtNumero.Text = ""
Me.txtNumero.Focus( )
End Sub
CÓDIGO
Public Class Calculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
If strOperador = "+" Then
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "-" Then
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "*" Then
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
ElseIf strOperador = "/" Then
If Me.txtNumeroB.Text = "0" Then
txtRespuesta.Text = "Error"
MsgBox("Ingrese un numero diferente de cero como divisor")
Else
dblRespuesta = dblNumeroA / dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
End If
End If
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBorrar.Click
Me.txtNumeroA.Text = ""
Me.txtNumeroB.Text = ""
Me.txtOperador.Text = ""
Me.txtRespuesta.Text = ""
Me.txtNumeroA.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnSalir.Click
End
End Sub
End Class
CÓDIGO
Public Class frmMayor
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim a, b, c, nMayor As Integer
a = Me.txtNumA.Text
b = Me.txtNumB.Text
c = Me.txtNumC.Text
If a > b And a > c Then
nMayor = a
ElseIf b > c Then
nMayor = b
Else
nMayor = c
End If
Me.txtRespuesta.Text = nMayor
End Sub
PROBLEMA 1. Una empresa ofrece casas de interés social, bajo las condiciones siguientes:
Si los ingresos del comprador son menores a $ 1,000, la cuota inicial será del 10% del costo
de la casa y el resto se distribuirá en pagos mensuales, a pagar en veinte años. Si los ingresos
del comprador son $ 1,000 o más, la cuota inicial será del 20% del costo de la casa y el resto
se distribuirá en pagos mensuales a pagar en 12 años. De acuerdo al costo de la casa y los
ingresos del comprador, determinar la cuota inicial y la cuota mensual.
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("Número de Horas Trabajadas: ")
intHoras = Console.ReadLine
Console.Write("Precio por hora: ")
dblPrecioHora = Console.ReadLine
'PROCESO
If intHoras > 40 Then
dblSalarioSemanal = dblPrecioHora*40+(intHoras-40)*1.5* dblPrecioHora
'SALIDA
Console.Write("Salario semanal: {0} ", dblSalarioSemanal)
Console.ReadLine()
End Sub
PROBLEMA 5. Escribir un programa que lea tres números y los muestre ordenados de
mayor a menor.
SOLUCION POR CONSOLE
Module Module1
Sub Main()
'VARIABLES
Dim intNumA, intNumB, intNumC As Integer
'ENTRADA
Console.Write("Ingrese el número A: ")
intNumA = Console.ReadLine
Console.Write("Ingrese el número B: ")
intNumB = Console.ReadLine
'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 múltiples, nos es más fácil de seguir la lógica del algoritmo, aunque también
podríamos hacerlo con la Instrucción condicional simple, pero se nos haría muy tedioso, ya que
usaríamos varias instrucciones condicionales simples ya sean independientes o anidadas. En
pseudocódigo sería:
Case Valor 1
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 1
Case Valor 2
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor 2
.
.
Case Valor n
Sentencias a ejecutar
en caso que la Variable_Expresión = Valor n
.
.
Exit Select
Transfiere inmediatamente el control a la
sentencia que sigue a End Select
.
.
.
Case Is OperadorDeComparación Número
Sentencias a ejecutar
en caso que OperadorDeComparación sea =, < >, <, <=, > o >=
Case Else
Sentencias X (Si no se cumple ninguna de las listas de expresiones)
End Select
Numero1 To Numero2
[ Is ] operadorDeComparación Numero
Numero
Utilice la palabra clave To para especificar los límites de un intervalo de valores que
coinciden para Variable_Expresión. El valor de Numero1 debe ser menor o igual que el valor
de Numero2.
Utilice la palabra clave Is con un operador de comparación (=, < >, <, <=, > o >=) para
especificar una restricción en los valores coincidentes para Variable_Expresión.
Sentencias X
Opcional. Una o más instrucciones después de Case que se ejecutan si Variable_Expresión no
coincide con cualquier cláusula en Valores.
End Select
Termina un bloque Select Case …
Si Variable_Expresión coincide en más de un Valor Case, sólo se ejecutan las Sentencias que
siguen a la primera coincidencia.
Es recomendable tener una instrucción Case Else en el bloque Select Case para controlar los
valores de Variable_Expresión imprevistos. Si ninguna cláusula Case Valor coincide con
Variable_Expresión y no existe ninguna instrucción Case Else, la ejecución continúa en la
instrucción que sigue a End Select.
Se pueden utilizar varias expresiones o intervalos en cada cláusula Case. Por ejemplo, la línea
siguiente es válida: Case 1 To 4, 7 To 9, 11, 13 Is > MaxNumber
Nota La palabra clave Is que se utiliza en las instrucciones Case y Case Else no es igual que
el operador de comparación Is.
Las instrucciones Select Case pueden anidarse. Cada instrucción Select Case anidada debe
tener una instrucción End Select coincidente.
Si no necesita ejecutar más instrucciones de un bloque Case o Case Else, puede salir del
bloque mediante una instrucción Exit Select. Esto transfiere inmediatamente el control a la
instrucción que sigue a End Select.
Ejemplo:
Select Case intNumero
Case 3: ’Sentencia o Instrucción a realizar
Case 6 To 11
’ Sentencias a ejecutar si intNumero está en el rango de 6 a 11
Case 14, 17
’ Sentencias a ejecutar si intNumero es 14 ó 17
Case Is < 19
’ Sentencias a ejecutar si intNumero < 19
Case Is = 31, 33, 35, 40
’ Sentencias a ejecutar si intNumero = 31 ó 33 ó 35 ó 40
Case Is > 50
’ Sentencias a ejecutar si intNumero > 50
Case 1 To 4, 7 To 9, 11, 13, Is > maximoNumero
’ Sentencias a ejecutar si intNumero está en el rango de 1 a 4, ó 7 a 9
CÓDIGO
Public Class frmCalculadora
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnCalcular.Click
Dim dblNumeroA, dblNumeroB, dblRespuesta As Double
Dim strOperador As String
dblNumeroA = Me.txtNumeroA.Text
dblNumeroB = Me.txtNumeroB.Text
strOperador = Me.txtOperador.Text
Select Case strOperador
Case "+"
dblRespuesta = dblNumeroA + dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "-"
dblRespuesta = dblNumeroA - dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Case "*"
dblRespuesta = dblNumeroA * dblNumeroB
Me.txtRespuesta.Text = dblRespuesta
Ejercicio 2. Se desea evaluar el rendimiento a los alumnos de una asignatura en la que tienen
tres notas, utilizando la estructura Select Case.
Formulario Controles
Séis Label
lblTitulo
lblNota1
lblNota2
lblNota3
lblPromedio
lblRendimiento
Cinco Textbox
txtNota1
txtNota2
txtNota3
txtPromedio
txtRendimiento
Tres Button
btnCalcular
btnBorrar
btnSalir
CÓDIGO
Public Class frmEvaluacion
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcular.Click
Dim dblNota1, dblNota2, dblNota3, dblPromedio As Double
dblNota1 = Me.txtNota1.Text
dblNota2 = Me.txtNota2.Text
dblNota3 = Me.txtNota3.Text
dblPromedio = Math.Round((dblNota1 + dblNota2 + dblNota3) / 3)
Me.txtPromedio.Text = dblPromedio
Select Case dblPromedio
PROBLEMA 3. Escribir un programa que lea un número entero positivo y que efectúe los
siguientes cálculos: Si el número termina en 0, 3, 7 u ocho, cambie su valor al doble; si
termina en 1 ó 9, cambie su valor a la décima parte; de otra manera mantiene su valor. Utilice
una estructura de decisión condicional múltiple.
Sub Main()
'VARIABLES
Dim intNum As Integer
'ENTRADA
Do
Console.Write("Ingrese un número entero positivo: ")
intNum = Console.ReadLine
Loop While intNum < 0
'PROCESO
Select Case intNum Mod 10
Case 0, 3, 7, 8
intNum = 2 * intNum
Console.Write("El número es : {0}", intNum)
Case 1, 9
intNum = intNum / 10
Console.Write("El número es : {0}", intNum)
Case Else
Console.Write("El número es : {0}", intNum)
End Select
Console.ReadLine()
End Sub
End Module
n=n+1
n = 0 → n = 0 +1 = 1;
n = n +1 n = 1 → n = 1 +1 = 2;
n = 2 → n = 2 +1 = 3;
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 construcción es correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
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
CÓDIGO
Public Class frmSumaProducto
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal As Integer
Dim intContador, intSuma, intPromedio, i As Integer
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
Formulario Controles
Dos Label
lblTitulo
lblNumero
Text Box
txtNumero
List Box
lstTabla
Tres Button
btnCalcular
btnBorrar
btnSalir
CÓDIGO
Public Class frmTablaMultiplicar
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCalcular.Click
Dim intMultiplicando, i, intProducto As Integer
Dim strResultado As String
intMultiplicando = Me.txtNumero.Text
For i = 1 To 12
intProducto = i * intMultiplicando
strResultado = i & " * " & intMultiplicando & " = " & intProducto
Me.lstTabla.Items.Add(strResultado)
Next
End Sub
End Class
Apuntes de Clase Pág. 67 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
6.3. Estructura de Repetición Hacer [Mientras / Hasta que] . . .
Una Estructura de Repetición, es un algoritmo que permite repetir una o varias sentencias
un número determinado de veces. A este tipo de estructuras se denominan bucles, lazos o
loops. A la repetición de un conjunto de sentencias dentro de un bucle se le denomina
iteración.
El flujo del programa al encontrar esta estructura de repetición evalúa la condición lógica, si
es verdadera se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle,
así sucesivamente Mientras la condición lógica sea verdadera.
Hacer
sentencia 1 ;
.
.
.
sentencia n ;
Mientras ( condición )
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condición, si al evaluarla la condición lógica es verdadera se repite el
conjunto de sentencias o bloque de sentencias que contiene el bucle, así sucesivamente
Mientras la condición lógica sea verdadera.
6.3.2. Estructura de Repetición Hacer …. Hasta que, permite ejecutar una iteración el
conjunto o bloque de sentencias del bucle, hasta que se cumpla la condición.
El flujo del programa al encontrar esta estructura de repetición evalúa la condición lógica, si
es falsa se repite el conjunto de sentencias o bloque de sentencias que contiene el bucle, así
sucesivamente Hasta que la condición lógica sea verdadera.
El flujo del programa al encontrar esta estructura ejecuta las sentencias que contiene el bucle
hasta encontrar la condición, si al evaluarla la condición lógica es falsa se repite el conjunto
de sentencias o bloque de sentencias que contiene el bucle, así sucesivamente Hasta que la
condición lógica sea verdadera.
Repite un bloque de instrucciones Mientras o Hasta que una condición lógica sea verdadera
Sintaxis
Do
Instrucción 1
.
.
Instrucción n
[Exit Do]
Instrucción 1
.
.
Instrucción n
Loop [ { While / Until } condición ]
Donde:
condición Expresión lógica
Instrucciónes Opcional. Una o más sentencias ubicadas entre Do y Loop, que se ejecutan
mientras o hasta que se cumpla o la condición lógica sea verdadera.
Exit Do, permite una salida alternativa del bucle Do antes que este finalice.
Esta sentencia con frecuencia se utiliza en la evaluación de alguna condición
empleando una estructura condicional If ...Then, la Instrucción Exit Do
Apuntes de Clase Pág. 69 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
transfiere el control del flujo del programa a la instrucción que sigue
inmediatamente a la Instrucción Loop
Se puede anidar uno o mas bucles Do . . . Loop, dentro de otro bucle Do . . . Loop
Necesitamos generar números del 1 al 12 (un contador), que al ser multiplicados por el
número de la tabla que deseamos ver, obtendremos el resultado esperado.
En el bucle hacer … mientras colocamos como bloque de sentencias la variable contador cont
y a la variable prod = cont * mult, el contenido de la variable mul se ingresa por el teclado,
mostramos los resultados obtenidos.
Algoritmo
Programa EB_Tabla_Multiplicar ;
Variables
Entero cont = 0, mult, prod ;
Inicio
Escribir ( "Ingrese el numero de la tabla que desee ver : " ) ;
Leer ( mult ) ;
Escribir ( "TABLA DE MULTIPLICAR DEL NUMERO " , mult ) ;
Hacer
cont = cont + 1 ;
prod = cont * mult;
Escribir (cont ," * ", mult ," = " , prod ) ;
Mientras (cont<12);
Fin.
Ejercicio 3. Elaborar un programa que encuentre la suma y el promedio de un rango de
enteros, utilizando la estructura Do ..... While.
Formulario Controles
Cinco Label
lblTitulo
lblPrimero
lblUltimo
lblSuma
lblPromedio
Cuatro Textbox
txtPrimero
txtUltimo
txtSuma
txtPromedio
Tres Button
btnCalcular
btnBorrar
btnSalir
CÓDIGO
Public Class frmSumaPromedio
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles btnCalcular.Click
Dim intPrimero, intUltimo, intTemporal, intContador, intSuma, i As Integer
Dim intPromedio As Double
intPrimero = Me.txtPrimero.Text
intUltimo = Me.txtUltimo.Text
If intUltimo > intPrimero Then
Else
intTemporal = intPrimero
intPrimero = intUltimo
intUltimo = intTemporal
End If
intSuma = 0
intContador = 0
i = intPrimero
Do
intSuma + = i
intContador + = 1
i+ =1
Loop Until i > intUltimo
intPromedio = intSuma / intContador
Me.txtSuma.Text = intSuma
Me.txtPromedio.Text = intPromedio
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBorrar.Click
Me.txtPrimero.Text = ""
Me.txtUltimo.Text = ""
Me.txtSuma.Text = ""
Me.txtPromedio.Text = ""
Me.txtPrimero.Focus()
CAPITULO III
7. FUNCIONES Y PROCEDIMIENTOS
Método Descripción
Abs(n) Calcula el valor absoluto de n
7.2. Procedimiento es un conjunto de sentencias que realizan una acción lógica. Existen tres
tipos de procedimientos en Visual Basic .NET:
Visual Basic .NET para los manejadores de eventos utiliza una convención estándar la
cual combina el nombre del objeto seguido de un guión bajo y el nombre del evento.
2. Sub procedures, contiene código que el desarrollador crea para realizar una acción
lógica.
3. Function procedures, contiene código que el desarrollador crea para realizar una
acción lógica y regresa un valor, el valor que una función envía de regreso al
programa que lo invoco es llamado valor de regreso. Para regresar un valor se utiliza
la sentencia Return.
Module Module1
Dim opc As Integer
Sub Main( )
Console.Write("PROCEDIMIENTOS")
Console.WriteLine( )
Call MENU( )
Console.Write("Elegir una opción = = = > ")
opc = CInt(Console.ReadLine)
Console.WriteLine( )
Call OPCIONES( )
Console.WriteLine("Fin del Programa")
Console.ReadLine( )
End Sub
Sub MENU()
Console.WriteLine("{0}SALUDO POR LA NOCHE", Space(30))
Console.WriteLine("{0}Menú de Opciones", Space(32))
Console.WriteLine("{0}[1] En Castellano", Space(10))
Console.WriteLine("{0}[2] En Inglés", Space(10))
Console.WriteLine("{0}[3] En Portugués", Space(10))
Console.WriteLine("{0}[4] Salir", Space(10))
End Sub
Sub OPCIONES( )
While opc < > 4
Select Case opc
Case 1
Call Castellano( )
End Sub
Sub Castellano( )
Console.Write("Buenas Noches")
Console.ReadLine( )
End Sub
Sub Ingles( )
Console.Write("Good Nigth")
Console.Read( )
End Sub
Sub Portugues( )
Console.Write("Boa Noite")
Console.ReadLine( )
End Sub
End Module
Ejercicio 2. Elaborar un programa que muestre un menú de opciones para: 1. Mostrar los
números pares menores que el número que se ingrese por el teclado, 2. Si el número ingresado
por el teclado es primo, 3. Calcular el factorial del número ingresado por el teclado.
CÓDIGO
Module Module1
'Programa que muestra un menú de opciones
Sub Main()
Dim opc, Numero As Integer
Call Menu()
Console.WriteLine()
Console.Write("Elija Su Opción ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
Apuntes de Clase Pág. 75 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call Pares(Numero)
Case 2
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call EsPrimo(Numero)
Case 3
Console.Write("Ingrese un Número Entero: ")
Numero = CInt(Console.ReadLine)
Call Factorial(Numero)
Case Else
Console.WriteLine("Opción No Válida")
Console.Clear()
Call Menu()
End Select
Console.WriteLine()
Console.Write("Elija Su Opción ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine("{0}{1}", Space(30), "MENÚ DE OPCIONES")
Console.WriteLine()
Console.WriteLine("[1] Pares")
Console.WriteLine("[2] Es Primo")
Console.WriteLine("[3] Factorial")
Console.WriteLine("[4] Salir")
Console.WriteLine()
End Sub
End Module
CÓDIGO
Module Module1
Sub Main()
Dim opc, Num As Integer
Call Menu()
Console.Write("Elija su Opción ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
While opc <> 4
Select Case opc
Case 1
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("El área de la circunferencia es: {0}", Area(Num))
Case 2
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("El volumen de la esfera es: {0}", Volumen(Num))
Case 3
Console.Write("Ingrese el Radio: ")
Num = CInt(Console.ReadLine)
Console.WriteLine("La longitud de la circunferencia es: {0}",
Apuntes de Clase Pág. 77 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Circunferencia(Num))
Case Else
Console.WriteLine("Opción No Válida")
End Select
Console.ReadLine()
Console.Clear()
Call Menu()
Console.Write("Elija su Opción ==> ")
opc = CInt(Console.ReadLine)
Console.WriteLine()
End While
Console.WriteLine("Fin del Programa")
Console.ReadLine()
End Sub
Sub Menu()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} MENÚ DE OPCIONES", Space(25))
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} [1] El área de una circunferencia", Space(10))
Console.WriteLine("{0} [2] El volumen de una esfera", Space(10))
Console.WriteLine("{0} [3] La longitud de una circunferencia",
Space(10))
Console.WriteLine("{0} [4] Salir del Programa", Space(10))
Console.WriteLine()
End Sub
End Module
5 8 3 7
Límite inferior
A(0)
A(1)
4 elementos
A(2)
A(3)
Límite superior es
igual al número de
elementos menos 1
i = 0, 1, 2, 3
En efecto, tal como se puede apreciar, el array será utilizable únicamente a partir de su
declaración.
Un array unidimensional tiene las siguientes características:
El límite inferior es cero y no se puede alterar.
El límite superior es igual al número de elementos del vector menos uno.
Por ejemplo:
Si necesitamos un vector de cuatro elementos, al declarar el vector en Visual Basic .Net, el
límite superior del vector será 4 -1 = 3
Dim A(3) As Integer
En este ejemplo, el número 3 que está dentro de los paréntesis es el límite superior, indica el
número total de elementos - 1 que tendrá el array, es decir el vector declarado tiene cuatro
elementos:
A(0), A(1), A(2) y A(3); que cada uno de ellos almacenará un número entero por el tipo de
dato declarado
CÓDIGO:
Module Module1
Sub Main()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
'Asignación de Datos o Valores al declarar el VECTOR B
Dim B() As Integer = {10, 52, 85, 37, 14}
End Sub
End Module
Apuntes de Clase Pág. 80 Ing° Eduardo A. Barrantes Mejía
Facultad de Ingeniería Visual Basic . Net
_____________________________________________________
Ejercicio 1. Ingresar y mostrar ventas de un año, utilizando un vector
End Sub
Los arrays multidimensionales son aquellos que tienen dos o más dimensiones, es decir, que
cada elemento del array viene definido por dos o más subíndices. Los elementos del arreglo
almacenarán el mismo tipo de datos, que se indicará en el momento de la declaración.
j-ésima columna
i = 0, 1, 2, 3, . . . , m filas
j = 0, 1, 2, 3, . . . , n columnas
Sintaxis:
Dim nombreVariable(a, b) As TipoDeDato
Como vemos, hay dos letras dentro de los paréntesis, separadas por comas, lo cual indica que
el array es bidimensional, puesto que los dos subíndices del mismo se separan uno de otro por
comas. Al igual que en los arreglos unidimensionales, cada uno de los subíndices tienen las
siguientes características:
El límite inferior es cero y no se puede alterar.
El límite superior es igual al número de elementos menos uno.
Ejemplo:
Dim A(1,3) As Integer
Este array es bidimensional o matriz, los sub índices indican que la matriz tiene los siguientes
elementos
A(0,0) A(0,1) A(0,2) A(0,3)
A(1,0) A(1,1) A(1,2) A(1,3)
Cada uno de los elementos de la matriz almacenará un número entero tal como fue declarado.
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
CÓDIGO:
Sub Main()
Dim numeroFilas, numeroColumnas, i, j, m, n As Integer
Console.Write("Ingresar número de Filas de la Matriz A[m][n]: ")
numeroFilas = Console.ReadLine
m = numeroFilas - 1
Console.Write("Ingresar número de Columnas de la Matriz A[m][n]: ")
numeroColumnas = Console.ReadLine
n = numeroColumnas - 1
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("MATRIZ B")
'Asignación de Datos o Valores al declarar la MATRIZ B
Dim B(2, 2) As Integer
B(0, 0) = 23
B(0, 1) = 34
B(0, 2) = 56
B(1, 0) = 89
B(1, 1) = 23
B(1, 2) = 65
B(2, 0) = 59
B(2, 1) = 78
B(2, 2) = 88
End Module
8.2. Estructuras: Structure
Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que permiten
tener métodos, propiedades, etc., la diferencia principal entre las clases y las estructuras es
que éstas últimas son tipos por valor, mientras que las clases son tipos por referencia. Las
estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y
también dentro de otras estructuras e incluso dentro de clases y módulos.
CÓDIGO:
Module Module1
Structure Triangulo
Dim a, b, c, p, h As Double
Sub TrianRec(ByVal d As Double, ByVal e As Double)
a=d
b=e
End Sub
Sub TrianNor(ByVal d As Double, ByVal e As Double, ByVal f As Double)
a=d
b=e
c=f
End Sub
Function AreaTrianRec() As Double
Return (a * b) / 2
End Function
Function AreaTrianNor() As Double
p = (a + b + c) / 2
Return Math.Sqrt(p * (p - a) * (p - b) * (p - c))
End Function
Function PeriTrianRec() As Double
h = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2))
Return h + a + b
End Function
Function PeriTrianNor() As Double
Return a + b + c
End Function
End Structure
Sub Main()
Dim Rec, Nor As Triangulo
Dim n, a, b, c As Double
Call Menu()
Console.Write("Elija una Opción ==> ")
n = CDbl(Console.ReadLine)
Console.WriteLine()
While n < > 3
Select Case n
End Module