Curso de Basic
Variáveis do Basic
Você está em: MarMSX >> Cursos >> 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:
- $ - Variável do tipo string. Ex: A$
- % - Variável do tipo inteiro. Ex: A%
- ! - Variável do tipo precisão simples. Ex: A!
- # - Variável do tipo precisão dupla. Ex: A#
- branco - Variável do tipo precisão dupla. Ex: A
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:
- DEF STR - Define a variável como string. Ex: DEF STR A
- DEF INT - Define a variável como inteira. Ex: DEF INT A
- DEF SNG - Define a variável como precisão simples. Ex: DEF SNG A
- DEF DBL - Define a variável como precisão dupla. Ex: DEF DBL A
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:
- VAL() - Converte um caractere ou uma seqüência de caracteres em número. Ex: PRINT VAL("25")
- STR$() - Converte um número para string. Ex: PRINT STR$(25)
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.