BASIC básico

Faz o download do BASIC-256. Instala-o e escreve o programa "Hello World". Executa-o ().

Parabéns! És oficialmente um programador aprendiz!

Repara que há dois outputs possíveis: texto e gráfico. Apesar da atração dos gráficos, é no modo texto que se começa, simplesmente para não complicar. Assim, podemo-nos concentrar nos pontos importantes da linguagem. Mas só para experimentar, vamos desenhar qualquer coisa:

Com o comando color escolhes a cor para os próximos comandos. É fácil perceber o que faz o comando circle centro_x, centro_y, raio. clg vem de CLearGraphics. Deves chamá-lo quando quiseres limpar o output gráfico (não se limpa sozinho).

O BASIC do BASIC-256 é bastante avançado. Encontras todas as definições, keywords e comandos no manual online. Deixa-o aberto. A versão Inglesa é a mais atualizada, mas a Portuguesa serve por enquanto.

Como já foi dito, numa linguagem imperativa como o BASIC tu dás ordens. Só tens de conhecer os comandos que a linguagem conhece. Repara também que o BASIC é uma linguagem "case-insensitive", ao contrário de muitas outras. Assim, print = Print = PrinT. Como print é o primeiro comando de output, é melhor dares uma vista de olhos.

Experimentaste o exemplo? O comando for cria um ciclo. Esse ciclo existe entre o for e o next. Vamos analisar as linhas:

for n = 1 to 5

Criamos uma variável chamada n com o valor 1. Esta variável é especial porque é controlada pelo ciclo for. Por outro lado, é uma variável igual às outras: podemos ler o seu valor e até mudá-lo (o que neste caso não faz muito sentido). Já agora, só há dois tipos de variáveis em BASIC as que guardam números e as que guardam texto. Podemos distingui-las facilmente porque as variáveis do tipo texto terminam com um $, como nome$.

print n

O comando print não escreve só texto; escreve números (print 5) e também o valor das variáveis. Como n = 1, print n vai escrever 1 no output.

next n

Encerra o ciclo. Adiciona 1 à variável n e (mais importante) empurra a execução do código para a linha do for. Ao lá chegar, a variável n é testada: se o seu valor for maior do que o máximo indicado (5) o ciclo termina e o programa continua na linha a seguir ao next (podes confirmar se escreveres print "Adeus") como última linha. Senão, o programa continua na linha a seguir ao for. Quando não há mais linhas, o programa termina.

O par for / next forma um ciclo condicional. Há vários outros ciclos - do / until, while / end while. Fazem parte das estruturas de controle do BASIC e vais encontrá-los em muitas outras linguagens. Enquanto sabes quantas vezes é que um ciclo for é repetido, os ciclos do e while obedecem a condições lógicas. Pensa no do / until como FAZ (código) ATÉ QUE (condição é verdadeira) e o while / end while lê-se ENQUANTO (condição é verdadeira) FAZ (código). O ciclo for / next pode ser trocado por outro destes ciclos:

n= 1
do
print n
   n = n + 1
until n > 5

ou

n = 1
while n <= 5
   print n
   n = n + 1
end while

É habitual usar a "tabulação" (ou espaços) nas linhas de código dentro de ciclos, para facilitar a leitura, principalmente se fizeres ciclos dentro de ciclos.

Uma condição lógica é uma comparação, uma operação que pode ser Verdadeira ou Falsa. Como o BASIC só guarda números e texto, guarda Verdadeiro como 1 e Falso como 0. Experimenta:

print 1 = 1
print 2 > 3
print "Ana" = "Ana"
print "Ana" <> "Maria"

ou para usares variáveis, tenta:

nome1$ = "Ana"
nome2$ = "Maria"
resultado = nome1$ <> nome2$
print resultado

São vários os operadores (comparativos e aritméticos) que podes usar. Repara que alguns operadores estranhos servem para escreveres menos código à custa da compreensão do código. O exemplo acima do ciclo do pode ser escrito com menos uma linha, assim (porque na mesma linha é feita uma soma e uma comparação):

n= 1
do print n
until ++n > 5

Deixei para o fim talvez o comando mais importante. É usado para quase todas as decisões: é o if / then, que se lê SE (condição é verdadeira) ENTÃO (código). Se escreveres várias linhas de código tens de terminar com endif. O comando mais completo é o if / then / else: SE (condição é verdadeira) ENTÃO (código) SENÃO (código). Admira os seguintes exemplos:

n1 = 5
n2 = 5
if n1 = n2 then print "Os números são iguais"
 
n1 = 5
n2 = 5
if n1 = n2 then
   print "Os números são iguais e são o ";
   print n1
endif

E agora algo mais interativo, com input:

input "Escreve um número e carrega no Enter: ", n1
input "Escreve outro número e carrega no Enter: ", n2
print n1;
print " e ";
print n2;
print " são ";
if n1 = n2 then
   print "iguais"
else
   print "diferentes"
endif

Vou ignorar os comandos BASIC mais criticados (goto e gosub) porque vão contra a programação estruturada que se escreve hoje. São fáceis de usar em pequenos programas, mas à medida que o número das linhas de código aumenta tornam-se complicados de gerir. Não existem na maioria das linguagens. portanto a sua aprendizagem é pouco útil.

Para terminar, um pequeno jogo: procurar um número escolhido ao acaso:

print "Descobre o número"
numero_a_descobrir = int (rand * 10)
do
input "Escolhe um número de 0 a 9: ", numero_escolhido
if numero_a_descobrir > numero_escolhido then print "O número é maior!"
if numero_a_descobrir < numero_escolhido then print "O número é menor"
until numero_escolhido = numero_a_descobrir
print "Parabéns! Acertaste no número ";
print numero_a_descobrir

Como vez, podemos dar nome úteis às variáveis, mas é melhor usar letras sem acentos e números. Não podemos usar espaços, por isso usamos o "_".