Está en la página 1de 14

VARIABLES

Una variable está formada por un espacio en el sistema de almacenaje (memoria


principal de un ordenador) y un nombre simbólico (un identificador) que está
asociado a dicho espacio. Ese espacio contiene una cantidad de información
conocida o desconocida, es decir un valor. El nombre de la variable es la forma
usual de referirse al valor almacenado: esta separación entre nombre y contenido
permite que el nombre sea usado independientemente de la información exacta que
representa. El identificador, en el código fuente de la computadora puede
estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede
por lo tanto cambiar durante el curso de la ejecución del programa. El concepto de
variables en computación puede no corresponder directamente al concepto
de variables en matemática. El valor de una variable en computación no es
necesariamente parte de una ecuación o fórmula como en matemáticas. En
computación una variable puede ser utilizada en un proceso repetitivo: puede
asignársele un valor en un sitio, ser luego utilizada en otro, más adelante
reasignársele un nuevo valor para más tarde utilizarla de la misma manera.
Procedimientos de este tipo son conocidos con el nombre de iteración. En
programación de computadoras, a las variables, frecuentemente se le asignan
nombres largos para hacerlos relativamente descriptivas para su uso, mientras que
las variables en matemáticas a menudo tienen nombres escuetos, formados por uno
o dos caracteres para hacer breve en su transcripción y manipulación.

El espacio en el sistema de almacenaje puede ser referido por diferentes


identificadores. Esta situación es conocida entre los angloparlantes como "aliasing"
y podría traducirse como "sobre nombramiento" para los hispanoparlantes.
Asignarle un valor a una variable utilizando uno de los identificadores cambiará el
valor al que se puede acceder a través de los otros identificadores.

Los compiladores deben reemplazar los nombres simbólicos de las variables con la
real ubicación de los datos. Mientras que el nombre, tipo y ubicación de una variable
permanecen fijos, los datos almacenados en la ubicación pueden ser cambiados
durante la ejecución del programa.
Las variables pueden ser de longitud:

 Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del


programa. Todas las variables, sean del tipo que sean tienen longitud fija,
salvo algunas excepciones — como las colecciones de otras variables
(arrays) o las cadenas.

 Variable.- Cuando el tamaño de la misma puede variar a lo largo de la


ejecución. Típicamente colecciones de datos.

Tipos de datos

Debido a que las variables contienen o apuntan a valores de tipos determinados,


las operaciones sobre las mismas y el dominio de sus propios valores están
determinadas por el tipo de datos en cuestión. Algunos tipos de datos usados:

Algunos tipos de datos usados:

 Tipo de dato lógico :


El tipo de dato lógico o booleano es en computación aquel que puede representar
valores de lógica binaria, esto es 2 valores, que normalmente representan falso o
verdadero. Se utiliza normalmente en la programación, estadística, electrónica,
matemáticas (álgebra booleana) y otras.

Una vez que se dispone de uno o varios datos de tipo booleano, estos se pueden
combinar en expresiones lógicas mediante los operadores lógicos (and, or, not). Un
ejemplo de este tipo de expresiones serían:

 verdadero AND falso --> falso


 falso OR verdadero --> verdadero
 NOT verdadero --> falso

 Tipo de dato entero:


El tipo de dato entero en computación se usa para representar un subconjunto
finito de los números enteros. El mayor número que se puede representar
depende del tamaño del espacio usado por el dato y la posibilidad (o no) de
representar números negativos. Los tipos de dato entero disponibles y su
tamaño dependen del lenguaje de programación usado así como la arquitectura
en cuestión.

 Tipo de dato carácter:


En terminología informática y de telecomunicaciones, un carácter es un símbolo
que representa cada carácter de un lenguaje natural. Un ejemplo de carácter
es una letra, un número o un signo de puntuación.

 Cadena de caracteres:
En programación, una cadena de caracteres o frase (string en inglés) es una
secuencia ordenada de longitud arbitraria (aunque finita) de elementos que
pertenecen a un cierto alfabeto. En general, una cadena de caracteres es una
sucesión de caracteres (letras, números u otros signos o símbolos).
Desde el punto de vista de la programación, si no se ponen restricciones al
alfabeto, una cadena podrá estar formada por cualquier combinación finita de
todo el juego de caracteres disponibles (las letras de la 'a' a la 'z' y de la 'A' a la
'Z', los números del '0' al '9', el espacio en blanco ' ', símbolos diversos '!', '@',
'%', entre otros). Un caso especial de cadena es la que contiene cero
caracteres, a esta cadena se le llama cadena vacía.

Algunas operaciones con cadenas de caracteres:

 Asignación: Consiste en asignarle una cadena a otra.


 Concatenación: Consiste en unir dos cadenas o más (o una cadena con
un carácter) para formar una cadena de mayor tamaño.
 Comparación: Se utiliza para comparar dos cadenas.

Variables y paso de parámetros a subalgoritmos

Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:

 Por valor.- Se copia el valor (el dato) de la variable en la zona de la pila de


llamadas —de ámbito local— que corresponde a la nueva subrutina llamada.
Por tanto, esta subrutina obtiene dicho valor pero no puede modificar la
variable original. Esto significa que si la variable sufre alteraciones dentro de
esta rutina, para poder acceder a dichas modificaciones al finalizar, deberá
devolver el nuevo valor de la misma. Si no se realiza esta operación, el valor
de la variable será exactamente el mismo que tenía antes de pasar por la
función.

 Por referencia.- No se pasa el valor directamente de la variable, si no una


referencia o puntero a la misma —que contiene la dirección de la zona de
memoria donde se aloja el contenido—, de tal modo que se opera
directamente sobre la zona de memoria que la contiene, lo cual implica que
las modificaciones que sufra serán accesibles a posterior.

Almacenamiento de variables en memoria


Las variables se representan con identificadores que hacen referencia a un lugar de
la memoria del programa en donde se almacena un dato. Una variable está
asociada a un tipo de datos, el cual y en función del tamaño del mismo determina la
cantidad de bytes que serán necesarios para almacenar la variable. En el caso de
colecciones y al contrario que con el resto de tipo de datos, ya sean primitivos u
objetos complejos, la memoria asignada a almacenar tales variables no se conoce
de antemano, lo cual lleva a establecer políticas de reserva de memoria:

 Reserva fija de memoria.- Implica predeterminar la cantidad de memoria


que se asignará a la colección. Es una política extremadamente rígida, ya
que llegados al final de la zona de memoria no se podrían almacenar nuevos
elementos.

 Reserva variable de memoria.- Se dedica una zona de memoria, pudiendo


ser de un tamaño predeterminado o no, y en caso de sobrepasarse dicha
zona de memoria se vuelve a asignar otra zona, contigua o no, para impedir
la restricción mencionada arriba.

Ámbito

Respecto al ámbito de una variable, éste puede ser:

 Local: Cuando la misma sólo es accesible desde un único procedimiento hijo,


no pudiendo ser leída o modificada desde otro procedimiento hermano o
desde el propio procedimiento padre. Es posible declarar variables en
bloques de condición, bucles, etc de tal modo que sólo pueda accederse a
ellas en el propio bloque.

 Global: Cuando la misma es accesible tanto desde rutinas o macros de la


aplicación, como en todos los procedimientos y funciones de la misma.

Si bien es cierto, que de una forma básica, se puede definir el ámbito de las variables
de la forma expuesta más arriba, existen grados de globalidad de las mismas,
pudiendo ser accesibles desde unos puntos u otros, o incluso pudiendo ser
accesibles entre aplicaciones distintas, llegando al caso de la superglobalidad.
Ejemplo del ámbito de una variable en el lenguaje de programación Java.

TIPOS DE VARIABLES

Las variables son secciones reservadas en memoria para almacenar datos los
cuales pueden cambiar durante la ejecución del programa. En Java cuando creamos
una variable tenemos que seguir la siguiente sintaxis:

Tipo nombreVariable [= valorInicial];

donde:

 Tipo es la clase de variable que vamos a crear

 nombreVariable es el nombre que le vamos a dar a dicha variable

He puesto entre corchetes ([]) un elemento opcional a la hora de crear una variable.
Las variables al crearlas podemos darle un valor inicial. Para ello hay que usar
primero el operador de asignación =seguido del valor inicial. Si vamos al código de
ejemplo vemos que
char a = 'a';

char b = 'b';

double x = 3.2d;

float y = 4.8f;

int auxiliar = 30;

long numeroCuentas = 10000000000L;

hemos creado de esta forma 6 variables con valores iniciales. A esto se le conoce
como inicialización de variables . A continuación veremos los tipos básicos de
variables en Java.

Números enteros ( int )


Las variables de tipo entero o int son aquellas que almacenan un número (ya sea
positivo o negativo) no decimal . Debido a que cuando creamos una variable
reservamos memoria para ella, cada tipo de variable reservará más o menos
memoria para representar el dato que almacenarán. Dicho esto, en el caso de
variables de tipo int sólo podemos almacenar números que estén dentro del rango -
2^31 y 2^31 - 1 . Si intentamos almacenar un número que esté fuera de ese rango
nos dará un error de compilación o de ejecución. Por ejemplo, no podríamos
almacenar el número 10000000000 en una variable de tipo int. Un ejemplo sería:

int auxiliar = 30;

Su valor por defecto si no lo inicializamos es 0.


¿Te está gustando esté artículo? Puedes aprender mucho más si está suscrito a
nuestra lista de correo. Recibirás noticias, tutoriales, nuestros nuevos lanzamientos
y mucho más.

Números enteros grandes ( long )

Las variables de tipo entero grandes o long son aquellas que almacenan un número
(ya sea positivo o negativo) no decimal . Las variables de tipo long almacenan
números que están dentro del rango -2^63 y 2^63 - 1 . Si intentamos almacenar un
número que esté fuera de ese rango nos dará un error de compilación o de
ejecución. Para representar que un número es de tipo long, añadimos una L al final
del número:

long numeroCuentas = 10000000000L;

Nota: No es recomendable crear una variable de tipo long para almacenar números
pequeños debido a que estamos reservando más memoria de la que realmente
necesitamos y eso a la larga puede producir que nuestro programa sea mucho más
lento de lo que es realmente. Su valor por defecto si no lo inicializamos es 0L.

Números decimales ( double y float )

Si en lugar de números enteros queremos almacenar números decimales, tenemos


dos tipos:

 float: Las variables de tipo float o flotante son aquellos números en precisión
simple de 32 bytes en el estandar IEEE 754. Para indicar que un número es
de tipo flotante ponemos un punto para separar la parte entera del número
de la parte decimal.

 double: Las variable de tipo double o doble son aquellos números en


precisión doble de 64 bytes en el estandar IEEE 754. Para indicar que un
número es de tipo flotante ponemos un punto para separar la parte entera
del número de la parte decimal.

Si por algún motivo necesitamos especificar si un número es flotante o doble basta


con añadir una letra f od al final del número tal y como vemos en el siguiente código:

double x = 3.2d;

float y = 4.8f;

Añadir que en caso de querer representar números grandes es mejor usar double
en lugar de float ya que a la hora de operar con ellos puede producirse errores de
aproximación y llevarnos a confusiones innecesarias. Su valor por defecto si no lo
inicializamos es 0.0d para double y 0.0f para float. Existen dos tipos básicos más
para representar números: short y byte . Estos tipos sólo almacenan números de
tipo entero similar a como sucede con las variables de tipo int. No obstante, los
rangos de valores que pueden almacenar son mucho más pequeños (byte: -128,
127 short: -32768, 32767) y sólo se suelen usar cuando la reserva de memoria tiene
que estar muy controlada para el perfecto funcionamiento de un programa. En
general basta con trabajar con variables de tipo int en lugar de estos dos tipos.

Verdadero o Falso ( boolean )

Más adelante veremos herramientas para controlar el flujo de ejecución del


programa las cuales se basan en el uso de condiciones ante las cuales el
programa se ejecutará de una forma u de otra. Normalmente, esas condiciones
serán de la forma:

Si esVerdadero

Hacer A

Sino

Hacer B

Evaluar ese "esVerdadero" no es más que evaluar una sentencia la cual devolverá
verdadero ( true ) o falso ( false ) en función de la condición. Ese valor true-false se
corresponde con variables booleanas o boolean. Las variables booleanas son
aquellas que sólo pueden guardar dos valores: true y false. Se declaran igual que
otra variable:

boolean verdadero = true;

Su valor por defecto si no lo inicializamos es false.

Símbolos o caracteres ( char )

Ya hemos hablado de los números, pero ¿qué sucede con las letras o símbolos?
Podríamos usar variables de tipo int para almacenarlas, pero al hacer eso en lugar
de guardar el símbolo como tal, se almacenaría su correspondiente valor en formato
decimal en ASCII y tendríamos que manualmente interpretar dicho número para
pasarlo a su correspondiente símbolo si quisieramos por ejemplo imprimirlo por
consola. Para evitar esto, tenemos las variables de tipo char :
char a = 'a';

char b = 'b';

En este caso hemos creado dos variables de tipo char; una para el símbolo "a" y
otra para el símbolo "b". Notar que para referirnos a un símbolo como tal, tenemos
que rodearlo con comillas simples '' . Su valor por defecto si no lo inicializamos es
'\u0000'.

Cadenas de texto ( String )

Hemos solucionado el problema de almacenar en memoria símbolos individuales.


Supongamos que queremos trabajar con secuencias de símbolos o cadenas de
texto . Con lo visto hasta ahora tendríamos que crear tantas variables de tipo char
como letras tenga la cadena. Un ejemplo rápido, si quisieramos representar el
Quijote con variables char tendríamos un total aproximadamente de 2059005 letras
en él contando las letras repetidas. Resulta inviable crear tantas variables de tipo
char, ¿verdad? Sin ir tan lejos, para la palabra "perro" tendríamos que crear 5
variables. Para solucionar esto, Java nos facilita el trabajo al definir una clase
llamada String la cual representa la secuencia o el vector de símbolos que
componen una palabra, una frase, un párrafo, etc. Siguiendo el código del ejemplo,

String perro = "perro";

String gato = "gato";

perro y gato son variables de tipo String las cuales almacenan las cadenas "perro"
y "gato" respectivamente. El trabajar así con los símbolos facilita mucho el manejo
de cadenas. Su valor por defecto si no lo inicializamos es null . El valor null es el
usado en Java para indicar que un Objeto no está inicializado y por tanto no se
puede usar.

Constantes ( final )

Supongamos que tenemos un tipo de dato el cual nunca y por ningún motivo
cambiará su valor. Por ejemplo el número PI (3.14159265358979323846…). Para
indicar que una variable tomará siempre el mismo valor y no se podrá modificar es
decir, es constante usamos la palabra reservada finalescribiéndola antes del tipo
de la variable:
final double NUMERO_PI = Math.PI; // 3.14

final int CERO = 0;

Si intentamos modificar el valor de una constante nos dará error de


compilación. Nota: Por cuestiones de buena práctica, se suelen escribir las
variables en minúscula y las constantes en mayúsculas. Si el nombre de la variable
es compuesto es decir, tiene más de una palabra, la primera letra de las siguientes
palabras se escribe en mayúsculas. En el caso de las constantes, se escribe un
guión bajo (_) entre palabra y palabra. Por ejemplo NUMERO_PI para la constante
y numeroCuentas para la variable.

Arrays o Vectores

Los arrays o vectores son listas donde cada elemento es una variable de un tipo
específico con su valor correspondiente. Los arrays no pueden almacenar tipos de
variables distintos (realmente eso no es cierto, pero con lo explicado hasta la fecha
hay que asumir que sí de modo que lo correcto sería decir "no deberían almacenar
tipos de variables distintos"). Existen tres maneras a lo sumo de definir un array:

String[] paises = {"España", "Italia", "Portugal"};

String[] animales = new String[] {"perro", "vaca", "gato", "mono"};

String[] objetos = new String[3];

En la primera estamos creando un array temporal con el nombre de tres países y


luego lo almacenamos en la variable paises sin indicar qué tipo de dato va a
almacenar; el propio Java se ocupa de reconocerlo. El segundo caso es similar al
primero con la diferencia de que especificamos el tipo de valor que va a almacenar
nuestro array. El último caso es la forma general (y común en muchos lenguajes)
de declarar el array. En él indicamos que será un array de 3 elementos máximo de
tipo String, sin inicializar los valores de cada posición o elemento de la lista. Si
queremos asignar valores a cada posición del array tendremos que hacerlo de la
siguiente forma:
objetos[0] = "pelota";

objetos[1] = "caja";

objetos[2] = "zapato";

Tal y como comenté al explicar la tercera forma de declarar un array, los vectores
tienen un tamaño máximo el cual nosotros definimos. Por tanto, no podemos
aumentar dicho tamaño; si deseamos un tamaño mayor tenemos que crear un
nuevo array y posteriormente asignarle los valores almacenados en el anterior. Para
acceder a los elementos almacenados en el vector la sintaxis es la siguiente:

nombreVector[índice];

donde índice será un número entero que esté dentro del rango 0 y tamañoVector -
1 . Hay que tener esto en cuenta ya que cuando queramos acceder a un elemento
n-ésimo tendremos que usar el índice (n-1)-ésimo. Así por ejemplo:

System.out.println("El " + animales[0] + " persigue al " + animales[2]);

El mensaje que se muestra por consola es:

El perro persigue al gato

Algo más a tener en cuenta de los vectores en Java es que, a diferencia de otros
lenguajes, los vectores no son cíclicos ; si intentamos acceder al siguiente
elemento después del último se produce una excepción al usar un índice el cual
está fuera de rango. Nota: Java implementa una clase llamada ArrayList la cual
extiende los vectores para mejorar su manejo (igual que sucedía con String y las
variables de tipo char). No obstante, yo me limitaré a los vectores ya que los
ArrayLists no son un elemento de la programación básica. Si alguien quiere usarlos
y quiere preguntarme algo de ellos no duraré en responder igualmente.

Clases Envolventes ( Wrappers )

Similar a lo que sucede con los ArrayLists, los Wrappers son una clase propia de
Java la cual extiende el uso de una variable básica del lenguaje. Simplemente
añaden funcionalidades a los tipos básicos en Java. Los Wrappers existentes y el
tipo correspondiente son:

 Byte para byte.

 Short para short.

 Integer para int.

 Long para long.

 Float para float.

 Double para double.

 Boolean para boolean.

 Character para char.

Una utilidad muy común en ellos es la de dada una cadena String de un número
(por ejemplo "10") transformarla en un número de tipo int y luego operar con ella:

System.out.println(Integer.parseInt("10") + 2);

El resultado de esa sentencia nos imprime por pantalla 12. Si por el contrario esa
sentencia fuera esta:

System.out.println("10" + 2);

Java entendería que el número 2 también es una cadena y por


tanto concatenaría ambas cadenas e imprimiría por pantalla 102. Un momento...
¿qué es concatenaría? Muy simple: un operador .

PROGRAMACIÓN Y SU INSIDENCIA EN LA TECNOLOGIA

En informática la programación es un proceso por el cual se escribe (en un lenguaje


de programación), se prueba, se depura y se mantiene el código fuente de un
programa informático. Dentro de la informática, los programas son los elementos
que forman el software, que es el conjunto de las instrucciones que ejecuta el
hardware de una computadora para realizar una tarea determinada. Por lo tanto, la
programación es una de las principales áreas dentro de la informática.

Para el desarrollo de programas de cierta envergadura o complejos, con ciertas


garantías de calidad, es conveniente seguir alguno de los modelos de desarrollo de
software existentes, en donde la programación es sólo una de las etapas del
proceso de desarrollo de software. Los modelos de desarrollo de software son
tratados específicamente en la disciplina ingeniería del software dentro del campo
de la informática.

También podría gustarte