Resumen

1.- ELEMENTOS


 Tipos de datos básicos.

El siguiente gráfico refleja concisamente los tipos de datos básicos del lenguaje:

                   TIPOS DE DATOS  


  NUMERICOS                            CADENA 


REALES ENTEROS LONGITUD FIJA LONGITUD VARIABLE

a su vez, los datos numéricos pueden ser de simple o de doble precisión.

Existen dos formas principales de declarar las variables:

a) por el carácter final del nombre

    % indica entero simple  

     & indica entero doble  

     ! indica real simple  

     # indica real doble  

     $ indica cadena de longitud variable

b) a través del modificador AS de las sentencias DIM, REDIM

COMMON, SHARED o STATIC. Los distintos tipos de AS son

    AS INTEGER              entero simple  

     AS LONG                 entero doble  

     AS SINGLE               real simple  

     AS DOUBLE               real doble  

     AS STRING               cadena de longitud variable  

     AS STRING * numero      cadena de longitud fija  

     AS var_def_us           variable definida por usuario


Operadores

BASIC incorpora los operadores habituales de todos los lenguajes:

a) Numéricos

    +   suma  

     -   resta  

     *   multiplicación  

     /   división  

     ^   exponenciación  

     \   división entera     

     MOD resto

b) Alfanuméricos. Solo se incluye el operador + de concatenación de cadenas

c) Relacionales

    =  igual  

     <> distinto  

     >  mayor  

     >= mayor o igual  

     <  menor  

     <= menor o igual

d) Lógicos

    AND  

     OR  

     NOT  

     XOR  

     IMP  

     EQV

Las tablas de verdad de los operadores menos conocidos son las siguientes:

   A  B  A EQV B  A IMP B


    V   V      V         V  

    V   F      F         F  

    F   V      F         V  

    F   F      V         V


 Variables multidimensionales

Las variables multidimensionales se declaran mediante la sentencia DIM, cuya sintaxis es

   DIM <nombre_variable> (rango)

donde <nombre_variable> es un nombre de variable que normalmente incluye como último carácter aquél que determina su tipo y (rango) indica el n

a) Un número simple n, lo que indica los n+1 elementos 0..n

b) p to q, donde p es el primer índice y q el último

c) (rango1,rango2,...rangon) para declarar matrices cuadradas, cúbicas, etc.

Ejemplos:

   DIM matriz! (1 to 20, 1 to 20)  

    DIM pesos! (40)  

    DIM tensor! (2,2,2)

El tipo de elementos de la variable se puede definir mediante el modificador AS . Por ejemplo:

  DIM Lista$ (100) AS STRING*20


Variables tipo registro.

El usuario puede definir variables tipo registro, donde bajo el mismo nombre se engloba información relacionada pero de naturaleza diferente. La sintaxis de este tipo de declaraciones es la siguiente:

   TYPE nombre_del_tipo  

        nombre_variable1 AS tipo1  

        nombre_variable2 AS tipo2  

        .  

        .  

        .  

    END TYPE

Por ejemplo:

   TYPE Tordenador  

        procesador AS string*5  

        RAM        AS integer  

        HD         AS integer  

        precio     AS real  

    END TYPE

Una vez definido el tipo, pueden declararse variables de dicho tipo mediante DIM, como se muestra a continuación:

  DIM miordenador AS Tordenador  

   DIM INTERNET(1,2000) AS Tordenador



Funciones numéricas y de cadena de caracteres.

BASIC incorpora las funciones numéricas habituales:

y algunas otras como FIX, INT y CINT cuyas sintaxis y acciones pueden consultarse en la ayuda en línea de Qbasic.

En cuanto a las funciones de manejo de cadenas, las mas habituales son:




------

 ESTRUCTURAS DE CONTROL 

  (Son solo para las verisones modernas)

 

  El BASIC clásico controlaba el flujo del programa mediante sentencias como GOTO, GOSUB o ON...GOTO, poco apropiadas para programar estructuradamente. 


Actualmente se cuenta con instrucciones de control de flujo similares a las de otros lenguajes.


Ejecución condicional.

Se consigue mediante la sentencia IF.

Su sintaxis es:

IF condicion THEN


Se puede usar en combinación con ELSEIF:

IF condicion1 THEN  

    bloque de sentencias 1  

ELSEIF  

    bloque de sentencias 2  

ENDIF


Pueden escribirse tantos ELSEIF como se desee, pero cuando hay varias posibilidades, es mejor usar la sentencia SELECT CASE, según el modelo siguiente:

SELECT CASE expresion  

    CASE valor1  

        bloque 1  

    CASE valor2  

        bloque 2  

    CASE valor 3  

        bloque 3  

    CASE ELSE  

        bloque alternativo  

END SELECT


Bloque repetitivos.

La instrucción FOR..NEXT ejecuta un bloque de sentencias un número determinado de veces. Su sintaxis es

FOR contador=inicio TO final (STEP incremento)  

    bloque  

NEXT contador

donde inicio es el valor inicial del contador, fin su valor final y opcionalmente podemos especificar el incremento del contador en cada iteración.

Un grupo de sentencias puede ejecutarse mientras se cumple una determinada condición, o hasta que se cumpla una determinada condición. En el primer caso, se escribe

DO WHILE condicion  

    bloque  

LOOP

y en el segundo

DO UNTIL condicion  

    bloque  

LOOP

En estos dos casos, la condición se evalúa antes de ejecutar el bloque de sentencias. Cuando WHILE o UNTIL se sitúan al final del bloque, tras LOOP, la condición se evalúa después de ejecutar el de ejecutarse el bloque de sentencias:

DO   

    bloque   

LOOP WHILEUNTIL condicion

Es posible forzar la salida del bloque mediante la instrucción DO EXIT. La sintaxis habitual es:

DO   

    bloque   

    IF condicion2 THEN DO EXIT   

LOOP WHILEUNTIL condicion1

La sentencia WHILE..WEND no es necesaria, dada la flexibilidad de la construcción DO..LOOP.



   Fuente:  apuntes de la asignatura "Periféricos" de Ingeniería Técnica en Informática de Sistemas, Universidad de Alicante, por Javier Gil Chica, 1995.