Escolar Documentos
Profissional Documentos
Cultura Documentos
Visual Basic 1.0, 2.0 y 3.0: podemos denominar a estar versiones como
antecedentes del Visual Basic que conocemos hoy en da.
Visual Basic 2008, 2010, 2012, 2020 : Visual Basic es un lenguaje vivo que se
mantiene integrado dentro de la plataforma Visual Studio y del que continan
apareciendo versiones que van introduciendo progresivas mejoras.
El usuario de Visual Basic se enfrenta a una larga lista de trminos como pueden
ser: propiedad, formulario, control, evento, mtodo, funcin, argumento, operador,
instruccin, procedimiento, etc. que inicialmente pueden resultar un tanto
abrumadores por su variedad y carcter abstracto. Trataremos de evitar el uso de
terminologa abstracta en la medida de lo posible, pero necesariamente
habremos de enfrentarnos a ella y utilizarla. Una forma sencilla de hacerlo es
aprender jugando. Arrancaremos el ordenador y vamos descubriendo Visual
Basic a travs de pequeos programas de prueba.
Visual Basic
Hemos generado un label igual al anterior, aunque por distinta va. Fjate que
estamos trabajando con elementos "prefabricados". No estamos escribiendo
cdigo para generarlos, simplemente el proceso es "Visual". Visual Basic trabaja
con dos tipos de objetos principales: las ventanas, como puede ser un formulario,
y los controles, como puede ser un Label (etiqueta) como el que hemos colocado
en nuestro formulario. Hay distintos tipos de controles, como puedes comprobar
en el cuadro de herramientas.
ForeColor
Devuelve o establece el color de primer plano usado para mostrar textos y grficos
en un objeto (este texto depende de la versin de Visual Basic que estemos
usando. En otros casos puede ser Color de primer plano de este componente,
utilizado para mostrar texto o algo similar).
La ventana Propiedades, al igual que hemos visto con otros casos, la puedes
cerrar con el aspa correspondiente y restablecerla con el icono de la barra de
herramientas, la tecla F4 eligiendo la opcin Ventana de Propiedades del men
Ver (en algunas versiones men Ver, Otras ventanas, Ventana propiedades) . La
ventana de propiedades nos muestra una lista de propiedades del objeto que tiene
el enfoque, as como una descripcin de la propiedad y a veces opciones de
valores para dichas propiedades. Juega un poco leyendo propiedades de un form
o de un label, y cambia valores cuando entiendas lo que indica la descripcin.
Modifica por ejemplo el contenido de Caption Text para el Form1 y comprueba lo
que sucede.
El propio Visual Basic dispone de una instruccin que obliga a tener que declarar
todas las variables, denominada Option Explicit. La obligacin de declaracin de
variables puede establecerse de dos maneras.
a) En la ventana de cdigo escribir Option Explicit (en las versiones ms
modernas debe escribirse Option Explicit On).
b) En el men Herramientas, selecciona Opciones... y en la pestaa Editor (en
otras versiones Herramientas, Opciones, Proyectos y Soluciones, Valores
predeterminados de VB) establece (o comprueba que est establecida) la
opcin Requerir declaracin de variables como activa Option Explicit On.
TIPO DE
DATOS
Integer
(Entero)
ABREVIATURA
MEMORIA
REQUERIDA
RANGO DE
VALORES
EQUIVALENCIA
CON USADAS EN
PSEUDOCDIGO
OBSERVACIONES
2 bytes 4
bytes segn
versin
- 32768 a
32767 2.147.483.648
a
Entero
Uso en contadores,
control de bucles etc.
2.147.483.647
segn versin
Long
(Entero
largo)
Single
(Decimal
simple)
&
4 bytes 8
bytes segn
versin
2147483648 a
2147483647 9,2E+18 a
9,2E+18 segn
versin
4 bytes
- 3,41038
a
3,41038
Entero
Real
Hasta 6 decimales o
ms segn versin.
Tambin admite
enteros
Real
Hasta 14 decimales o
ms segn versin.
Tambin admite
enteros
Double
(Decimal
doble)
8 bytes
- 1,7910308
a
1,7910308
Boolean
(Booleano)
No tiene
2 bytes
True
o
False
Booleano
False es el valor
predeterminado y va
asociado a cero
10 bytes + 1
byte por cada
carcter
0
a
2109 caracteres
Alfanumrica
Texto de longitud
variable
Variable
No tiene
Admite nmeros
enteros, decimales o
texto
String
Variant
(Object en
otras
versiones)
No tiene
Existen otros tipos de variables. Algunos tipos son comunes a todas las versiones de Visual Basic mientras que otros tipos
slo estn disponibles en algunas versiones. Otros tipos que pueden aparecer en Visual Basic son el tipo Byte, Char, Date,
Decimal, Object,Sbyte, Short, UInteger, Ulong, Ushort Currency, String de longitud fija o las variables definidas por el Usuario a
travs de Type User-Defined. Ahora no te preocupes por conocer todos los tipos de Visual Basic, te irs familiarizando con ellos
poco a poco a lo largo del curso. Puedes acceder a informacin sobre los tipos de variables a travs de la ayuda, buscando Tipos de
datos,
Resumen
de
tipos
de
datos
Type
(instruccin)
Tipo
de
datos
definido
por
el
usuario.
Los tipos definidos por el usuario, tambin llamados variables UDT (User Definided Type) o variables Structure (estructuras) son
variables especiales que tienen un nombre general y luego n variables internas o campos. Su inters e importancia son notables.
Por ello te recomendamos que ms adelante profundices en ellas por tu cuenta. Por el momento solo es necesario que atiendas a los
contenidos del curso.
Hay dos opciones: bien obtenemos un error de compilacin (si la versin de Visual
Basic que estemos usando no admite esta declaracin), bien la variable
Numerodeplantas es considerada por Visual Basic como tipo Variant. Todava no
est definido si es de tipo numrico (nmeros) o alfanumrico (texto). En este caso
la definicin se producir a posteriori cuando asignemos contenido a la variable.
Otra forma de declarar la variable como tipo genrico (Variant u Object, segn la
versin) es usar la expresin:
Dim Numerodeplantas As Variant ( Dim Numerodeplantas
As Object)
Hasta ahora estamos viendo las bases que nos van a permitir construir
programas. A medida que vayamos avanzando, empezaremos a construir
pequeos programas para aprender practicando.
Equivalente
d) Dim i%
Dim j%
Dim k%
d) Dim i As Integer
Dim j As Integer
Dim k As Integer
e) Dim i As Integer
Dim j%, k%
e) Dim i As Integer
Dim j As Integer, k As Integer
Las opciones a), b), c), d), e) dan lugar a un mismo resultado. Se declaran tres
variables tipo Integer denominadas i, j, k. Las opciones a- e), escritas de forma
extendida, tambin son vlidas y con el mismo resultado. Nosotros nos
decantamos por usar opciones como la c), donde en una misma lnea aparezcan
variables de un tipo de forma abreviada, excepto la ltima que se pone extendida
de forma aclaratoria, y en las que las variables de una misma lnea tienen algn
tipo de relacin. Por ejemplo tratarse de contadores para bucles.
Ten en cuenta que la declaracin Dim i, j, k As Integer no declara tres variables de
tipo entero de forma correcta. Esta sintaxis es imprecisa y por tanto no debemos
utilizarla. Segn la versin de Visual Basic que estemos usando esto puede
generar errores o problemas. Conviene tener cuidado a la hora de realizar
declaraciones de variables para evitar prcticas de este tipo.
Una expresin como Dim i!, j%, k& equivale a Dim i As Single, j As Integer, k As
Long. Esta expresin es vlida, aunque como hemos dicho preferimos no declarar
distintos tipos de variables en una misma lnea.
EJERCICIO
Realizar una declaracin de variables para las siguientes propuestas de
programas.
a) Un programa que muestra un mensaje de bienvenida.
b) Un programa que nos pide nuestra edad y nos muestra el ao en que nacimos.
c) Un programa que nos muestra el valor medio de tres magnitudes.
d) Un programa que trabaja con: tres contadores para bucles, tres valores de
tensin en una viga (de magnitud no conocida), valores de longitud de la viga,
canto y ancho y un valor interruptor que permite o impide que se muestren
resultados.
SOLUCIN
a) Dim mensaje As String. Tambin es vlida la expresin abreviada Dim
mensaje$.
b) Dim edad As Integer. Tambin podemos usar la expresin abreviada Dim
edad%.
Hemos utilizado el tipo Single para cubrirnos las espaldas. No sabemos con qu
tipo de valores vamos a trabajar y por ello cogemos un tipo de variables bastante
amplio como es el Single. Preferimos no coger Double si no es estrictamente
necesario.
Hemos utilizado dos lneas pero slo un tipo de variable Por qu? El
programador ordena la declaracin de variables como estime ms conveniente. En
este caso ordenamos valores para el clculo en una lnea y resultados en otra.
Resulta ms fcil de leer y analizar que estando todo en una sola lnea.
Siempre ser preferible usar las expresiones tension1, tension2 y tension3 antes
que t1, t2 y t3 que resultan ms confusas. Sin embargo, este tipo de decisiones
siempre quedan a criterio del programador.
Las normas para asignar contenido a variables sern las indicadas en el curso
Bases de la programacin nivel I de aprenderaprogramar.com, teniendo en
cuenta que de forma general usaremos estas equivalencias.
Ejemplo asignacin
contenidos
Dim A As Integer
A = 123
Dim A As Single
A = - 3323.57
Dim A As String
Dim A As String
A = 123 coches
Dim A As String
A = 30500
A = 30500
A = Se asignarn 30500
euros
A=5+2
B = 32
Suma = A + B [Suma
valdr 39]
A=5
B = 32
C = A * B [C toma el valor
160]
D = A + C [D toma el valor
165]
E=D
[E toma el valor
165]
Dim Agotamiento As
Boolean
Agotamiento = True
En cambio:
Dim A%, B%
A=7*B
Supone que A valga cero, ya que si no se asigna un valor a B sta tiene por
contenido el valor por defecto, es decir, cero. 7 * B equivale en este caso a 7 * 0,
que vale cero.
A continuacin elegimos:
a) Para las versiones que nos dan la opcin Aplicacin de Windows Forms
elegimos esta opcin.
b) Para las versiones que nos dan la opcin Exe estndar elegimos esta opcin.
Una vez abierto el proyecto debe aparecernos el formulario vaco sobre la
pantalla. Hacemos doble click sobre el formulario y se nos debe abrir la ventana
de cdigo conteniendo algunas lneas. En caso de que no se te abra la ventana de
cdigo, vete al men Ver y elige la opcin Cdigo.
Escribiremos el siguiente cdigo que corresponde al programa que vamos a
ejecutar:
Para
Basic
Option Explicit On
Public Class Form1
Dim mensaje As String
Private Sub Form1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
mensaje = "Bienvenido a este programa"
MsgBox(mensaje)
End Sub
End Class
Ten en cuenta que segn la versin de Visual Basic que ests utilizando pueden
existir pequeas diferencias en el cdigo que debe usarse. Nosotros pretendemos
centrarnos en la lgica de la programacin ms que en los detalles de la sintaxis
de una versin concreta. Si es necesario, consulta la ayuda para conocer la
sintaxis exacta que debes emplear.
Analicemos las lneas que lo componen.
1. Option Explicit (Option Explicit On). Ya hemos definido su significado.
Ejecuta el programa pulsando la tecla F5. Tambin puedes hacerlo a travs del
men <<Ejecutar / Iniciar>> <<Depurar / Iniciar la depuracin>> segn la versin
que ests utilizando. En algunas versiones existe la opcin <<Ejecutar / Iniciar con
compilacin completa>>, que permite que la ejecucin del programa se haga
realizando una revisin de errores ms exhaustiva que si se ejecuta el programa
pulsando simplemente F5.
Tras ejecutar el programa te aparecer en pantalla el mensaje Bienvenido a este
programa. Para cerrar el programa pulsa aceptar y haz click sobre el aspa de
cierre de la ventana. Vamos a hacer una pequea mejora esttica. Vete a VerDiseador (Ver-Objeto) y cambia el valor de la propiedad Caption Text (segn la
versin que ests usando) del form a "Bienvenida" y modifica el cdigo de la
siguiente manera.
Para las
Fjate que cuando aparezca la ventana del formulario, debido a que hemos
modificado sus propiedades, ahora nos aparecer el texto Bienvenida en la parte
superior.
Tambin hemos usado otros elementos que iremos explicando poco a poco a lo
largo del curso. El objetivo ahora es simplemente irnos familiarizando con Visual
Basic.
La constante vbTab nos ha servido para introducir un tabulador. Ello da lugar a
que el texto aparezca con un pequeo margen por el lado izquierdo y derecho
sobre la ventanita del mensaje. Prueba a introducir variables de tipo numrico y a
dar lugar a que se muestren sus contenidos sobre la ventana del mensaje. Juega
con los nombres de las variables, sus contenidos y la asignacin de contenidos.
Tambin puede resultar de inters que compruebes qu ocurre si declaras una
variable de un tipo y le asignas contenido de otro tipo.Por ejemplo declara Dim
salario As Integer, asgnale el contenido salario = Son 3000 euros y prueba a
mostrarlo en pantalla.
El
programa
se
ejecuta
los
resultados
son
los
deseados.
Sintaxis en bloque:
If [condicin]
Then
Instruccin 1
Instruccin 2
Instruccin n
Else
Instruccin A
Instruccin B
Instruccin Z
End If
Ejemplo:
If A > 7 And B < 5 Then
MsgBox ("A es mayor que 7 y B menor
que 5")
End If
Tambin vlido:
If A > 7 And B < 5 Then MsgBox ("A es mayor que 7 y B
menor que 5") _
Else MsgBox ("A no es mayor que 7 B no es menor que 5")
Programa 1 (versiones
VB ms recientes)
REM Curso Visual Basic
aprenderaprogramar.com
Option Explicit On
Public Class Form1
Dim a%
Private Sub
Form1_Load(ByVal
sender As
System.Object, ByVal e
As System.EventArgs)
Handles MyBase.Load
a=3
If a = 5 Then
MsgBox("Se
cumple que a vale 5")
End If
a = 25
MsgBox("El valor
actual de a es " & a)
End Sub
End Class
Programa 2 (versiones VB ms
recientes)
REM Curso Visual Basic
aprenderaprogramar.com
Option Explicit
Dim a%
Option Explicit On
Public Class Form1
Dim a%
SOLUCIN
Crearemos un Label de solicitud del nmero, un Textbox de entrada, un Button
(Command Button en las versiones menos recientes de Visual Basic) y un Label
para el clculo y el resultado. Le ponemos los nombres y organizamos los
controles en pantalla como nos parezca correcto (no tiene por qu coincidir con lo
que ponemos aqu). Los nombres que hemos empleado nosotros son:
LabelPideNum, TextNentero, ButtonHallar yLabelResultado.
Grficamente:
Hemos escrito el If ... Then Else como un bloque en vez de como una nica
lnea. El motivo para ello es que aporta mayor claridad y facilidad de
interpretacin.
SOLUCIN
Usaremos tres Labels para pedir los parmetros a, b y c denominados Labela,
Labelb y Labelc, y tres TextBox para que el usuario introduzca datos (Texta, Textb
y Textc) adems de un botn (ButtonCalcular). Nosotros hemos aadido adems
un mensaje de cabecera con un label (LabelTitulo). Mostraremos primero el cdigo
para versiones de Visual Basic ms recientes y luego para versiones menos
recientes. Ten en cuenta que la lgica de los programas es en ambos casos igual,
lo nico que vara son los detalles de la sintaxis.
LabelResultado = "x1 = " & -b / e & " + " & Sqr(-d) / e & " * i"
LabelResultado = LabelResultado & vbCrLf & "x2 = " & -b / e & " - " & Sqr(-d) / e & " * i"
End If
End If
End Sub
COMENTARIOS
El programa (ambas versiones de cdigo) "funciona", si bien tiene sus
limitaciones. Prueba a introducir los siguientes datos: a = 0, b = 3 y c = 1 . Te
aparecern resultados extraos (o un error como "Error 6 en tiempo de ejecucin.
Desbordamiento"). El motivo para esos resultados extraos o errores es que si a =
0 implica que e = 0 y al encontrarnos con una operacin del tipo (-b + Sqr(d)) /
edonde el denominador vale cero... operacin matemtica no permitida! Esto
ocurrir mientras no preparemos el programa para detectar este tipo de
situaciones y darles un tratamiento adecuado, cosa que veremos ms adelante.
Estamos construyendo programas sencillos que en lneas generales responden
bien cuando se dan las circunstancias previstas pero que fallan ante situaciones
extraas. Esto no debe preocuparnos por el momento, ya que a medida que
progresemos como programadores iremos construyendo programas cada vez ms
slidos.
Aspecto grfico:
MsgBox ("Eusebio")
End If
End Sub
MsgBox("Arabia")
Else
MsgBox("Eusebio")
End If
End Sub
End Class
Case Else
Instruccin m
End Select
Cuando varios casos son vlidos, slo se ejecutan las instrucciones asociadas al
primer caso verificado, siguiendo el flujo del programa por la siguiente instruccin
despus de End Select. Esto debemos tenerlo muy en cuenta, ya que si
pretendemos que cuando se cumplan dos condiciones se ejecuten sendos
bloques de instrucciones, convendr hacerlo a travs de la instruccin If en vez de
a travs de Select Case.
Las instrucciones Select Case se pueden anidar. Cada instruccin Select Case
debe tener su correspondiente terminacin End Select.
La instruccin Select Case presenta similitudes marcadas con la instruccin If Then. Por ello, en general podremos conseguir resultados similares con ambas
instrucciones y elegir usar una u otra depender de nuestro gusto y de cul se
adapte mejor a nuestros intereses, que en general sern ahorrar cdigo y
conseguir claridad para cumplir el objetivo. Otras veces ser interesante anidar
ambas instrucciones.
Prueba el siguiente cdigo:
El resultado es que se muestra en pantalla "A vale 12". Sin embargo, a pesar de
que la hiptesis A < 14 se cumple, no llega a evaluarse y por tanto las
instrucciones asociadas a este caso no se ejecutan.
EJERCICIO
Transformar en cdigo de Visual Basic el siguiente enunciado: crear un programa
que pida al usuario un nmero de da y un nmero de mes, evale si la entrada es
correcta y en caso de que as sea calcule el da del ao que es, considerando un
ao no bisiesto.
SOLUCIN
Crearemos tres labels a los que denominaremos Label1, Label2 y LabelResultado.
Label1 servir para mostrar un mensaje solicitando que se introduzca el nmero
de da, Label2 servir para mostrar un mensaje solicitando que se introduzca el
nmero de mes y LabelResultado servir para mostrar el resultado.
Crearemos dos TextBoxes denominados Text1 y Text2. El primero de ellos servir
para que el usuario introduzca el dato de nmero de da y el segundo el dato de
nmero de mes.
Finalmente tendremos un botn denominado ButtonCalcular que servir para
mostrar los resultados una vez el usuario haya introducido el dato de nmero de
da y nmero de mes.
Case 11
DDA = Nda + 304
Case 12
DDA = Nda + 334
End Select
LabelResultado = "El " & Nda & " del
" & Nmes & " es el da " & DDA & " del
ao"
Else
LabelResultado = "Datos
proporcionados no vlidos"
End If
End Sub
Aspecto grfico:
Case 11
DDA = Nda + 304
Case 12
DDA = Nda + 334
End Select
LabelResultado.Text = "El " & Nda & " del " &
Nmes & " es el da " & DDA & " del ao"
Else
LabelResultado.Text = "Datos proporcionados
no vlidos"
End If
End Sub
End Class
Muchas veces podremos optar indistintamente por usar una instruccin u otra. En
otros casos, es recomendable decantarse por una de ellas por hacer el programa
ms legible o sencillo que usando otras opciones.
Instruccin n
Next VAR
El incremento que sufre el contador es, por defecto, unitario. Es decir, el primer
valor que toma VAR en el bucle ser Vi, el segundo Vi + 1, el tercero (Vi + 1) + 1,
etc. La modificacin de dicho valor de incremento la realizaremos a travs de la
clusula Step despus del valor Vf. Step 2 implicar que en cada repeticin del
bucle el contador se incremente en dos unidades, Step 5 implicar que en cada
repeticin del bucle el contador se incremente en cinco unidades. Un paso
negativo del tipo Step -1 supone que el contador decrece en vez de
incrementarse. Si el paso es negativo, Vi necesariamente habr de ser mayor que
Vf, ya que en caso contrario no se producir la entrada en el bucle.
Con este cdigo se nos muestra en pantalla 3 veces hola (se ha invertido el
sentido del bucle):
End Sub
End Sub
End Class
Con Visual Basic resulta admisible usar Next sin indicar la variable que est
sirviendo de gua del bucle, pues todo bucle ha de tener un cierre. Sin embargo,
no lo creemos recomendable pues puede dificultar la lectura y depuracin de los
programas.
La instruccin For ... Next es anidable dentro de s misma o dentro de otros tipos
de bucles o estructuras, debiendo seguir las pautas que ya hemos comentado.
EJERCICIO
Transformar en cdigo el siguiente planteamiento: queremos generar un programa
que pida un nmero del 1 al 10 y nos muestre la tabla de multiplicar
correspondiente.
SOLUCIN
Hemos realizado la pregunta relativa al nmero cuya tabla se desea conocer
utilizando un InputBox. Igualmente vlido hubiera sido hacerlo con un Label
contenedor de la pregunta y un TextBox donde el usuario introduce la informacin.
La tabla la mostramos sobre un Label denominado LabelTabla.
Aspecto grfico:
EJERCICIO
Transformar en cdigo el siguiente planteamiento: queremos generar un programa
que muestre todos los enteros comprendidos entre un nmero definido por el
usuario y 100.
SOLUCIN
Aspecto grfico:
Dim i As Integer
Me.Text = "Enteros"
Num = Val(InputBox("Introduzca un nmero
entero comprendido entre 1 y 99", "Nmero?"))
LabelTabla.TextAlign =
ContentAlignment.MiddleCenter
LabelTabla.Font = New Font("Arial", 10,
FontStyle.Bold)
LabelTabla.Text = "ENTEROS ENTRE " &
Num & " y 100" & vbCrLf & vbCrLf
For i = Num To 100
LabelTabla.Text = LabelTabla.Text & i & " "
Next i
End Sub
End Class
While
Instruccin 1
Instruccin 2
.
.
.
Instruccin n
Loop
While
significara "Repetir hasta que i sea mayor o igual que 3". En un bucle en el que i
parte de un valor cero y se incrementa unitariamente Do While i < 3 sera
equivalente a Do Until i >= 3, y Loop Until i >= 3 sera equivalente a Loop While i
< 3. Dado que podemos valernos de equivalencias, puede evitar confundirnos el
usar preferentemente un mismo tipo de expresin, sabiendo que disponemos de
otra equivalente.
Ejercicios
SOLUCIN
En vez de usar una variable string para almacenar la respuesta, usamos los botones predeterminados de
Visual Basic y las constantes vbYes (s) y vbNo (no).
Debemos conocer la ruta en que se ubica el archivo de datos y escribirla correctamente.
Grficamente el resultado ser similar a este:
Teniendo en cuenta lo siguiente: si el libro tiene menos de un ao de antigedad su precio coincide con el
registrado. Si tiene entre uno y tres aos deber aplicarse un descuento del 15%. Si tiene ms de tres aos
deber aplicarse una rebaja del 25%.
Nota: considerar que el nmero total de datos es igual o inferior a 50, y que se encuentran en el fichero
libros.dat. Crear un botn para poder introducir el isbn de un libro y otro botn para poder calcular el precio
del lote. En un archivo al que llamaremos libros.dat pondremos una simulacin de datos como la siguiente:
SOLUCIN
El cdigo sera:
recientes)
REM Curso Visual Basic aprenderaprogramar.com
Rem Curso VB
aprenderaprogramar.com
Option Explicit
Dim i%, Canal As Integer
Dim Dato(50) As Single
Dim ISBN!, Precio!, Valorlote
As Single
Dim Encontrado As Boolean
Private Sub Form_Load()
Show
Form1.Caption = "Libros"
CommandLibro.Caption =
"Precio de un libro"
CommandLote.Caption =
"Precio del lote"
LabelResultado.Alignment = 2
LabelResultado.FontBold =
True
End Sub
Private Sub
CommandLibro_Click()
Encontrado = False
ISBN = InputBox("Cul es el
ISBN del libro?", "ISBN")
Canal = FreeFile
i=1
Open "C:\libros.dat" For Input
As Canal
Input #Canal, Dato(i)
Do While Dato(i) <> -500
Option Explicit On
Public Class Form1
Dim Dato(50) As Single
Dim ISBN, Precio, Valorlote As Single
Dim Encontrado As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Me.Text = "Libros"
CommandLibro.Text = "Precio de un libro"
CommandLote.Text = "Precio del lote"
LabelResultado.TextAlign = ContentAlignment.MiddleCenter
LabelResultado.Font = New Font("Arial", 10, FontStyle.Bold)
LabelResultado.Text = ""
End Sub
Private Sub CommandLibro_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CommandLibro.Click
Dim i As Integer
Encontrado = False
ISBN = InputBox("Cul es el ISBN del libro?", "ISBN")
Dim myFileToRead As New
System.IO.StreamReader("C:\Users\Toshiba\Desktop\libros.dat", False)
i=1
Dato(i) = myFileToRead.ReadLine()
Do While Dato(i) <> -500
If Dato(i) = ISBN Then
Dato(i + 1) = myFileToRead.ReadLine()
Dato(i + 2) = myFileToRead.ReadLine()
Precio = Dato(i + 1)
If Dato(i + 2) = -66 Then
i=1
Open "C:\libros.dat" For Input
As Canal
Input #Canal, Dato(i)
Precio = Dato(i + 1)
If Dato(i + 2) = -66 Then
Precio = 0.85 * Precio
End If
Precio = Dato(i + 1)
If Dato(i + 2) = -66 Then
Precio = 0.85 * Precio
End If
If Dato(i + 2) = -99 Then
Precio = 0.75 * Precio
End If
Valorlote = Valorlote +
Precio
i=i+3
Input #Canal, Dato(i)
Loop
Close
LabelResultado = "El precio del
lote es " & Valorlote
End Sub
Grficamente:
Justificacin
Ojetivo General
Impacto Social
Impacto Ambiental
Impacto
Tecnolgico
Producto del
Proyecto