MSXInício
Capítulo 3Disponível

Variáveis e tipos numéricos

Tudo o que um programa faz se resume a guardar valores e fazer contas com eles.

Uma variável é como uma gaveta com etiqueta: você dá um nome a ela, guarda um valor dentro, e depois pode tirar o valor de volta ou trocá-lo. Em CSX, cada gaveta tem um tipo — uma indicação de que tamanho de valor cabe nela.

DICA

A partir daqui, sempre USES no topo

Todos os programas deste manual começam com uma linha USES declarando os módulos do runtime que serão utilizados. Nos capítulos de fundamentos usaremos USES SCREEN 1 (para exibir texto na tela). O CSX Variable Inspector, na aba direita da IDE, mostra o valor de cada DIM em tempo real — mantenha-o aberto enquanto estuda este capítulo.

Os quatro tipos numéricos

CSX tem quatro tipos básicos para guardar números e valores lógicos. Use a tabela abaixo como referência:

  • BYTE (1 byte): 0 a 255. Contadores pequenos, coordenadas X, cores.
  • WORD (2 bytes): 0 a 65535. Endereços, pontuações, contadores grandes.
  • INT (2 bytes): -32768 a +32767. Quando precisar de números negativos.
  • BOOL (1 byte): TRUE / FALSE. Bandeiras (ligado/desligado, vivo/morto).

Declarando uma variável: DIM

O comando DIM (de DIMension, herança do BASIC) cria uma variável. A forma completa é:

DIM nomeDaVariavel AS TIPO = valorInicial

As partes AS TIPO e = valor são opcionais. Veja todas as variantes válidas:

DIGITE E VEJA

Programa 3.1 — Quatro maneiras de declarar

Digite e rode. Você ainda não vai ver nada na tela, mas o programa compila.

USES SCREEN 1
SCREEN 1
CLS

DIM idade AS BYTE = 25
DIM pontos AS WORD = 5000
DIM saldo AS INT = -150
DIM jogando AS BOOL = TRUE

PRINT "VARIAVEIS CRIADAS!"

Quando o tipo é opcional

Se você omitir o AS TIPO, o compilador deduz o tipo a partir do valor inicial. As regras são simples:

  • Número positivo até 255 → vira BYTE.
  • Número positivo de 256 a 65535 → vira WORD.
  • Número negativo → vira INT.
  • TRUE ou FALSE → vira BOOL.
DIM x = 100           ' x vira BYTE (cabe em 1 byte)
DIM y = 1000          ' y vira WORD (passa de 255)
DIM t = -5            ' t vira INT (negativo)
DIM ok = TRUE         ' ok vira BOOL

DICA

Quando explicitar o tipo

Mesmo quando o compilador acerta a dedução, escrever AS TIPO deixa seu programa mais claro para outros leitores (e para o você do futuro). Dica de ouro: use AS BYTE sempre que souber que o valor não vai passar de 255 — economiza um byte de RAM por variável, e RAM é luxo no MSX1.

Mostrando valores com PRINT

O comando PRINT aceita misturar texto e variáveis. Use vírgula para separar:

DIGITE E VEJA

Programa 3.2 — Mostrando os valores

Modifique o Programa 3.1 acrescentando estas linhas no fim:

PRINT "IDADE = ", idade
PRINT "PONTOS = ", pontos
PRINT "SALDO = ", saldo

TELA ESPERADA

O que aparece

VARIAVEIS CRIADAS!
IDADE = 25
PONTOS = 5000
SALDO = -150

Note como o compilador escolhe sozinho a forma de imprimir cada valor: BYTE em até 3 dígitos, WORD em até 5, INT com sinal de menos quando negativo. Isso é mágica do compilador — você não precisa pensar nisso.

Mudando o valor de uma variável

Depois de criada, basta usar o sinal de igual para trocar o valor:

DIM contador AS BYTE = 0
contador = contador + 1    ' agora vale 1
contador = contador + 10   ' agora vale 11
contador = 100             ' agora vale 100

ATENÇÃO

Cuidado com estouros (overflow)

Um BYTE só vai até 255. Se você fizer contador = 250 + 10, o resultado não será 260 — será 4 (porque 260 não cabe em BYTE e os bits extras se perdem). Se você precisa de valores grandes, use WORD.

Promoção automática de tipos

Quando uma expressão mistura tipos diferentes, CSX promove automaticamente o menor para o maior, evitando perda de informação:

DIM b AS BYTE = 100
DIM w AS WORD = 1000
DIM resultado AS WORD
resultado = b + w    ' b vira WORD temporariamente, soma dá 1100

CURIOSIDADE

Por que existem tantos tipos?

No mundo dos computadores antigos, cada byte conta. O Z80 trabalha naturalmente com 8 bits (BYTE) e tem instruções especiais para 16 bits (WORD/INT). Usar BYTE quando dá é mais rápido e ocupa metade da RAM. Linguagens modernas escondem isso de você, mas o preço é gastar 4 ou 8 bytes para guardar um valor que caberia em 1.

Exercícios

  • 3.1 — Declare três variáveis BYTE chamadas x, y, cor e mostre cada uma com PRINT.
  • 3.2 — Crie um INT com valor -32000. Some 100 e mostre. Agora some 1000. O que aconteceu?
  • 3.3 — Sem usar AS, declare três variáveis com valores 50, 500 e -50. Use PRINT para mostrá-las. O compilador escolheu os tipos certos?

Resumo do capítulo

  • Variáveis são gavetas com etiqueta e tipo.
  • Quatro tipos: BYTE (0-255), WORD (0-65535), INT (±32K), BOOL (TRUE/FALSE).
  • DIM declara; = atribui; AS TIPO é opcional mas recomendado.
  • PRINT escolhe o formato certo para cada tipo automaticamente.
  • Cuidado com overflow em BYTE; promoção automática evita problemas em mistos.

LET: a forma clássica da atribuição

Quem vem do BASIC antigo pode escrever a palavra LET antes de uma atribuição. Ela é opcional e não muda nada no programa gerado:

DIM vidas AS BYTE = 3
LET vidas = vidas - 1
vidas = vidas - 1   ' exatamente a mesma coisa
Comunidade

Discussão · Variáveis e tipos numéricos

Curta, marque como lido e comente o que achou deste capítulo.

0 comentários
Entre para participar
Crie uma conta ou faça login para curtir, marcar como lido e comentar.

Carregando comentários…