Basic 3-Variables

Hemo visto cómo escribir un texto que habíamos fijado nosotros, pero lo habitual no es escribir valores "fijos/costantes", sino valores "móviles/variables", por ejemplo: el resultado de una operación, una número importado desde otro programa, un valor numérico introducido por el usuario, un nombre, una contraseña, etc. 


   Para ello usamos las "variables": 


   Una variable es un espacio de memoria en el que podremos guardar un dato y al que asignamos un nombre para poder identificarlo luego y pedirle que diga cual es el valor que almacena. 


Este valor lo podremos modificar cuando sea necesario. 


   Por ejemplo, podemos reservar un espacio variable y llamarlo "x" y guardar en él un valor de algún tipo, así



miVariable = 2 

Print "el valor de la variable miVariable es: "; miVariable





Es común usar "Let" para especificar que estamos creando una variable...pero no es obligatorio.


Let miVariable = 2 

Print "el valor de la variable miVariable es: "; miVariable


   "Let" permite dar un valor a una variable. (Es similar a "Var", aunque tiene sus usos específicos y eso lo veremos luego.)

  


Para mostrar en pantalla el valor de una variable utilizamos la orden "Print" pero indicando el nombre de la variable sin comillas. 



El resultado de los dos programas anteriores es:


   El valor de la variable miVariable es: 2




Luego podemos modificar el valor de X nuevamente las veces que sea necesario:


variable_x = 2 

Print "El valor inicial de x es: " ; variable_x 


variable_x = 5 

Print "Pero ahora x vale: " ; variable_x



Salida:


El valor inicial de variable_x es: 2  

Pero ahora variable_x vale: 5




   Hemos incluido en una misma orden Print un texto entre comillas y una variable, sin comillas, separados por punto y coma  (;)  para que se escriban en la misma línea.



La orden Let *no es obligatoria* en la mayoría de las versiones de BASIC




Si queremos que el usuario el que introduzca un valor para una variable, se usa la orden "Input":



Input var_x 

Print "Usted ingresó el valor: " ; var_x  

Print "El cuadrado del valor ingresado es: " ; var_x  * var_x 



La orden "Input" muestra una interrogación para avisarnos de que está esperando que inrgesemos un valor. 

   Por ejemplo, si el usuario introduce el valor 3, en pantalla aparecerá:


?3  

Usted ingresó el valor: 3  

El cuadrado del valor ingresado es: 9



También podemos indicar en la orden INPUT un texto entre comillas, para que aparezca delante de la interrogación (no en todas las versiones de BASIC, pero sí en la mayoría):



Input "¿Qué número quiere elevar al cuadrado? ";

Print "El valor ingresado es: " ;

Print "El cuadrado del valor es: " ; x * x



En las versiones que no acepten este formato de INPUT, la alternativa será usar un PRINT para avisar al usuario y luego el INPUT para leer datos:



PRINT "QUE NUMERO DESEA ELEVAR AL CUADRADO"; 

INPUT X

PRINT "EL VALOR TECLEADO ES: " ; X 

PRINT "SU CUADRADO ES:" ; X*X



En BASIC-256, el texto de "Input" se debe separar de la variable con una "coma", no con "punto y coma", y la interrogación no aparecerá automáticamente:



Input "¿Qué número quiere elevar al cuadrado? ", var_x 

Print "El valor ingresado es: " ; 

Print var_x  

Print "El cuadrado del valor es: " ; 

Print var_x * var_x 





En la gran mayoría de versiones del lenguaje BASIC, serán válidos nombres de variables que empiecen por una letra y después contengan letras o números (y en algún caso, algún otro símbolo, como el signo de subrayado). 


No podrán contener espacios, caracteres internacionales (letras acentuadas, eñes, etc.), ni casi ningún signo de puntuación (puntos, comas, etc.). 

Algunos símbolos especiales podrán aparecer al final del nombre de una variable, 

y tendrán un cierto significado, pero eso lo veremos un poco más adelante...



 Un problema que puede existir con las variables se debe al hecho de que en el lenguaje BASIC no es necesario declarar una variable antes de usarla: no hace falta decir "voy a usar una variable llamada X", sino que el propio intérprete de BASIC, cada vez que ve una variable nueva, la acepta como válida y le da el valor 0.

 

¿Qué problemas puede provocar esto?


var1 = 20 

vra2 = 55 

Total = var1 * var2 

PRINT "El total es: " ; Total



El resultado que queríamos obtener era: 

   20 * 55 = 1100


 Pero el programa está dando: 

    El total es:



   El fallo está en la línea 30: no hemos escrito var2, sino vra2, hemos cambiado de sitio las letras. 

   

   En otros lenguajes, esto haría que recibamos una aviso de que la variable llamada vra2 no se ha declarado previamente, pero en BASIC no es así, porque dá por sentado que hemos escrito bien la variable, pero que es una variable diferente, y se le da el valor 0. 



   En cuanto notemos algo raro, habrá que revisar el programa.



En algunos BASIC modernos (como QBasic o Visual Basic) permitirá evitar este tipo de problemas.


   


   Las variables que hemos usado almacenaban números enteros (sin decimales). 


  

En algunas versiones podremos almacenar números reales (decimales), decimales con distintas precisiones.

Cadenas de caracteres alfanuméricos (Strings)


   Existe otro tipo de datos, además de los números enteros y decimales, que podremos emplear en casi cualquier versión BASIC y que se usa mucho: las cadenas alfanuméricas (conjuntos de una o más letras números o signos, que utilizaremos para escribir mensajes en pantalla).



   Las variables que almacenen cadenas de texto deberán tener nombres terminados con el signo $:



Let Nombre$="Juan Domingo" 

Print "Hola, " ; Nombre$



   Podemos "concatenar" dos cadenas de caracteres (strings) con el signo "+", obteniendo una nueva cadena de texto formada por las dos de partida:


v_saludo$="Hola, " 

Input "Ingresa tu nombre" ; v_nombre$ 

v_frase$ = v_saludo$ + v_nombre$; v_frase$




En Basic256, esta programa sería casi idéntico , salvo que el texto de INPUT se debe separar de la variable con una "coma":


v_saludo$ = "Hola " 

Input "Introduce tu nombre: ", v_nombre$ 

v_frase$ = v_saludo$ + v_nombre$; v_frase$