Está en la página 1de 25

Operadores lógicos y

matemáticos
en Visual Basic. Math.
Comentarios en VB. Rem.
INSERCIÓN DE COMENTARIOS EN EL
CÓDIGO
Existen distintas posibilidades para insertar comentarios en
el código de Visual Basic como son:

La palabra clave Rem: la presencia de la palabra clave Rem


(REM en mayúsculas algunas versiones) transforma en
comentario todo lo que se encuentre a continuación de ella
en una línea. Rem puede encontrarse al principio de una
línea, con lo cual nada de lo que aparezca en dicha línea
será ejecutado, o bien después de una o varias
instrucciones que se encuentren en una línea. En algunas
versiones no es necesario separador, mientras que en otras
Rem debe estar separado de las instrucciones anteriores en
la línea mediante dos puntos.
El signo apóstrofe ': la presencia del signo apóstrofe
convierte en comentario todo lo que se encuentre
detrás de él en una línea dada. Puede situarse al
principio de una línea, con lo cual nada de lo que
aparezca en dicha línea será ejecutado, o bien después
de una o varias instrucciones sin necesidad de
que existan dos puntos ni ningún otro signo de
separación.
La parte del código que son comentarios es
marcada por el editor de Visual Basic con un
color verde
que lo diferencia de las instrucciones que van a
ser ejecutadas. En un mismo programa pueden
aparecer indistintamente instrucciones Rem y
apóstrofes. Veamos ejemplos equivalentes:
El ejemplo 1 corresponde a un programa con
comentarios insertados a través de Rem situados
previos a la línea que comentan. El ejemplo 2 es igual
con los Rem sustituidos por apóstrofes. En el ejemplo
3 los comentarios con apóstrofes se sitúan a
continuación de las instrucciones, en la misma línea.
Por último, el ejemplo 4 combina el uso de
apóstrofes con Rem en la misma línea de
instrucciones a ejecutar.
HERRAMIENTAS LÓGICAS Y
MATEMÁTICAS EN VISUAL BASIC
Visual Basic clasifica los operadores con que trabaja de la siguiente
manera:
• Operadores aritméticos: operadores utilizados para ejecutar
cálculos matemáticos.
• Operadores de comparación: operadores utilizados para efectuar
comparaciones.
• Operadores de concatenación: operadores utilizados para combinar
cadenas de caracteres.
• Operadores lógicos: operadores usados para realizar operaciones
lógicas.
"Hoy puede" & "ser un gran día" equivale a "Hoy puede ser un
gran día”. Te remitimos a la ayuda de Visual Basic para obtener
mayor información sobre operadores. Ten en cuenta que puede
haber pequeñas diferencias entre las distintas versiones de
Visual Basic.
En cuanto a las funciones matemáticas, algunas de las funciones
disponibles son las siguientes:
Las funciones relacionadas con ángulos trabajan en radianes. Por
tanto si queremos operar con grados habremos de realizar la
conversión oportuna.

Vamos a centrarnos en algunas funciones que no se han descrito


en el curso “Bases de la programación nivel I”. Empezando por
Fix e Int, se trata de funciones que devuelven la parte entera de
un número, que es diferente a redondear. La diferencia entre
ambas es que si el número es negativo Int devuelve el primer
entero menor o igual mientras que Fix devuelve el primer entero
mayor o igual.

Ejemplo:
Int(8.7) = 8 Int(− 8.7) = − 9
Fix(8.7) = 8 Fix(− 8.7) = − 8
La función Rnd permite generar números aleatorios. Por su
importancia para la programación y para la verificación de
programas, vamos a desarrollarla un poco más extensamente.

En las versiones más recientes de Visual Basic para usar una


función matemática debemos escribir
Math.nombreDeLaFuncion(valorACalcular). A continuación ,
este es un pequeño programa para calcular la raíz cuadrada de
un número.
La función Sgn (Math.Sign en las versiones más recientes)
devuelve el signo de un número o de una variable numérica
tomando valor 1 para un número positivo, − 1 para un número
negativo y cero cuando el número es cero. Supongamos A = 7.44,
B = − 23, C = 0.

Versiones menos recientes: Sgn(A) = 1 Sgn(43) = 1


Sgn(B) = − 1 Sgn(− 453.33) = − 1
Sgn(C) = 0 Sgn(0) = 0
Versiones más recientes: Math.Sign(A) = 1 Math.Sign(43) = 1
Math.Sign(B) = − 1 Math.Sign(− 453.33) = − 1
Math.Sign(C) = 0 Math.Sign(0) = 0
Generación de números aleatorios
(pseudoaleatorios) en Visual Basic.
Randomize. Rnd. Intervalos
La generación de números aleatorios adquiere gran relevancia
para un programador, pudiendo usarse para:

• Construcción preliminar de programas, en los que a falta de


datos definitivos introducimos datos aleatorios.
• Simular procesos aleatorios (número resultante de tirar un
dado, elección de un color por parte de una persona, número
premiado en un sorteo de lotería, cantidad de personas que
entran a un supermercado en una hora...)
• Verificación de programas, y en particular simular datos que le
llegan al programa como si fueran datos provenientes de
entradas de usuario, de una base de datos, de un fichero, etc.
Conviene recordar que "aleatorio" no puede confundirse con
"cualquier cosa", "descontrol", "incierto", "impredecible", etc.
Usaremos aleatorio más en el sentido de no predeterminado que
en el de no predecible, ya que en general vamos a definir qué tipo
de resultado queremos obtener y en qué rango de valores debe
estar. Vamos a imaginar que Visual Basic genera números aleatorios
como si fuera un robot lanzador de dardos muy preciso (robot
Rnd). De este modo, cuando se le dice que comience a tirar dardos
en distintas posiciones, repite siempre los lugares. Por ejemplo, si
la diana está marcada
con números, cada vez que le decimos que tire genera la misma
secuencia: 7, 5, 6, 3, etc. ¿Cómo conseguir convertir este proceso
predefinido en aleatorio?
Pues simplemente poniendo a girar la diana
(mayordomo Randomize) esta vez a una velocidad que
depende del segundo del día en que nos encontremos. Así
pues, el proceso lo dividimos en decirle al mayordomo que
ponga a girar la diana y en decirle al robot que dispare. Bueno,
un poco simple, pero ¿para qué complicarnos? Veamos la
sintaxis a
emplear:

1) Asignación de valor aleatorio a una variable


Randomize [Instrucción que inicializa el generador de números
aleatorios]
Variable = Rnd [Obtención de un número aleatorio igual o
mayor que cero y menor que uno]
En las versiones más recientes de Visual Basic la sintaxis es
Randomize(): Variable = Rnd()
2) Mostrar un valor aleatorio.
Randomize: MsgBox (“El número aleatorio es “ & Rnd) para las
versiones menos recientes
Randomize() : MsgBox("El número aleatorio es " & Rnd()) para
las versiones más recientes

El valor devuelto por Rnd es de tipo Single, aunque si la variable


a la que se asigna el contenido de Rnd es de otro tipo, tendrá
lugar la conversión del valor originario para adaptarlo al tipo de
variable de que se trate. Un aspecto importante a tener en
cuenta es que el valor devuelto se encuentra en el rango 0 <=
Rnd < 1. Es decir, el número devuelto puede ser cero pero no
puede ser uno. Podemos trasladarnos a un intervalo distinto
simplemente multiplicando. Por ejemplo Rnd * 100 ó Rnd() *
100 devolverá números comprendidos entre cero y cien
excluido el cien. Si usamos CInt(Rnd * 100) ó CInt(Rnd() * 100)
estaremos convirtiendo el tipo Single que nos devuelve el Rnd en
un tipo Integer, con lo que obtenemos valores enteros
comprendidos entre 0 y 99.
Un caso muy habitual será el de querer generar números aleatorios
comprendidos en un intervalo delimitado por un límite superior y
un límite inferior siendo estos límites valores positivos. Para ello
podemos usar la fórmula:

Limsup y Liminf son los límites superior e inferior respectivamente


(valores positivos) y N el número aleatorio generado. El primer sumando
puede adquirir el valor comprendido entre cero y el intervalo diferencia,
excluido éste. El segundo sumando determina que el valor debe estar
necesariamente comprendido entre el límite inferior y el límite superior.
Consideremos ahora que queremos generar valores enteros
comprendidos entre a y b incluidos ambos, siendo a y b valores
positivos. La fórmula a emplear sería:
En este caso, usamos un truncamiento para garantizar que el
valor superior del intervalo se encuentre entre los posibles
valores de N.

Una instrucción Randomize te puede servir para varios Rnd. De


todas formas, cuando tengas dudas, pon un Randomize asociado
a cada uno de los Rnd.

Recuerda que en algunas versiones se usa Randomize y Rnd sin


paréntesis y en otras se usa Randomize() y Rnd() con paréntesis.

También podría gustarte