Sie sind auf Seite 1von 28

PROGRAMACIN ESTRUCTURADA

En programacin, la utilizacin de variables se hace imprescindible, sobre todo si se


desea que un programa no se limite a trabajar con unos datos concretos, sino que el
usuario, o el propio programa, pueda intervenir en estos datos para modificarlos y variar
as el resultado final del programa.
Por otra parte, los programas as de crearse siguiendo una estructura secuencial, ya que
de este modo ser ms sencillo su diseo, escritura e interpretacin. Adems de esta
estructura secuencial, existen otras, entre las que destacan las estructuras selectivas y las
estructuras repetitivas, que proporcionan tcnicas de trabajo muy interesantes.

Tipos de datos y declaracin de variables


Tanto en el mundo real como en informtica, los datos pueden ser de distintos tipos:
textos, nmeros enteros, nmeros decimales, fechas, etc.; por este motivo, y aunque en
el tema anterior no se tuvo en cuenta, conviene declarar, mediante las instrucciones
necesarias, el tipo de cada uno de los datos que se vaya a procesar en un programa.
Por otra parte, los datos pueden comportarse de dos modos diferentes en un programa:

Como constantes; su valor no cambia nunca durante la ejecucin del programa.


Como variables; su valor vara tantas veces como sea necesario.

A la hora de nombrar un dato, hay que tener en cuenta que:

Se puede utilizar cualquier carcter alfanumrico, pero siempre debe comenzar


con una letra.
No se pueden incluir espacios en blanco, por lo que es frecuente utilizar el
carcter guin bajo (_) para nombres compuestos.
La longitud del nombre no puede ser superior a 32 caracteres.
No se pueden utilizar puntos ni otros caracteres especiales, ni tampoco palabras
clave del lenguaje: text, caption, for, and,

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

La declaracin de variables se realiza mediante la sentencia Dim, en la que se deben


especificar el nombre de la variable y el tipo de dato que va a almacenar. Por defecto,
las variables numricas comenzarn con valor cero, y las variables alfanumricas, con el
carcter nulo (vaco). A continuacin se muestran unos ejemplos de utilizacin:

Dim artculo As String


Dim cantidad As Integer
Dim precio As Single
Dim importe As Single
Y de una manera ms resumida:
Dim artculo As String
Dim cantidad As Integer
Dim precio, importe As Single

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

Utilizacin de constantes y variables con controles


Adems de poder asignar valores a las variables mediante sentencias de asignacin, las
variables pueden utilizarse conjuntamente con distintos controles, de modo que, por
ejemplo, sea posible asignar a una variable el contenido de un cuadro de texto o
imprimir el valor de otra en una etiqueta. En el siguiente programa se muestra un
ejemplo.
Primero se declara la constante y las variables que se van a utilizar en el programa, y en
el caso de la constante, se le asigna un valor.
El procedimiento asignado al evento hacer clic del botn Calcular
(CommandButton1) permite asignar el valor del cuadro de texto a la variable radio,
calcular el valor de la longitud y el rea de la circunferencia y el rea del crculo, y
mostrar los valores resultantes en las etiquetas preparadas para ello (Label4 y Label5).
Observa en la siguiente figura el aspecto del formulario, una vez que se ha introducido
un valor de radio en el cuadro de texto y se ha hecho clic sobre el botn Calcular. En l
se indican, como referencia, los nombres de los controles agregados al formulario.

Label1

TextBox1 (introducir los


decimales con coma)
CommandButton1

Label2

Label3

Label4
CommandButton2
Label5

Aqu, los decimales se


ponen con punto

Prctica 7: Realiza el programa anterior y gurdalo como vbtunombre7.

Operaciones aritmticas y de asignacin


La funcin de los operadores aritmticos es la de permitir realizar, con los datos de las
distintas variables, las clsicas operaciones de sumar, restar, multiplicar, dividir, as
como otras no tan elementales.
Los operadores aritmticos bsicos son los que se muestran en la siguiente tabla:
Operacin
Suma
Diferencia
Multiplicacin
Divisin

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.

Val es una funcin de Visual


Basic que permite tratar un
dato como valor numrico

Hay que teclear dos veces y


borrar una vez para que salga ^
Con Alt Gr, en la tecla a la
izquierda del 1

Prctica 8: Realiza el programa anterior y gurdalo como vbtunombre8.

Curiosidad acerca del operador suma (+)


Al observar el cdigo del programa anterior, se puede comprobar que para calcular la
suma de dos datos se utiliz una sentencia que inclua la funcin Val, la cual obliga al
programa a tratar un dato como un valor numrico.
Si no se hubiera utilizado esta funcin, el resultado de sumar los dos valores no hubiera
sido correcto, ya que el programa hubiera concatenado los dos valores. Comprueba el
resultado con la siguiente prctica:
Prctica 9: reduce el programa anterior a calcular solo la operacin SUMA; prescinde
de la funcin Val en la lnea de cdigo correspondiente. Ejecuta el programa y observa
el resultado. Guarda el documento como vbtunombre9.

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:

Mensaje: este texto aparecer en el cuadro de dilogo para informar al usuario


de qu debe introducir
Ttulo: este texto de aparecer en la barra de ttulo del cuadro

Observa el siguiente programa:


El valor que se introduzca en cada cuadro de dilogo
quedar almacenado en la variable a la que se haya
asignado la funcin

En matemticas, esta expresin no tendra sentido; un valor nunca


puede ser igual a s mismo ms otro. Sin embargo, en informtica es
perfectamente vlida: la variable tomar el valor resultante de sumar
el valor que tenga en ese momento ms el que se haya indicado como
incremento.
El resultado de ejecutar este programa sera:

Prctica 10: Realiza el programa anterior. Gurdalo como vbtunombre10.

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

Estructuras secuenciales. Las estructuras secuenciales permiten que


la ejecucin del programa se realice siguiendo un orden determinado.
Por este motivo, las sentencias han de escribirse de forma secuencial,
una tras otra, en el mismo orden en el que deban interpretarse al
ejecutar el programa.

Leer teclado
NUM 1 + NUM 2

Estructuras selectivas. Las estructuras selectivas se utilizan para


tomar decisiones lgicas, por lo que tambin se las conoce con el
nombre de estructuras de decisin o alternativas. En ellas se evala
una condicin, y en funcin de su resultado, se realizan unas u otras acciones.

SUMA = NUM1 + NUM2

NO
TOTAL
>0

INSTRUCCIN 1
INSTRUCCIN 2

S
INSTRUCCIN 3
INSTRUCCIN 4

Estructuras repetitivas. Este tipo de estructuras, tambin denominadas bucles, se


caracterizan por repetir una secuencia de instrucciones un nmero determinado de
veces.
Por otra parte, se conoce con el nombre de iteracin a la ejecucin de todas las acciones
o instrucciones que forman un bucle. Hay que tener en cuenta que en toda estructura
repetitiva debe existir una condicin que controle cundo deben finalizar las iteraciones
del bucle.

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.

Leer del teclado NUM


TOTAL = TOTAL + NUM

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

Esta es la instruccin que se ejecutar si


no se cumple la condicin

Prctica 11: copia el programa anterior y gurdalo como vbtunombre11.


Existen diversas mejoras que se pueden plantear para el programa anterior; una de ellas
ser la de conseguir que el programa diferencie si los datos son iguales, o si el segundo
dato es mayor que el primero. La solucin para esta cuestin es muy sencilla: utilizar
tantas sentencias If (sin argumentos Else) como posibilidades haya en el programa.

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.

a > b And c > d


a > b Or c > d
b > a And c > d
b > a And d > c
Not a = b
c > a or not b = d
c <= a And c >= d

Copia las anteriores expresiones en la primera columna de una tabla de Word y en la


segundo columna pones Verdadero o Falso, segn proceda. Guarda el documento (aqu
no hay ningn programa de Visual Basic) como vbtunombre13.

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 (:).

Al ejecutar el programa se obtendr el resultado expuesto en la siguiente figura; en ella


se han detallado los nombres de los controles empleados. Observa que el texto de la
etiqueta 7 ser aquel que resulte de la evaluacin de las estructuras If anidadas, mientras
que la colocacin de los valores en las etiquetas 8, 9 y 10, vendr determinada por la
ejecucin de la sentencia If independiente que corresponda.

Textbox1, Textbox2
y Textbox3
Label1

CommandButton1

Label2
CommandButton2
Label3
Label5 y
Label6
Label7

Label4

Label8
Label9

Label10

Prctica 14: crea el programa anterior y gurdalo como vbtunombre14.

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

Sentencias For Next


La sentencia For Next permite crear bucles con un nmero de iteraciones
(repeticiones) definidas previamente; por lo tanto , se utiliza en aquellos casos en los
que se sabe el nmero exacto de veces que deben repetirse las instrucciones que
constituyen el cuerpo del bucle.
El modo de controlar el nmero de veces que ha de repetirse el bucle se consigue
utilizando una variable contador; esta comienza con un valor determinado, que va

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

Cuando la variable tome el valor 50, el


bucle se ejecutar por ltima vez.

Cada vez que se realiza el bucle, la variable


contador aumenta en un valor. Como el
aumento es de una unidad, se podra haber
omitido esta expresin.

Ya que solo se utiliza una variable como


contador, no hace falta especificar
ninguna variable en la sentencia Next

Aade a la lista el valor que tiene la variable


contador en el momento en que se ejecuta la
instruccin. Puesto que esta instruccin se va a
realizar varias veces (50), se agregarn 50 nmeros.

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.

Prctica 15: disea el programa anterior y gurdalo como vbtunombre15.


A continuacin, se muestra otro ejemplo de utilizacin de la sentencia For Next, en
este caso para obtener la suma de los nmeros enteros comprendidos entre los dos que
se especifiquen en sendos cuadros de texto.
Segn se observa en el formulario, este devolver el valor de la suma de todos los
nmeros enteros comprendidos entre los dos escritos. Adems, no se ha incluido ningn
botn de accin, ya que el procedimiento se realiza automticamente al introducir el
nmero del segundo cuadro de texto.

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.

El procedimiento est asignado al evento


modificar del segundo cuadro de texto.

A la variable que va a acumular la suma se la


inicializa con valor 0, para evitar que pueda
comenzar con algn valor existente en memoria.
La variable suma, que empieza con valor 0, ir
acumulando (sumando) los valores que vaya teniendo la
variable contador e cada ejecucin del bucle.
Cuando finalice el bucle, se ejecutar la siguiente sentencia,
asignndose el valor que tenga en ese momento la variable
suma a la etiqueta preparada para tal efecto.

Prctica 16: crea el programa anterior y gurdalo como vbtunombre16.

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:

Prctica 17: crea el programa anterior y gurdalo como vbtunombre17.

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

1. Se declaran las variables a y contador del tipo entero y la variable producto


como decimal de doble precisin.
2. Si la variable producto se declarara como entero, o como entero largo, habra
muchos casos en los que el programa dara un error por desbordamiento, puesto
que solo podra obtener valores que no fueran muy altos.
3. Se asigna a la variable a el nmero del que se quiera calcular su factorial.
4. Se inicializan las variables contador y producto con valor 1.
5. El bucle se repetir hasta que la variable contador tome un valor superior al de
la variable a.
6. El valor de la variable producto se actualizar con el resultado de multiplicar su
propio valor por el que tenga la variable contador en ese momento.
7. Aumenta la variable contador en una unidad.
8. Enva el programa al comienzo del bucle para que se evale de nuevo la
condicin.
9. Cuado finalice el bucle, se imprimir el resultado en este cuadro.
El resultado es el que se muestra a continuacin:

Prctica 18: crea el programa anterior y gurdalo como vbtumombre18.

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:

Prctica 19: crea el programa anterior y gurdalo como vbtunombre19.

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.

3. El bucle (solicitar nmero) se repetir hasta que el nmero que se almacene en la


variable a sea igual o mayor que cero.
4. El resultado se imprime en un cuadro de texto.
5. Esta expresin calcula la raz cuadrada de la variable a.
Al ejecutarlo, el programa mostrar el tpico cuadro de entrada para que se introduzca el
nmero, operacin que repetir hasta que el nmero introducido sea igual o mayor que
cero.

Prctica 20: crea el programa anterior y gurdalo como vbtunombre20.

Das könnte Ihnen auch gefallen