9-Tipos de variables numéricas

Tipos de variables numéricas aceptadas en Basic



A-Variables numéricas Enteras: son las que aceptan números enteros.



B-Variables numéricas Reales: son las que aceptan solo números decimales.




-Las versiones mas antiguas de BASIC solo podían manejar pocos tipos de datos. 

-Las primeras sólo manejaban números Enteros (sin comas, sin decimales)

-Algunas posteriores permitían solo números enteros y números reales (con algunos decimales, hasta una cierta precisión)


Podemos ver como el lenguaje fue pasando de muy simple y básico a algo mas complejo, pero con menos limitaciones.



Variables que solo aceptan Cadenas de caracteres (strings)

   La mayoría de las versiones también permiten cadenas de cracteres alfanuméricos (Código ASCII) de longitud variable. 





En las versiones modernas es habitual que nos permita definir nuestros propios tipos de datos (esto hace que los programas que podamos crear sean mas profesionales y el lenguaje sea mas adaptable a todo tipo de tareas y programas).



El tipo de la variable se indicaba añadiendo un "signo" al nombre de la variable. 


   Así que al final de una variable escribimos  $, indicamos que queremos que esa variable almacene cadenas de carateres alfanuméricos (strings):



Ejemplo devariable forzada a aceptar solo tipo de dato: "cadena de carateres alfanuméricos (textos y signos)"


var_nombre$="Juan_Dumas-1A33<d6|@"




Programa con Variable forzadas a aceptar solo Cadenas de caracteres (Strings)


Let var_nombre$="Juan Domingo 3" 

Print "Hola, " ; var_nombre$



En la mayoría de las versiones se puede añadir el sufijo % para indicar que una variable que almacena números va a usarse solo para Números Enteros. 


Ejemplo devariable forzada a aceptar solo tipo de dato: "número entero"

variable_nunEntero% = 0 


Un número sin decimales requiere menos espacio en memoria que un número real, y las operaciones sobre él se realizarán con mucha mayor rapidez. (estas dos cosas eran claves en los programas del pasado, ya que las máquinas tenían escasa memoria y eran muy lentas para procesar datos.)



Si tenemos que hacer una operación 500 veces, puede ser mucho hacer que el sistema solo use números Enteros (Solo cuando no se va a usar decimales en esa variables).


 Podemos sumar los 200 primeros números enteros así:



Programa con Variable forzadas a aceptar solo Números enteros:


v_nunEntero% = 0 

For entero_i% = 1 To 200 

v_nunEntero% = v_nunEntero% + entero_i%

Next entero_i%



En este programa se da por sentado que se trata de números reales.


suma = 0 

For i = 1 TO 200 

suma = suma + i 

Next i


Ello mejoraba mucho la velocidad de procesamiento. 


Con operaciones más complicadas, la mejora en velocidad se otaba mucho mas: 


FOR i = 1 TO 5000 

resultado = i * 5 + 1 

NEXT i



La orden "Defint"


En  versiones más modernas, se podía indicar explícitamente el tipo de una variable, y así no era necesario añadir: %. 



DEFINT  es: DE FINT  (Definir entero)


Con DEFINT definimos una variable como "entero":


Ejemplo:


Defint var_suma 

Defint i 

var_suma = 0 

For i = 1 To 5000 

var_suma = var_suma + i 

Next i



La mayoría de las veriones que permiten Defint también permiten indicar varias variables seguidas, para abreviar líneasas 


Defint, var_suma


Escribir "DEFINT i" hará que tanto la variable "i" como cualquier otra variable cuyo nombre empiece por la letra "i" serán consideradas números enteros. 

   Una forma de indicar que el programa iba a trabajar sólo con números enteros era que su primera línea fuera DEFINT a-z (definir como enteros las variables cuyos nombres comiencen entre la A y la Z).



En QBasic y otros BASIC modernos también se puede forzar a que una o varias variables sean consideradas de otros tipos de datos: 

Números Enteros largos (DEFLNG)

Número Reales de "precisión simple" (DEFSNG)

Números Reales de "doble precisión" (DEFDBL) 

Cadenas de caracteres (DEFSTR). 


Un "entero largo" permite aproximadamente, el doble de cifras que un "entero normal". 


Y un número "real de precisión simple" permitirá la mitad de cifras que un "real de doble precisión"). 


En cualquier caso, estos tipos de datos también tienen un signo alternatio:

% entero

& entero largo

! real de simple precisión

# real de doble precisión

$ cadena de caracteres


Estos "signos" siempre tendrán prioridad sobre las órdenes "Def".