Trabajo con qBasic para representar matrices.

Indice.

Entrada de datos.

Programa de qBasic

Referencias

Programa de qBasic
En la carpeta qb64, esta el programa qb64, [2]




En el siguiente ejemplo se crea una matriz 2x2, que seria,

      | a11     a12|
a = |                  |
      | a21     a22|

      | 2          3|
a=  |               |
      |  3        4 |
 
El siguiente programa realizado con qBasic genera los valores de la matriz, pero el mismo presenta los terminos de la siguiente manera :

a(1,1)=2  a(1,2)=3  a(2,1)=3  a(2,2)=4 

que es una forma muy incomoda de interpretar o ver  la matriz.

En  el  siguiente ejemplo, se escribe el codigo utilizado, para dimensionar la matriz  utilizamos  [1]  
DIM a(dimension1,dimension2)

las matrices pueden contar con más dimensiones. La utilización de matrices multidimensionales no es más que la extensión natural de la correspondiente a unidimensionales.

'matriz  2x2
SCREEN _NEWIMAGE(900, 600, 32)

DIM a(2, 2)
FOR i = 1 TO 2

    FOR j = 1 TO 2

        a(i, j) = i + j

        PRINT "a("; i; ","; j; ")="; a(i, j);

    NEXT

NEXT



En  el siguiente ejemplo se muestra una forma  mas natural de representar matrices, el codigo no es el optimo, pero nos muestra como generar una matriz

'matriz se 5x5
SCREEN _NEWIMAGE(900, 600, 32)
'defino el tamaño de la matriz
a = 5 'filas

b = 5 'columnas

DIM m(5, 5)
´a continuacion le doy valores a todos lo terminos de la matriz
m(1, 1) = 1
m(1, 2) = 2
m(1, 3) = 3
m(1, 4) = 4
m(1, 5) = 5

m(2, 1) = 6
m(2, 2) = 7
m(2, 3) = 8
m(2, 4) = 9
m(2, 5) = 10

m(3, 1) = 11
m(3, 2) = 12
m(3, 3) = 13
m(3, 4) = 14
m(3, 5) = 15

m(4, 1) = 16
m(4, 2) = 17
m(4, 3) = 18
m(4, 4) = 19
m(4, 5) = 20

m(5, 1) = 21
m(5, 2) = 22
m(5, 3) = 23
m(5, 4) = 24
m(5, 5) = 25


´a continuacion se genera la matriz en forma natural


FOR i = 1 TO a

    '---------------------------------------------------------
    '-----------1:
    FOR j = 1 TO b 'completa columnas




        PRINT "   m("; i; ","; j; ")="; m(i, j);
        IF j > b GOTO 2

    NEXT
    '----------------------------------------------------------

    2:
    '----------------
    PRINT "                                                                        " 'pasa a la siguiente linea y se evita la terminacion de punto y coma de la anterior
    i = i + 1

    IF i > a GOTO terminar


    FOR j = 1 TO b 'completa columnas




        PRINT "   m("; i; ","; j; ")="; m(i, j);
        '-------------------
        IF j > b GOTO 3 ' modificar el salto

    NEXT
    '------------------------------------------------------
    3:
    '----------------
    PRINT "                                                                        " 'pasa a la siguiente linea y se evita la terminacion de punto y coma de la anterior
    i = i + 1

    IF i > a GOTO terminar


    FOR j = 1 TO b 'completa columnas




        PRINT "   m("; i; ","; j; ")="; m(i, j);
        '-------------------
        IF j > b GOTO 4 ' modificar el salto
    NEXT

    4:
    '----------------
    PRINT "                                                                        " 'pasa a la siguiente linea y se evita la terminacion de punto y coma de la anterior
    i = i + 1

    IF i > a GOTO terminar


    FOR j = 1 TO b 'completa columnas


        PRINT "   m("; i; ","; j; ")="; m(i, j);
        '-------------------
        IF j > b GOTO 5 ' modificar el salto

    NEXT

    5:
    '----------------
    PRINT "                                                                        " 'pasa a la siguiente linea y se evita la terminacion de punto y coma de la anterior
    i = i + 1

    IF i > a GOTO terminar


    FOR j = 1 TO b 'completa columnas


        PRINT "   m("; i; ","; j; ")="; m(i, j);
        '-------------------
        IF j > b GOTO 3 ' modificar el salto

    NEXT


NEXT

terminar:





Entrada de datos.
Se escribe un archivo de texto como el siguiente,
1  2  3  4  5
y se lo guarda como numeros.txt , en la misma carpeta donde esta qb64, luego se escribe,

' Lee un archivo de texto línea a línea
DIM linea AS STRING

OPEN "numeros.txt" FOR INPUT AS #1 ' Abre el archivo para lectura

PRINT "Contenido del fichero:"
DO WHILE NOT EOF(1) ' Comprueba si se ha alcanzado el fin del archivo
    LINE INPUT #1, linea ' Lee una línea del archivo (hasta RC/LF: salto de línea)
    PRINT linea
LOOP

CLOSE #1 ' Cierra el archivo
END

al ejecutar el programa ,



Indice

Eduardo Ghershman, 1.6.2018

Referencias.


[1]Arrays (vectores o matrices)

[2] Download QB64 for Windows