Sei sulla pagina 1di 15

Programador con Visual Basic 2008 CAPITULO IV

CAPITULO IV
PROGRAMACIÓN MODULAR
FORMULARIOS MDI
ARREGLOS
OBJETO LISTVIEW
EJERCICIOS PROPUESTOS

UNIMASTER Pagina Nº 1
Programador con Visual Basic 2008 CAPITULO IV

Programacion Modular
La programación modular es una metodología de programación que permite construir un programa
grande descomponiéndolo en pequeños subprogramas o Metodos. Para ello se parte de un módulo
principal que se descompone en varios submódulos que son controlados por el módulo principal. Si
la tarea asignada a un módulo es demasiado compleja este deberá descomponerse en otro
módulos más pequeños hasta lograr módulos que hagan tareas relativamente sencillas. A este
proceso de refinamiento sucesivo se conoce también como la técnica de “divide y vencerás”.

Las tareas asignadas a los subprogramas pueden ser de diversa índole: entrada, salida, cálculos,
control de otros módulos, etc. Para que un subprograma pueda efectuar su tarea tiene que ser
llamado o invocado por el programa principal o por algún otro módulo que considere necesario el
servicio del subprograma. Una vez que el subprograma termina su tarea, devuelve el control al
punto donde se hizo la llamada. Un subprograma puede llamar a su vez a otros subprogramas.

En .Net a los módulos o subprogramas se denominan métodos, mientras que en el lenguaje


algorítmico se denominan subalgoritmos.

VARIABLES LOCALES Y GLOBALES


Los métodos pueden utilizar sus propias variables denominadas variables locales o variables de uso
compartido, comunes a todos los métodos, denominadas variables globales.

UNIMASTER Pagina Nº 2
Programador con Visual Basic 2008 CAPITULO IV

A. Variables Locales
Una variable local es una variable que se declara en el interior de un método por lo que su
ámbito es el interior del método, es decir, sólo puede ser utilizada dentro del método
donde fue declarada. Este tipo de variable se crea al iniciar la ejecución del método y se
destruye al finalizar. Por otro lado, una variable local se crea vacía, es decir no recibe
ninguna inicialización automática.

B. Variables Globales
Una variable global es una variable que se declara dentro del programa, pero en el
exterior de todos los métodos, por lo que su ámbito es el interior de todo el programa, es
decir, puede ser utilizada desde cualquier parte del programa. Este tipo de variable se
crea al iniciar la ejecución del programa y se destruye al finalizar. Por otro lado, una
variable global se inicializa automáticamente: 0 si es de tipo int, 0.0 si es de tipo double,
false si es de tipo boolean, „\0‟ si es de tipo char y null si es de tipo String.

Clases de Métodos:
Hay 2 tipos: Los SubProgramas y las Funciones

Un Procedimiento se caracteriza por ejecutar instrucciones y uno


SUBPROGRAMAS tener una tarea especifica sino holistica es decir si desea imprimir
(Procedimientos) o utilizar algún valor del procedimiento debera declararse como
variable Global.
Public Sub nombreProcedimiento()
Declaración de variables locales
Cuerpo del método
End Sub
Definicion
Public Sub nombreProcedimiento(Parametros)
Declaración de variables locales
Cuerpo del método
End Sub
nombreProcedimiento()
Invocacion Call nombreProcedimiento()
Call nombreProcedimiento(Parametros)

Caso Desarrollado: Utilizando Procedimientos

UNIMASTER Pagina Nº 3
Programador con Visual Basic 2008 CAPITULO IV

Declaración de Variables Dim importePago As Decimal, Precio As Decimal


Globales. Dim Regalo As String

Private Sub frmVentaProductos_Load() Handles MyBase.Load


cboProducto.Items.Add("P1")
cboProducto.Items.Add("P2")
cboProducto.Items.Add("P3")
End Sub

Private Sub btnProcesar_Click() Handles btnProcesar.Click


Dim Producto As Integer = cboProducto.SelectedIndex
Dim Cantidad As Integer = Integer.Parse(txtCantidad.Text)

'Llamando a los Metodos


asignaPrecio(Producto)
calcularImporte(Precio, Cantidad)
asignaRegalo(Cantidad)
Imprimir()
End Sub

Public Sub asignaPrecio(ByVal Producto As Integer)


Select Case Producto
Case 0 : Precio = 15.0
Case 1 : Precio = 17.5
Case 2 : Precio = 20.0
End Select
End Sub

Public Sub calcularImporte(ByVal Precio As Decimal, ByVal Cantidad As


Integer)
importePago = Precio * Cantidad
End Sub
Public Sub asignaRegalo(ByVal Cantidad As Integer)
If Cantidad <= 25 Then
Regalo = "Lapicero"
ElseIf Cantidad <= 50 Then
Regalo = "Cuaderno"
Else
Regalo = "Agenda"
End If
End Sub

Public Sub Imprimir()


txtS.Text = "*** Resumen de Ventas ***"
txtS.Text += vbNewLine & "El Importe a Pagar es: " & importePago
txtS.Text += vbNewLine & "Regalo asignado es: " & Regalo
End Sub

UNIMASTER Pagina Nº 4
Programador con Visual Basic 2008 CAPITULO IV

Las funciones tienen la caracteristica de devolver un valor a quien


FUNCIONES lo invoca y alli radica la diferencia con los procedimientos.
Public Function nombreFuncion()
Declaración de variables locales
Return valorRetornado
End Function
Definicion
Public Function nombreFuncion(ParaMetros) as Tipo
Declaración de variables locales
Return valorRetornado
End Function
Variable= nombreFuncion()
Invocacion lblMensaje.text = nombreFuncion()
Operación = nombrefuncion() – Valor

Caso Desarrollado: Utilizando Funciones

Private Sub frmVentaProductos_Load() Handles MyBase.Load


cboProducto.Items.Add("P1")
cboProducto.Items.Add("P2")
cboProducto.Items.Add("P3")
End Sub

Private Sub btnProcesar_Click() Handles btnProcesar.Click


Dim Producto As Integer = getProducto()
Dim Cantidad As Integer = getCantidad()

Dim Precio As Decimal = asignaPrecio(Producto)


Dim importePago As Decimal = calcularImporte(Precio, Cantidad)
Dim Regalo As String = asignaRegalo(Cantidad)
Call Imprimir(importePago, Regalo)
End Sub
Public Function getProducto() As Integer
Return cboProducto.SelectedIndex
End Function

UNIMASTER Pagina Nº 5
Programador con Visual Basic 2008 CAPITULO IV

Public Function getCantidad() As Integer


Return Integer.Parse(txtCantidad.Text)
End Function

Public Function asignaPrecio(ByVal Producto As Integer) As Decimal


Dim Precio As Decimal
Select Case Producto
Case 0 : Precio = 15.0
Case 1 : Precio = 17.5
Case 2 : Precio = 20.0
End Select
Return Precio
End Function

Public Function calcularImporte(ByVal Precio As Decimal, ByVal Cantidad As Integer)


Dim importePago As Decimal = Precio * Cantidad
Return importePago
End Function
Public Function asignaRegalo(ByVal Cantidad As Integer) As String
Dim Regalo As String
If Cantidad <= 25 Then
Regalo = "Lapicero"
ElseIf Cantidad <= 50 Then
Regalo = "Cuaderno"
Else
Regalo = "Agenda"
End If
Return Regalo
End Function

Public Sub Imprimir (ByVal importePago As Decimal, ByVal Regalo As String)


txtS.Text = "*** Resumen de Ventas ***"
txtS.Text += vbNewLine & "El Importe a Pagar es: " & importePago
txtS.Text += vbNewLine & "Regalo asignado es: " & Regalo
End Sub

UNIMASTER Pagina Nº 6
Programador con Visual Basic 2008 CAPITULO IV

Casos Propuestos:
1. Una empresa calcula el sueldo bruto de sus trabajadores multiplicando las horas
trabajadas por una tarifa horaria que depende de la categoría del trabajador de acuerdo a
la siguiente tabla:

Por ley, todo trabajador se somete a un porcentaje de descuento del sueldo bruto: 20% si
el sueldo bruto es mayor que S/. 2500 y 15% en caso contrario.

Diseñe un programa que determine el sueldo bruto, el descuento y el sueldo neto que le
corresponden a un trabajador de la empresa. Declare todas las variables como globales y
use Funciones o Procedimientos diferentes para cada uno de los cálculos.

2. En un parque de diversiones un juego consiste en efectuar 20 lanzamientos de una pelota a


uno de cuatro arcos de diferentes tamaños. Por cada gol anotado se recibe cierta cantidad
de puntos de acuerdo a la siguiente tabla:

Luego en base al puntaje total obtenido se efectúa un obsequio de acuerdo a la siguiente


tabla:

Diseñe un programa que determine el puntaje total obtenido por un jugador y el premio
que le corresponde.
Declare todas las variables como locales y use Funciones o Procedimientos para cada una
de las entrada y para cada uno de los cálculos.

UNIMASTER Pagina Nº 7
Programador con Visual Basic 2008 CAPITULO IV

FORMULARIO PRIMARIO MDI


A. Añadir un Formulario MDI:
ProyectoAgregar Windows Form Seleccionar Formulario primario MDI

Una vez añadido el control MDI aparece el siguiente formulario:

Automaticamente se le asigna una Barra de Herramientas, una Barra de Menu y una Barra de
Estado predeterminada, apareciendo los controles en la parte inferior.

UNIMASTER Pagina Nº 8
Programador con Visual Basic 2008 CAPITULO IV

Opciones:

FrmVenta.MdiParent = Me
Hacer una invocacion a un Formulario
FrmVenta.Show()

Caso Propuesto:
Crear un menu de opciones de todos los ejercicios propuesto en los manuales digitales (3
Sesiones).

UNIMASTER Pagina Nº 9
Programador con Visual Basic 2008 CAPITULO IV

UNIMASTER Pagina Nº 10
Programador con Visual Basic 2008 CAPITULO IV

MANEJO DE ARREGLOS
VECTOR, ARRAY (Matriz, Tabla, Arreglo):

 Un Arreglo es un conjunto de elementos dispuestos uno a continuación de otro, donde cada


elemento conserva su propio espacio. Además el espacio de cada elemento es igual para
todos y lo que se puede almacenar en cada uno de ellos es de diferente valor pero del
mismo tipo de datos.
 Para poder hacer referencia a los elementos del Arreglo es necesario utilizar un índice que
vendría a ser la numeración consecutiva de cada espacio que ocupa un dato en el arreglo.
Esta numeración normalmente comienza en 0 (Cero).
 Un Array puede almacenar en una sola variable varios elementos del mismo tipo utilizando
un índice. Es una secuencia de posiciones de la memoria central el cual contiene datos del
mismo tipo.
 Cuando un arreglo tiene una única numeración (es decir un solo índice) se le conoce como
un arreglo UNIDIMENSIONAL o VECTOR.
 Cuando un arreglo tiene 2 numeraciones (2 índices) se le conoce como BIDIMENSIONAL, 3
índices TRIDIMENSIONAL, algunos prefieren llamarlo MATRIZ o simplemente ARREGLO
MULTIDIMENSIONAL.

Forma Grafica:
0 1 2 3 4 5 Índice
A 5 28 35 36 85 32 Elementos

Nombre del arreglo

DECLARACION DE UNA VARIABLE TIPO ARREGLO


Formato:

DIM NombreArreglo(Dimensión) AS TipoDato

Donde:
Dimensión: Es el tamaño máximo declarado para el arreglo. Ejm:

 Dim A(5) As Integer (Declaro un Arreglo de 6 Elementos numéricos)


 Dim A(1 to 5) As Integer (Declaro un Arreglo de 5 Elementos numéricos)

Tipo de Datos: Es el Tipo de Datos que almacenara los datos del Arreglo. Ejem: ENTERO,
esto indicara que solo se almacenara en el arreglo números enteros.

NombreArreglo: Es el nombre que utilizara en el programa. Ejem: Nombres, esto indica


que Nombres almacenará una cantidad de Elementos textuales.

OPERACIONES BÁSICAS CON VECTORES


Si tenemos el arreglo A con los siguientes elementos: 0 1 2 3 4
12 15 7 0 23

LblValor.text = A(1) : Imprime el valor ubicado en la posición 1 es decir 15


A(3) = 30 : A la posición 3 del Arreglo A tiene el valor de 30
Suma = A(1)+A(4) : Almacena en la variable Suma el valor de 1(15) y 4(23) = 38
Suma = Suma+a(1) : Almacena el valor de suma(38) y la posición 1 del arreglo(15)=53

UNIMASTER Pagina Nº 11
Programador con Visual Basic 2008 CAPITULO IV

Objeto ListView
Permite mostrar una colección de elementos en un cuadro de lista el cual contiene diferentes
vistas.

Propiedades:
PROPIEDADES
Name Es el nombre del objeto. Por Ejemplo: lvVentas
Columns Columnas mostradas en la Vista Detalles
GridLines Muestra una cuadricula alrededor de los elementos del ListView
Items Hace referencia a los elementos del ListView
View Presenta 5 vistas diferentes del ListView: LargeIcon, Details, SmallIcon, List y Tile.

Opciones:
Cambiar la vista
lvVenta.View = View.Details
del ListView
Asignar la rejilla
lvVenta.GridLines = True
al ListView
Crear una
columna y
lvVenta.Columns.Add("Nombre",100,HorizontalAlignment.Center)
asignarle un
Titulo.
‘Crear un Objeto del tipo ListViewItem
Dim Objeto As New ListViewItem(Valor1, 0)

‘Llenar de Elementos el objeto


Asignar
Objeto.SubItems.Add(Valor2)
elementos al
Objeto.SubItems.Add(Valor3)
ListView
Objeto.SubItems.Add(Valor4)

‘Enviar los elementos al ListView


lvNombre.Items.Add(Objeto)

UNIMASTER Pagina Nº 12
Programador con Visual Basic 2008 CAPITULO IV

CASO DESARROLLADO
Se debe crear una aplicacion que permita registrar la Venta de los productos de acuerdo a la
siguiente tabla:

Producto Precio
Lavadora 1500
Television 2500
Radio 700
Refrigeradora 3200

Notas:
- Debera utilizar programacion modular
- Asignar el subTotal a un Arreglo Unidimensional
- Registrar las Ventas en un ListView
- Aplicar un Descuento del 10% al Total de Venta

UNIMASTER Pagina Nº 13
Programador con Visual Basic 2008 CAPITULO IV

Dim aSubtotal(100) As Decimal, i As Integer

Private Sub frmMatriz_Load() Handles MyBase.Load


ConfiguraLista()
'Llenando el Combo de Productos
cboProductos.Items.Add("Lavadora")
cboProductos.Items.Add("Television")
cboProductos.Items.Add("Radio")
cboProductos.Items.Add("Refrigeradora")
End Sub

Private Sub btnComprar_Click() Handles btnComprar.Click


Dim producto$ = getProducto()
Dim cantidad% = getCantidad()
Dim precio@ = asignaPrecio(producto)
Dim subTotal@ = precio * cantidad
aSubTotal(i) = subTotal
llenaLista(producto, precio, cantidad, subTotal)
i += 1
End Sub

Public Function getProducto() As String


Return cboProductos.Text
End Function

Public Function getCantidad() As Integer


Return Integer.Parse(txtCantidad.Text)
End Function

Public Function asignaPrecio(ByVal producto As String)


Dim Prec@
Select Case producto
Case "Lavadora" : Prec = 1500
Case "Television" : Prec = 2500
Case "Radio" : Prec = 500
Case "Refrigeradora" : Prec = 2500
End Select
Return Prec
End Function

Public Sub llenaLista(ByVal Producto As String, ByVal Precio As Decimal,


ByVal Cantidad As Integer, ByVal SubTotal As Decimal)
'Creando una Coleccion de los Elementos
Dim Venta As New ListViewItem(Producto, 0)
Venta.SubItems.Add(Precio)
Venta.SubItems.Add(Cantidad)
Venta.SubItems.Add(SubTotal)
lvVenta.Items.Add(Venta)
End Sub

UNIMASTER Pagina Nº 14
Programador con Visual Basic 2008 CAPITULO IV

Public Sub ConfiguraLista()


'Configurando la Lista de Venta
lvVenta.View = View.Details
lvVenta.GridLines = True
lvVenta.Columns.Add("Producto", 100, HorizontalAlignment.Center)
lvVenta.Columns.Add("Precio", 70, HorizontalAlignment.Center)
lvVenta.Columns.Add("Cantidad", 70, HorizontalAlignment.Center)
lvVenta.Columns.Add("SubTotal", 70, HorizontalAlignment.Center)
End Sub

Private Sub btnResumen_Click() Handles btnResumen.Click


Dim i As Integer, suma As Decimal = 0
For i = 0 To lvVenta.Items.Count - 1
suma += aSubtotal(i)
Next
Dim descuento As Decimal = suma * 0.1
Dim neto As Decimal = suma - descuento

lblBruto.Text = suma.ToString("0.00")
lblDescuento.Text = descuento.ToString("0.00")
lblNeto.Text = neto.ToString("0.00")
End Sub

Public Sub Limpia()


txtCantidad.Text = Nothing
cboProductos.Focus()
End Sub

Caso Propuesto:
Una heladería vende helados al por mayor a los precios unitarios dados en la siguiente tabla:

Sol S/. 1.5


Fresa S/. 2.0
Mar S/. 1.7
Rico S/. 2.5
elado Precio unitario
Diseñe una aplicación que determine el importe a pagar por la compra de cierta cantidad de
helados de diferentes tipos para tal efecto debera utilizar ListView, Métodos necesarios para la
solución al caso.

UNIMASTER Pagina Nº 15

Potrebbero piacerti anche