mi padre y yo

mi padre y yo
¡¡¡¡igualitos!!!!

Buscar este blog

viernes, 7 de mayo de 2010

CICLOS REPETITIVOS EN VISUAL BASIC

Un ciclo, es un programa operacional en el que se ejecutan un número repetido de veces en periodods mas o menos espaciados. las instrucciones son las mismas, los datos sobre los que operan varían.

Ejemplos de ciclos son: el cálculo de la nota final de los estudiantes, esta accion se realizara tantas veces como alumnos hayan inscritos en la asignatura a la que se le este aplicando, per con datos diferentes, tambien el salario de los empleados d euna empresa, etc.

Los Ciclos o sentencias se dividen en:
♥ SENTENCIAS DE CONTROL SELECTIVAS.
♥ SENTENCIAS DE CONTROL REPETITIVAS.

A continuacion, explicare cada uno de ellos:

SENTENCIAS DE CONTROL SELECTIVAS
OPERADORES RACIONALES.
Los operadores relacionales nos sirven para determinar la relación que tiene una expresión con otra. Los operadores relacionales que manejaremos en QB son los siguientes:


Operador o signo
Significa
Ejemplo
Se lee
=
Igual que
x = y
x igual a y
<
Menor que
x < y
x menor que y
>
Mayor que
x > y
x mayor que y
<=
Menor o igual
x <= y
x menor o igual a y
>=
Mayor o igual
x >= y
x mayor o igual a y
<>
Diferente de
x <> y
x diferente de y
SENTENCIA IF...THEN...ELSE
Muchas veces se nos presentan situaciones en las que tenemos que evaluar una condición o situación. Si la condición es verdadera o "cumple", entonces ejecutamos una o más instrucciones; si no, ejecutamos otra u otras instrucciones. Veamos el siguiente ejemplo:
CLS
PRINT TAB(20); "VALIDA SI UN NUMERO ES NEGATIVO O POSITIVO"
PRINT : PRINT
INPUT "Introduce un entero -> ", numero
IF numero < 0 THEN
PRINT "El número es negativo"
ELSE
PRINT "El número es positivo"
END IF
END
El programa anterior valida si un entero es positivo o negativo de la siguiente forma:
El programa pide un número.
Si (if) el numero introducido es menor que cero (esta es la condición a evaluar) entonces (then) se imprime el mensaje "El número es negativo".
Si no (else) es negativo, entonces se imprime el mensaje "El número es positivo".
Un bloque de instrucciones IF...THEN...ELSE debe terminar siempre con END IF para indicar que nuestro proceso de
selección IF ha terminado. Ahora, las condiciones que se manejan en las sentencias IF pueden ser verdaderas (True, en inglés) o falsas (False). Si por ejemplo corremos el programa anterior y al pedirse el numero nosotros introducimos un –1, entonces la sentencia IF verá que la condición es verdadera (en efecto el número es menor que 0) y ejecutará la sentencia o sentencias que siguen al IF hasta encontrar el ELSE, luego se pasará hasta el END IF para luego seguir con el curso del programa. De otra forma si nosotros introducimos un 81, entonces la sentencia IF verá que las condición es falsa (false) y no ejecutará las sentencias que le siguen, luego se pasará hasta la sentencia ELSE y se ejecutaran las sentencias que le siguen hasta que termine el bloque (END IF), para luego continuar el curso del programa.
Las condiciones suelen también ser afectadas por los operadores lógicos. Los operadores lógicos nos sirven para evaluar condiciones tales como:
"Si numero1 no es igual a cero entonces..."
(IF NOT numero1 = 0 THEN...)
"Si numero1 es igual a cero o menor a 1 entonces..."
(IF numero1 = 0 OR numero1 > 1 THEN...)
"Si numero1 es igual a 1 y numero2 es menor que cero entonces..."
(IF numero1 = 1 AND numero2 < 0 THEN)
"Si numero1 es igual a cero ó menor que 0 entonces..."


♥SENTENCIAS DE CONTROL REPETITIVAS:
EL BLOQUE WHILE... WEND
Ahora veamos como podemos repetir partes de un programa mientras que cierta condición se cumpla o sea verdadera...
' Ejemplo de WHILE... WEND
' Calcula áreas de 5 círculos
CONST pi = 3.1416
CLS
PRINT TAB(30); "AREA DE 5 CIRCULOS"
PRINT
contador = 0 ' Inicializamos el contador
WHILE contador < 5 'Inicio del ciclo. Contador < 5 porque empezamos en cero
INPUT "Radio -> ", radio
PRINT "El área es"; pi * radio * radio
PRINT
contador = contador + 1 ' El contador se incrementa en 1
WEND ' Seguir
END
El bloque WHILE ("mientras")... WEND ("seguir") nos sirve para que mientras una condición se cumpla (en este caso, mientras contador < 5) repetir una serie de instrucciones, desde donde empieza el WHILE hasta que se encuentre el WEND. En este tipo de ciclos o bucles generalmente el valor de la condición ya ha sido inicializado desde antes de entrar al ciclo (contador = 0) y se incrementa dentro del ciclo (contador = contador + 1). El ciclo se ejecutará mientras la condición sea verdadera, por lo que si desde antes de entrar al bucle la condición ya es falsa, el programa no ejecutará el ciclo. Veamos...
' Ejemplo de un bucle WHILE...WEND que no se ejecutará
i = 0
CLS
WHILE i = 1 ' Mientras i = 1...pero como i = 0 y no igual a 1...
PRINT "HOLA"
i = i + 1
WEND
PRINT "Fin del programa"
END
+ Nota: Si lo ejecutas paso a paso verás mejor la secuencia.
También podemos caer en ciclos infinitos; esto es, ciclos que no tengan fin y terminarán nunca...
' Ejemplo de un bucle WHILE...WEND infinito
i = 1 ' Inicializamos la variable
CLS
WHILE i = 1 ' Mientras i = 1...
PRINT "HOLA, MUNDO..."
WEND '...
PRINT "Fin del programa"
END
+ Nota: Para poder salir de un bucle infinito debemos utilizar la combinación de teclas CTRL + Pause o CTRL + Scroll. En Turbo Basic asegúrate de la opción Keyboard Break del menú Optionseste en ON.
¿Qué podemos observar en el programa anterior? En efecto el programa entrará en el ciclo ya que la condición es verdadera (i = 1), pero i siempre será igual a 1 ya que no hay nada que la modifique dentro del bucle y así poder dar una salida. Este tipo de errores suele ocurrir si por ejemplo...
' Ejemplo de un bucle WHILE...WEND infinito por error interno
cont = 1 ' Inicializamos la variable
CLS WHILE cont = 1 ' Mientras cont = 1...
PRINT "HOLA, MUNDO..."
cont = con + 1 ‘ ¿¿ con ??. Si con = 0, entonces cont = 0 + 1 = 1 (:-O)
WEND ' ...
PRINT "Fin del programa"
END
También no necesariamente tiene que ser un incremento el que nos dé la salida...
' Ejemplo de un bucle WHILE...WEND utilizando un método de salida diferente
salir = 0 ' Inicializamos la variable
CLS
WHILE salir = 0 ' Mientras salir = 0...
PRINT "HOLA, MUNDO..."
INPUT "¿Quieres salir (si = 1, no = 0)? ", salir
PRINT
WEND ' seguir.
PRINT "Fin del programa"
END
Si usamos un contador, también podemos incrementarlo como queramos...
' Sacando raíz cuadrada usando WHILE...WEND.
CLS
PRINT TAB(26); "CALCULO DE LA RAIZ CUADRADA"
PRINT
INPUT "Introduce un número positivo -> ", n
WHILE (cont * cont) < n
cont = cont + .0001
WEND
PRINT "La raíz cuadrada de"; n; "es"; cont
END
No necesitamos declarar una variable cont = 0 ya que al crearla automáticamente asume este valor.
Si n llegara a ser negativo, la condición sería falsa (en efecto, 0 por 0 no es menor que un número negativo) y el bucle no se ejecutaría.
Entre más pequeño sea el incremento de cont, n se acercará más a su raíz, ya que cont por cont debe ser lo más igual posible a n.
EL BLOQUE DO...LOOP
El bloque DO ("hacer")...LOOP ("vuelta) tiene 4 variantes. Veamos la primera:
DO WHILE...LOOP
Este tipo de bloque es muy parecido a WHILE...WEND, ya que la condición regularmente se conoce por adelantado, y existe la posibilidad de que nunca se ejecute el ciclo. Mientras la condición sea verdadera, el ciclo se ejecutará. Este tipo de bloque proporciona una forma más potente que WHILE...WEND.
Sintaxis:
DO WHILE
instrucción1
instrucción2
instrucción3
[EXIT DO]
....
instrucciónn
LOOP
Ejemplo:
' Ejemplo de DO WHILE...LOOP
i = 0 ‘ Inicializamos la variable
PRINT "El valor de i al empezar el ciclo es"; i
DO WHILE I < 10
I = I + 1
? "Luego i vale"; i ;"..."
LOOP
END
Cuando LOOP encuentra a la condición falsa se termina el ciclo. Si no quisiéramos que se ejecutara el ciclo...
‘ Ejemplo de DO WHILE...LOOP que nunca se ejecutará
CLS
i = 1 ‘ Inicializamos la variable
PRINT "Iniciamos el programa..."
DO WHILE i < 1 ‘¿Es i < 1?
PRINT "Estamos dentro del ciclo"
i = i + 1
LOOP
PRINT "fin del programa"
END
DO...LOOP WHILE
En este tipo de ciclos las instrucciones se ejecutarán por lo menos 1 vez, ya que la condición se evalúa cuando se termina de ejecutar el bloque de instrucciones. Se ejecutara el ciclo mientras la condición sea verdadera.
Sintaxis:
DO
instrucción1
instrucción2
instrucción3
[EXIT DO]
....
instrucciónn
LOOP WHILE
Veamos el siguiente ejemplo:
' Ejemplo de DO...LOOP WHILE. Calculo de la velocidad de un vehículo con MRU
CLS
COLOR 10 ‘ Verde brillante
PRINT TAB(20); "CALCULO DE LA VELOCIDAD DE UN VEHICULO"
COLOR 7: PRINT ‘ Color gris normal
DO ‘ Hacer...
INPUT "Distancia recorrida por el vehículo (m) -> ", d
INPUT "Tiempo en recorrerla (s) -> ", t
v = d / t
PRINT "La velocidad con que viajó el vehículo es"; v; "m / s"
PRINT
INPUT "¿Desea calcular otra vez (si = 1, no = 0)"; desea
LOOP WHILE desea = 1 ‘Mientras desea = 1
END


BIBLIOGRAFIA:
- http://www.monografias.com/trabajos38/manual-programacion/manual-programacion-c3.shtml
- http://www.monografias.com/trabajos16/quick-basic/quick-basic.shtml#SENTEREPETIIV

1 comentario: