Beruflich Dokumente
Kultur Dokumente
De los distintos tipos de datos con los que se puede trabajar, los ms importantes son los
de la siguiente tabla:
Tipo de dato
Declaracin en
Descripcin
Basic
Cadena de
String
Este dato ser una cadena de caracteres de hasta
caracteres
64 Kb de longitud
Entero
Integer
Este dato podr ser cualquier nmero entero
comprendido entre -32 768 y 32 767
Entero largo Long
Este dato podr ser cualquier nmero entero
comprendido entre -2 147 483 648 y
2 147 483 647
Decimal
Single
Cualquier nmero decimal comprendido entre 3,41038 y 3,41038
Decimal
Double
Cualquier nmero decimal (con doble precisin)
doble
comprendido entre -1,7910308 y 1,7910308
precisin
Fecha y hora Date
Este dato puede ser la fecha de cualquier da y
hora de cualquier momento
Declaracin de constantes
Existen valores que permanecen inalterables en un programa; si estos se utilizan con
frecuencia en el programa, y adems su valor es difcil de recordar o escribir, sera muy
interesante poderlos definir de algn modo para que resultara ms secillos incluirlos en
las expresiones.
Con esta intencin se pueden definir, en Visual Basic, constantes con las mismas
caractersticas que las variables, salvo una importante diferencia: el valor de una
constante no puede ser modificado durante la ejecucin del programa.
Las sentencias para definir constantes son similares a las utilizadas con las variables,
aunque ahora hay que utilizar la instruccin Const:
Const nombre = valor
Const nombre As Tipo de dato = valor
Label1
Label2
Label3
Label4
CommandButton2
Label5
Operador
+
*
/
Potenciacin
Cociente de la
divisin
Resto de la
divisin
\
Mod
Caracterstica
Calcula la suma de dos o ms datos o variables
Calcula la diferencia entre dos datos
Multiplica el valor de las variables
Calcula el valor de la divisin de dos datos o variables
numricas
Calcula el valor de la divisin de dos datos o variables
numricas
Calcula el cociente de la divisin de dos datos o
variables numricas
Calcula el resto de la divisin entre los datos indicados
Las prioridades a la hora de realizar una operacin aritmtica son las habituales:
1. Potencias
2. Multiplicaciones y divisiones
3. Sumas y restas
Cuando existen varias operaciones con la misma prioridad, se efectuarn de izquierda a
derecha. Para alterar la prioridad, hay que utilizar parntesis.
Observa el siguiente formulario, diseado para efectuar los principales clculos
aritmticos con los nmeros que se introducen en los cuadros de texto. El formulario
consta de diecisis etiquetas, dos cuadros de texto y dos botones de accin.
En las etiquetas que muestran el resultado de alguna operacin (Label10,, Label16) se
ha seleccionado el color Sombra iluminada del botn para la propiedad BackColor.
Analiza las sentencias del procedimiento del programa que muestra la siguiente figura y
comprenders mejor el significado de algunas operaciones no tan triviales.
Asignacin de valores
La operacin consiste en dar valor a una variable. En Visual Basic, la asignacin de
variables se realiza utilizando el carcter del signo igual (=), tal y como has comprobado
en los programas anteriores.
Esta operacin de asignacin podra parecer equivalente a la igualdad matemtica; sin
embargo, aunque el carcter utilizado sea el mismo, tiene funciones totalmente
diferentes.
En matemticas, el operador de igualdad se utiliza para indicar que dos expresiones son
exactamente iguales.
13 + 4 = 17
En informtica, el operador de igualdad se utiliza para asignar un valor a una variable,
por lo que pueden darse distintas situaciones.
A = 13 + 8
SUMA = A + B
Existe una operacin que en matemticas no tiene sentido y, sin embargo, en
informtica se utiliza en un gran nmero de ocasiones, como, por ejemplo, para
incrementar el valor que tenga en ese momento una variable ms/menos otro que se
especifique.
A=A+1
A continuacin, se va a crear un programa que permitir comprobar cmo es posible, en
informtica, utilizar el operador de asignacin para modificar el valor de una variable
con el resultado de una operacin en la que est implicado el valor de la propia variable.
Adems, se va a aprovechar la ocasin para estudiar la funcin InputBox, y aprender
as otro modo de introducir datos en un programa y asignarlos a ciertas variables que
estuvieran definidas previamente. La sintaxis de la funcin, de forma resumida es as:
InputBox (mensaje,[ttulo])
El argumento que se muestra entre corchetes es optativo, por lo que no hay obligacin
de utilizarlo. El significado de los argumentos es:
Estructuras selectivas
Estructuras bsicas de control
La programacin estructurada proporciona una serie de tcnicas que facilitan la tarea de
programar, ya que reducen el tiempo requerido para escribir, verificar, depurar y
modificar los programas.
Esta programacin se basa en la utilizacin de ciertas estructuras bsicas, como son las
estructuras secuenciales, las estructuras selectivas y las estructuras repetitivas.
NUM 1 = 0
NUM 2 = 0
SUMA = 0
Leer teclado
NUM 1 + NUM 2
NO
TOTAL
>0
INSTRUCCIN 1
INSTRUCCIN 2
S
INSTRUCCIN 3
INSTRUCCIN 4
Sentencia If
En Visual Basic, como en todos los lenguajes de programacin, existen varias
instrucciones condicionales o selectivas, llamadas as porque evalan una condicin y,
dependiendo de su resultado, seleccionan un conjunto de instrucciones para ejecutar.
La sentencia if evala una condicin y, en caso de cumplirse, ejecuta una serie de
instrucciones determinadas; en caso contrario seguir ejecutndose el programa o se
realizarn otras instrucciones alterativas.
El formato general de esta sentencia es:
If condicin Then sentencia1 [Else sentencia2] [End If]
Si la condicin es cierta, se ejecutar la sentencia1 y no se ejecutar la sentencia2,
aunque se hubiera escrito.
En caso de que la condicin sea falsa, no se ejecutar la sentencia1 y s lo har, si se
hubiera escrito, la sentencia2.
TOTAL 100
INSTRUCCIN 1
INSTRUCCIN 2
Cuerpo
del bucle
Condicin del
bucle. El bucle se
repetir mientras la
suma de los
nmeros
introducidos sea
menor o igual a
100.
A continuacin se muestra un formulario con su cdigo que muestra cul de los dos
nmeros introducidos es mayor.
condicin
Instruccin que se
ejecutar si se cumple
la condicin
Como puede verse, se han utilizado tres sentencias If para abarcar las tres posibilidades
que surgen al comparar dos datos.
Puesto que las tres sentencias If son independientes, se evaluarn por separado y, como
las condiciones son excluyentes entre s, solo se cumplir una de ellas, dando al final un
solo resultado.
Prctica 12: copia el programa anterior y gurdalo como vbtunombre12.
Operadores relacionales
Como se ha visto anteriormente, en las condiciones se pueden utilizar los habituales
operadores relacionales: mayor que, menor que, menor o igual que
Operador
Igual que
Escritura
=
Mayor que
>
Menor que
<
Mayor o
igual que
Menor o
igual que
Distinto de
>=
<=
<>
Descripcin
La expresin a = b toma valor verdadero si a es igual que
b, y falso si a es distinto que b.
La expresin a > b toma valor verdadero si a es mayor
que b, y falso si a es menor o igual que b.
La expresin a < b toma valor verdadero si a es menor
que b, y falso si a es mayor o igual que b.
La expresin a >= b toma valor verdadero si a es mayor o
igual que b, y falso si a es menor que b.
La expresin a <= b toma valor verdadero si a es menor o
igual que b, y falso si a es mayor que b.
La expresin a <> b toma valor verdadero si a es distinto
de b, y falso si a es igual que b.
Operadores lgicos
A la hora de expresar algunas condiciones, adems de los operadores relacionales, es
necesario utilizar alguno de los denominados operadores lgicos. En la siguiente tabla
se muestran los principales operadores lgicos, junto a la forma de escribirse en Visual
Basic y a una breve descripcin.
Operador
Y
Escritura
And
Or
Negacin
Not
Descripcin
El operador Y obliga a que se cumplan todas las
condiciones incluidas en la expresin, para que esta
tome valor verdadero; en cuanto haya una que no se
cumpla, la expresin tomar valor falso.
El operador O hace que la expresin tome valor
verdadero en cuanto se cumpla una, o varias, de las
condiciones incluidas en la expresin; solo en el caso de
que no se cumpla ninguna de las condiciones, la
expresin tomar valor falso.
Este operador hace que la expresin tome valor
verdadero cuando no se cumpla la condicin, y lo tome
falso cuando s lo haga.
Prctica 13: evala las siguientes expresiones como verdaderas o falsas, teniendo en
cuenta que a = 1, b = 2, c = 3 y d = 4.
1.
2.
3.
4.
5.
6.
7.
Estructura If
Cuando se vayan a ejecutar varias sentencias, tanto en el caso de que se cumpla la
condicin de la sentencia If como en el de que no se cumpla, lo mejor es utilizar una
estructura alternativa que permita ver mejor la secuencia del programa. Adems, esta
estructura facilita la utilizacin de varias sentencias anidadas, es decir, unas dentro de
otras.
El formato general de esta estructura es el siguiente:
If condicin Then
Sentencia
Sentencia
Else
Sentencia
Sentencia
End If
En el siguiente programa se comparan tres nmeros introducidos en otros tantos cuadros
de texto para obtener algunos de los posibles resultados de esta comparacin. Como
puede verse, se han utilizado varias estructuras If que se comentan a continuacin:
3
4
5
6
1. Todas las sentencias forman una estructura If, que a su vez tiene otra estructura
If dentro de su clusula Else. Cada estructura If debe acabar con la sentencia
End If.
2. Solo se ejecutar si los tres valores son iguales (se ha utilizado el operador Y).
3. Solo ocurrir si los tres valores no son iguales (est dentro de la clusula Else
del If anterior) y si hay dos iguales (se ha utilizado el operador O).
4. Solo ocurrir si los tres valores no son iguales (est dentro de la clusula Else
del If externo) y si no hay dos iguales (est dentro de la clusula Else del If
interno).
5. Este If cierra la estructura If anidada o interna, llamada as porque est dentro de
otra estructura.
6. Este If cierra la estructura If externa.
7. Estas sentencias If son independientes del resto; tambin realizan varias
acciones al cumplirse la condicin, pero estas se han escrito en la misma lnea
separadas por el carcter dos puntos (:).
Textbox1, Textbox2
y Textbox3
Label1
CommandButton1
Label2
CommandButton2
Label3
Label5 y
Label6
Label7
Label4
Label8
Label9
Label10
Estructuras repetitivas
Una de las principales ventajas de utilizar los ordenadores es que la repeticin de ciertas
acciones se puede realizar de forma automtica, utilizando las estructuras repetitivas.
Las instrucciones repetitivas o bucles permiten ejecutar un conjunto de instrucciones
mientras se cumpla una determinada condicin; a estas instrucciones se las denomina
cuerpo del bucle.
Son varias las sentencias de Visual Basic que permiten crear bucles: For Next,
While Wend, Do Loop, Goto, For Each Next. Aunque todas ellas tienen una
funcin similar, sus particularidades hacen que cada una de ellas sea la ms adecuada
para situaciones determinadas. A continuacin, se van a utilizar algunas de ellas, las
ms frecuentes, para realizar diferentes planteamientos en los que se requiere la
utilizacin de estructuras repetitivas.
Control lista
La finalidad general de un control del tipo lista es ofrecer una lista de elementos para
que el usuario pueda seleccionar uno, aunque tambin puede utilizarse solo para mostrar
un conjunto de datos en forma de lista. Con esta intencin vamos a utilizarlas a partir de
este momento en algunos de los prximos programas.
Las listas de elementos que muestran los controles del tipo lista no son estticas, sino
que es posible agregar nuevos elementos, eliminar otros, e incluso, borrarlos todos y
dejar la lista vaca. Para estas operaciones hay que utilizar algunos de los siguientes
mtodos:
AddItem; agrega un nuevo elemento a la lista.
RemoveItem; borra un elemento concreto de la lista.
Clear; borra todos los elementos y deja la lista vaca.
Los controles del tipo lista se agregan mediante el botn
herramientas.
de la Caja de
aumentando a medida que se completan los bucles y que, al alcanzar un valor final,
paraliza la repeticin del bucle.
El formato general de esta sentencia es:
For variable = valor inicial To valor final [Step incremento]
Sentencia-1
Sentencia-2
Next [variable]
A continuacin, se indican algunas observaciones que deben tenerse en cuenta a la hora
de utilizar la sentencia For Next:
La expresin variable = valor inicial se utiliza para inicializar el contador del bucle, es
decir, para indicar con qu valor comienza la variable contador; esta asignacin se
realiza una sola vez, al principio de la sentencia For.
La expresin Step incremento, que es optativa, permite indicar cmo debe aumentar o
disminuir la variable cada vez que finalice un bucle; si no se especifica un incremento,
la variable aumentar en una unidad.
La expresin To valor final especifica en qu valor de la variable debe detenerse el
bucle; el programa har la comprobacin cada vez que vaya a realizar las sentencias del
bucle (incluso la primera vez) y, cuando el valor de la variable llegue o sobrepase el
especificado, el bucle no volver a ejecutarse y continuar el programa.
La expresin Next enva al programa a la primera lnea del bucle, para que realice las
comprobaciones pertinentes y ejecute, si as tuviera que ser, el bucle de nuevo.
Lo mejor para comprender el
funcionamiento de esta sentencia
es comprobar cmo se utiliza en
un programa que permitir
imprimir los cincuenta primeros
nmeros enteros. El formulario
que se va a utilizar en este
programa solo contendr un
control de tipo lista, en el que se
imprimirn los nmeros. Por lo
tanto, lo primero que hay que
hacer es agregar un control lista
al formulario y modificar su
tamao hasta que sea similar al
de la figura.
Una vez diseado el formulario, habr que escribir el cdigo del nico procedimiento
que tiene el programa, asociado a la ejecucin del programa:
La variable contador
comienza con valor 1
El resultado es la obtencin de una lista cuyos elementos son los 50 primeros nmeros
enteros. Puesto que los elementos de la lista son ms de los que esta puede mostrar,
aparece automticamente una barra de desplazamiento vertical para poder ver aquellos
que estn ocultos.
Observa en el cdigo todas las variables que se han utilizado: dos para almacenar los
valores introducidos en los cuadros de texto, una que almacenar las sumas de los
nmeros y otra que llevar el control del nmero de veces que ha de realizarse el bucle.
Sentencias Do Loop
La sentencia Do Loop repite la ejecucin de un bucle mientras se cumpla una
condicin determinada (While), o hasta que se cumpla la condicin (Until). Adems, la
condicin puede ser evaluada al principio o al final del bucle, dando de este modo una
amplia variedad de posibilidades para esta sentencia, que quedan resumidas en la
siguiente tabla:
Do While
(condicin)
Sentencias
Loop
El bucle se realizar
mientras se cumpla
la condicin, que se
evaluar al
principio.
Do Until
(condicin)
Sentencias
Loop
El bucle se realizar
hasta que se cumpla
la condicin, que se
evaluar al
principio.
Do
Sentencias
Loop While
(condicin)
El bucle se realizar
mientras que se
cumpla la
condicin, que se
evaluar al final.
Do
Sentencias
Loop Until
(condicin)
El bucle se realizar
mientras que se
cumpla la
condicin, que se
evaluar al final.
Do While Loop
En la sentencia Do While Loop, el control del bucle se hace mediante una condicin
que se evala al iniciarse este. Mientras la condicin se cumpla, el bucle se realizar; en
el momento en que la condicin resulte falsa, el bucle dejar de ejecutarse y proseguir
con las instrucciones siguientes al bucle.
Puesto que la condicin se evala al comenzar el bucle, incluso la primera vez, es
posible que este no llegue a ejecutarse ni una sola vez porque la condicin no se
cumpla.
A continuacin, se va a utilizar la sentencia Do While Loop para crear un bucle que
permita obtener, en una lista, todos los nmeros enteros comprendidos entre dos que se
indiquen. En este caso, y para utilizar algunas de las mltiples posibilidades de trabajo,
los valores extremos se introducirn mediante sendos cuadros de entrada, y los nmeros
se obtendrn ordenados en orden descendente.
El formulario que se va a utilizar para este programa tendr un diseo similar al de la
prctica 13, por lo que se puede crear a partir de aquel, realizando las modificaciones
necesarias en el cdigo.
2
4
5
7
1. Se declaran las variables necesarias del tipo Entero. Dos de ellas almacenarn
los valores extremos introducidos con los cuadros de entrada, mientras que la
tercera se utilizar como variable cambiante del bucle.
2. Se asignan los valores introducidos en los cuadros de entrada a las variables a
(el valor mayor) y b.
3. Se le asigna a la variable cambio el valor de la variable a, que era el nmero
mayor.
4. Las sentencias del bucle se realizarn mientras el valor de la variable cambio
sea mayor o igual que el de la variable b (el ms pequeo de los introducidos).
5. Se aade un nuevo elemento a la lista, con el valor que tenga en ese momento la
variable cambio.
6. El valor de la variable cambio disminuye en una unidad.
7. Enva de nuevo al comienzo del bucle para que se evale la condicin y, si
resulta cierta, vuelva a realizar otra iteracin.
La secuencia de la ejecucin del programa sera la que se muestra a continuacin:
Do Until Loop
En la sentencia Do Until Loop, el control del bucle se realiza mediante una
condicin, que se evala al principio, del siguiente modo: el bucle se estar repitiendo
hasta que la condicin se cumpla, momento en el que el bucle finalizar y proseguir el
programa con las sentencias escritas tras el Loop correspondiente.
En el siguiente ejemplo se utiliza esta sentencia para calcular el factorial de un nmero
que se introducir mediante un cuadro de texto.
1
2
3
4
5
6
7
9
Do Loop While
En el caso de la sentencia Do Loop While, el control del bucle se realiza mediante
una condicin que se evala al finalizarse cada iteracin del bucle. Mientras la
condicin se cumpla, el bucle seguir repitindose; en el momento en que la condicin
resulte falsa, el bucle se detendr y el programa proseguir con las siguientes
instrucciones.
Puesto que la condicin se evala al final del bucle, este siempre se ejecutar, como
mnimo una vez.
En el siguiente programa se utiliza esta sentencia para calcular la suma de los nmeros
que se introduzcan mediante distintos cuadros de entrada; adems, el programa pregunta
previamente cuntos nmeros se quieren sumar.
2
3
4
5
6
7
8
9
1. Se definen dos variables del tipo entero: contador para llevar el control del bucle
y nmero para almacenar el nmero de datos que se va a sumar.
2. Se definen dos variables del tipo decimal: dato, para almacenar temporalmente
cada uno de los nmeros que se quiera sumar, y suma, para ir calculando las
sumas parciales y definitiva de los datos.
3. El programa solicita el nmero de datos que se van a sumar, valor que se asigna
a la variable nmero.
4. Se inicializan las variables con los valores adecuados.
5. Comienzo del bucle que, al no tener condicin al principio, se realiza por lo
menos, una vez.
6. Esta variable va acumulando la suma de los nmeros introducidos.
7. La variable contador aumenta en una unidad cada vez que se ejecuta el bucle.
8. Mientras la variable contador sea menor o igual que el nmero de datos que se
quiera sumar (variable nmero), el programa volver a repetir el bucle.
9. Cuando finalice el bucle, aparecer el resultado de la suma.
El resultado ser como se muestra a continuacin:
Do Loop Until
Una de las aplicaciones ms frecuentes de las sentencias Do Loop While y Do
Loop Until es el control de los datos que se introducen durante la ejecucin del
programa; la nica diferencia entre ellas es la condicin (son contrarias), ya que una
sentencia repetir el bucle mientras se cumpla la condicin, y la otra sentencia repetir
el bucle hasta que se cumpla la condicin.
En el siguiente programa, que permite calcular la raz cuadrada de un nmero, se utiliza
la sentencia Do Loop Until para evitar que el usuario pueda introducir valores
negativos, que produciran un error en el clculo de su raz cuadrada.
1
2
3
4
1. Se declara la nica variable que hace falta para almacenar el nmero que se
introduzca en el cuadro de entrada. Se ha definido del tipo Double para que
pueda calcularse, con precisin, races cuadradas de nmeros decimales.
2. Se ejecuta el bucle y se solicita un nmero al usuario, que queda almacenado en
la variable a.