Buscador

Suma: + (Part 1)

En función del tipo de dato de los operandos, este operador realiza una suma de números o una concatenación de cadenas de caracteres. Puede producirse un error dependiendo del tipo de dato del operando y la configuración de Option Strict. El Código fuente 55 muestra algunos ejemplos de suma y concatenación, con la instrucción Option Strict Off.

Sub Main()
Dim Resultado As Double
Dim Cadena As String
Dim Valor As Integer
Dim Nombre As String
Dim CadenaResulta As String
' suma de números
Resultado = 12 + 7 ' devuelve: 19
Resultado = 450 + 130 ' devuelve: 580
' concatenación de cadenas
Cadena = "hola " + "amigos" ' devuelve: "hola amigos"
' suma de variables
Cadena = "15"
Valor = 20
CadenaResulta = Cadena + Valor ' devuelve: "35"
' operaciones incorrectas
Valor = 25
Nombre = "Alfredo"
CadenaResulta = Valor + Nombre ' error
Resultado = Valor + Nombre ' error
End Sub
Código fuente 55

Resto: Mod

Divide dos números y devuelve el módulo o resto de la división. Ver Código fuente 54.

Dim Resultado As Double
Resultado = 10 Mod 3 ' devuelve: 1
Resultado = 100 Mod 27 ' devuelve: 19
Resultado = 38 Mod 4 ' devuelve: 2
Código fuente 54

División entera: \

Divide dos números, devolviendo como resultado un valor numérico entero. Ver Código fuente 53.

Dim Resultado As Integer
Resultado = 50 \ 3 ' devuelve: 16
Resultado = 250 \ 4 ' devuelve: 62
Código fuente 53

División real: /

Divide dos números, devolviendo un resultado con precisión decimal. Ver Código fuente 52.


Dim Resultado As Double
Resultado = 50 / 3 ' devuelve: 16.6666666666667
Resultado = 250 / 4 ' devuelve: 62.5
Código fuente 52
Por norma general, el valor devuelto será de tipo Double,. No obstante, si uno de los operandos es de tipo Single, el resultado será de tipo Single. De igual manera, si los dos operandos son del tipo de dato Decimal, el resultado también será un valor Decimal.

Multiplicación: *

Multiplica dos números. En el caso de que alguno de los operandos sea un valor nulo, se usará como cero. Ver Código fuente 51.

Dim Resultado As Double
Dim DatoSinValor As Integer

Dim Indefinido As Object
Resultado = 25 * 5 ' devuelve: 125
' la variable DatoSinValor no ha sido
' asignada, por lo que contiene cero
Resultado = 50 * DatoSinValor ' devuelve: 0
' la variable Indefinido no ha sido
' asignada, por lo que contiene Nothing
Resultado = 25 * Indefinido ' devuelve: 0
Resultado = 24.8 * 5.98 ' devuelve: 148.304
Código fuente 51

Potenciación: ^

Eleva un número a determinada potencia. Debemos situar el número base a la izquierda de este operador, mientras que el exponente lo situaremos a la derecha. Podemos realizar varias potenciaciones al mismo tiempo y utilizar números negativos. El valor devuelto será de tipo Double. Ver Código fuente 50.

Dim Resultado As Double
Resultado = 12 ^ 5 ' devuelve: 248832
Resultado = 2 ^ 3 ^ 7 ' devuelve: 2097152
Resultado = (-4) ^ 2 ' devuelve: 16
Código fuente 50

Operadores aritméticos

Efectúan el conjunto habitual de operaciones matemáticas.

Operadores

Los operadores son aquellos elementos del lenguaje que nos permiten combinar variables, constantes, valores literales, instrucciones, etc., para obtener un valor numérico, lógico, de cadena, etc., como resultado. La combinación de operadores con variables, instrucciones, etc., se denomina expresión, mientras que a los elementos integrantes de una expresión y que no son operadores, se les denomina operandos. 
En función de la complejidad de la operación a realizar, o del tipo de operador utilizado, una expresión puede ser manipulada a su vez como un operando dentro de otra expresión de mayor nivel. Los operadores se clasifican en las categorías detalladas a continuación, según el tipo de expresión a construir.

Arrays multidimensionales - III

Empleando For...Next usaremos la función UBound( ) ya comentada antes, con la particularidad de que al emplearla para arrays multidimensionales, deberemos pasarle en el segundo parámetro el número de dimensión del que vamos a extraer valores. Veamos un ejemplo en el Código fuente 49.

Dim Articulos(2, 3) As String
Dim Contador1 As Integer
Dim Contador2 As Integer
Articulos(0, 0) = "mesa"
Articulos(0, 1) = "silla"
Articulos(0, 2) = "sofá"
Articulos(0, 3) = "estante"
Articulos(1, 0) = "monitor"
Articulos(1, 1) = "teclado"
Articulos(1, 2) = "impresora"
Articulos(1, 3) = "grabadora"
Articulos(2, 0) = "coche"
Articulos(2, 1) = "tren"
Articulos(2, 2) = "barco"
Articulos(2, 3) = "bicicleta"
For Contador1 = 0 To UBound(Articulos, 1)
Console.WriteLine("Dimensión actual del array: {0}", Contador1)
For Contador2 = 0 To UBound(Articulos, 2)
Console.WriteLine("----Valor del elemento: {0}", Articulos(Contador1,
Contador2))

Next
Next
Código fuente 49

Arrays multidimensionales - II

Como acabamos de ver en el esquema de la figura, el primer número en la declaración del array: 2, indica la cantidad de dimensiones que tiene el array, y el segundo: 3, indica la cantidad de elementos que tendrá cada dimensión; ya que los arrays comienzan por cero, en este ejemplo se crea un array de tres dimensiones, y cada una de esas dimensiones tendrá cuatro elementos. El Código fuente 48 muestra la forma de declarar y asignar valores a un array multidimensional de estas características

Dim Articulos(2, 3) As String
Articulos(0, 0) = "mesa"
Articulos(0, 1) = "silla"
Articulos(0, 2) = "sofá"
Articulos(0, 3) = "estante"
Articulos(1, 0) = "monitor"
Articulos(1, 1) = "teclado"
Articulos(1, 2) = "impresora"
Articulos(1, 3) = "grabadora"
Articulos(2, 0) = "coche"
Articulos(2, 1) = "tren"
Articulos(2, 2) = "barco"
Articulos(2, 3) = "bicicleta"
Código fuente 48
Para recorrer los elementos de un array multidimensional utilizaremos los bucles For...Next o For Each...Next, que se explicarán en un tema más adelante. La diferencia entre utilizar una u otra técnica para manipular el contenido del array, reside en que con For...Next tenemos un mayor control de los elementos a manipular, mientras que con For Each...Next, al implementar internamente el proceso, irá tomando las primeras posiciones de cada una de las dimensiones del array, después las segundas, y así sucesivamente.

Arrays multidimensionales - I

Según el modo en que se organizan los valores en sus elementos, un array se puede clasificar en los siguientes tipos:
• Unidimensionales. Se trata de aquel array que tiene una única lista de valores, también denominada dimensión. Es el tipo de array con el que hemos trabajado hasta el momento.
• Multidimensionales. Consiste en un array que dispone de más de una lista de valores o dimensión.
Los arrays multidimensionales se representan en forma de tabla, con filas y columnas, tal y como muestra la Figura 64.
Figura 64. Representación gráfica de un array multidimensional.

Recorrer un array

Para recorrer todos los elementos de un array emplearemos la estructura de control For...Next, que ejecuta un bloque de código un número determinado de veces, y la función del lenguaje UBound( ), que devuelve el número correspondiente al índice superior del array pasado como parámetro. Ver Código fuente 47.

Sub Main()
' crear un array y rellenarlo con valores
Dim Nombres(3) As String
Nombres(0) = "Ana"
Nombres(1) = "Pedro"
Nombres(2) = "Antonio"
Nombres(3) = "Laura"
' recorrer el array y mostrar el contenido
' de cada uno de sus elementos
Dim Contador As Integer
For Contador = 0 To UBound(Nombres)
Console.WriteLine("Posición del array: {0}, valor: {1}", _
Contador, Nombres(Contador))
Next
Console.ReadLine()
End Sub
Código fuente 47

La estructura For...Next será explicada con más detalle en el apartado dedicado a las estructuras de control del lenguaje.

Modificación de tamaño

En función de si la cantidad de elementos de un array puede ser cambiada, los arrays se clasifican en los siguientes tipos: 
• Estáticos. Son aquellos que tienen un tamaño fijo y no se pueden modificar. 
• Dinámicos. Son aquellos cuya cantidad de elementos puede ser ampliada o reducida. 

En VB.NET todos los arrays son de tipo dinámico Para modificar el tamaño o número de elementos de un array, emplearemos la instrucción ReDim, seguida del array a modificar y el nuevo tamaño. En el Código fuente 45, modificamos el tamaño de un array, añadiéndole dos elementos.

' array con 4 elementos: de 0 a 3
Dim Nombres(3) As String
' asignar valores al array
Nombres(0) = "Ana"
Nombres(1) = "Pedro"
Nombres(2) = "Antonio"
Nombres(3) = "Laura"
' ampliamos el array con 6 elementos: de 0 a 5
ReDim Nombres(5)
Código fuente 45
ReDim no toma el array existente y modifica su número de elementos, sino que internamente crea un nuevo array con el número de elementos indicado, por lo que se pierden los valores del array previo. Para solucionar este inconveniente, debemos utilizar junto a ReDim, la palabra clave Preserve. Con ello, los valores existentes en el array a modificar son conservados. Ver Código fuente 46.

' ampliamos el array con 6 elementos: de 0 a 5
' y los valores de los elementos que hubiera, son conservados
ReDim Preserve Nombres(5)
Código fuente 46