Curso de Basic
Variáveis do Basic


  A variável é um nome associado a algum dado, que diferentemente da constante, pode ter seu conteúdo modificado.

  Tipos:

Tipo Sub-tipo Descrição Exemplo
String - Seqüência de até 255 caracteres. N$ = "MSX"
Numérico Inteiro Números inteiros entre -32768 a 32767. Ocupa 2 bytes. A = 123%
Numérico Precisão simples Número real de 6 dígitos significativos. Ocupa 4 bytes. A = 1.23!
Numérico Precisão dupla Número real de 14 dígitos significativos. Ocupa 8 bytes. A = 1.23#

  A atribuição de uma dado à variável é feita através do sinal de igual. No caso, a variável pode receber tanto um dado de uma constante como de outra variável. Ex:
10 A=7
20 B=A
30 PRINT A
40 PRINT B
  Saída:
  7
  7
  Ok

  Os nomes de variáveis podem ter no máximo 2 caracteres, sempre começando por uma letra. Entretanto, o Basic aceita armazenar na listagem do programa um nome de variável maior que 2 caracteres, mas com a ressalva de apenas considerar o dois primeiros caracteres do nome. Ex:
AA=1 
AB=2 
PRINT AA 
1
Ok
PRINT AB 
2
Ok
  Veja agora este exemplo:
AAA=1
AAB=2
PRINT AAA 
2
Ok
PRINT AAB 
2
Ok
  Nesse caso, a variável "AAA" teve somente considerados os dois primeiros caracteres, que são o "AA". A variável "AAB" também teve considerados os dois primeiros caracteres, que são o "AA". Em ambos os casos, a variável considerada é a mesma variável "AA". Assim, quando atribuímos AAB=2, na verdade estamos substituindo o valor de "AA" de 1 por 2.
  Observa-se que o uso de nomes com mais de dois caracteres torna o programa mais legível, mas o risco de acontecer o erro desse último exemplo é grande. Prefira usar duas letras no máximo.

  Este último exemplo:
10 MARMSX=1 

LIST 
10 MARMSX=1

RUN 
Ok

PRINT MA 
1
Ok


  Definição de variáveis

  As variáveis são definidas segundo o símbolo colocado na terminação de seu nome. Assim, temos:   Um exemplo dentro de um programa:
10 A% = 25
20 A% = A% + 5
30 PRINT A%

  Podemos também utilizar o comando DEF para definir uma variável ou uma faixa de variáveis como um desses tipos:   Podemos atribuir esses comandos a uma, várias ou uma faixa de variáveis. Ex:
DEFINT A
DEFINT A-D
DEFINT A,C,G
  No primeiro comando, somente a letra A será uma variável do tipo inteiro, quando utilizada. Já no segundo, as letras A, B, C e D serão do tipo inteiro. Finalmente, o terceiro fará com que as letras A, C e G sejam inteiras.
  Nesse caso, as variáveis terminadas em branco deixam de ser do tipo double e se tornam do tipo especificado. Ex:
10 DEF STR A
20 A = "MarMSX"
30 PRINT A
  Saída:
  MarMSX

  Nota: deve-se evitar o uso de nome de variáveis do tipo string sem o sinal de dólar "$" ao final, pois é uma convenção do Basic para diferenciar strings de números.


  Conversão de tipos

  A conversão entre números pode ser do tipo implícita ou explícita. Já a conversão entre números e strings deverá ser feita do modo explícito, senão um erro acontece.
  No modo implícito, a conversão é feita automaticamente. Ex:
10 A% = 1.2345
20 PRINT A%
  Saída:
  1

  No modo explícito, a conversão de tipo é indicada no programa. Ex:
10 A# = 1.2345%
20 PRINT A#
  Saída:
  1

  Nesse caso, a variável do tipo double recebeu um número real convertido para inteiro.

  A conversão entre string e números é feita através de duas funções nativas do Basic:   Nesse tipo de converão, somente poderão seu utilizados números. Caso seja utilizado outro caractere, o retorno é 0.

  Um bom exemplo de conversão entre strings e números é quando desejamos criar números hexadecimal em tempo de execução. Ex:
10 FOR I=1 TO 8
20 READ A$
30 N = VAL("&H"+A$)
40 PRINT N;
50 NEXT I
60 DATA 8,9,A,B,C,D,E,F
  Saída:
  8   9   10   11   12   13   14   15

  Por quê o número hexadecimal é criado como string? Pelo simples fato do programa utilizar as operações de concatenação de strings para montar a expressão "&H" mais o número em hexadecimal. Logo em seguida, há uma conversão de string para número, no qual é interpretado como uma constante do tipo numérica e hexadecimal.



MARMSX/CURSOS/Basic