Curso de Basic
Introdução


  O Basic (Beginner's All-purpose Symbolic Intruction Code) é uma linguagem criada com fins didáticos pelos professores John George Kemeny e Thomas Eugene Kurtz em 1964, que é do tipo interpretada e não estruturada.
  Um programa em Basic tem normalmente suas linhas numeradas e com incrementos de 10, com o objetivo de facilitar a introdução de linhas intermedíarias, caso necessário.
  Normalmente, cada linha contém uma instrução. Entretanto, podem ser adicionadas mais de uma instrução por linha, separadas por dois pontos ":".
  Os comandos são poucos, simples e facilmente compreensíveis da lingua inglesa como PRINT, IF, RUN, CIRCLE etc.

  Os oito princípios do Basic são:
  1. Ser fácil, principalmente para iniciantes.
  2. Ser uma linguagem de uso geral.
  3. Permitir a inclusão de rotinas avançadas, sem tornar a linguagem mais complicada.
  4. Ser interativa.
  5. Fornecer mensagens de erro claras e amigáveis.
  6. Responder rapidamente para programas pequenos.
  7. Não exigir o conhecimento do hardware do computador.
  8. Proteger o sistema operacional do usuário.
  A aprendizagem da linguagem Basic é simples, porém ela pode trazer um efeito colateral: o de não seguir as regras tradicionais de programação estruturada e outros cuidados.

  Fonte: adaptado de http://pt.wikipedia.org/wiki/Basic


  A linguagem Basic é nativa no MSX, ou seja, o interpretador Basic está incluído na ROM do sistema. Dessa forma, ela está pronta para o uso quando o MSX é ligado.
  Há dois modos de programação Basic: o direto e o programado.
  No modo direto, o comando é digitado sem ser precedido por um número de linha. Ele entra em execução ao teclar-se "enter" (). Ex:
PRINT "Olá Mundo!" 
  A instrução não é retida na memória, entretanto o resultado de uma expressão é armazenado. A instrução só permanecerá disponível enquanto ela estiver escrita na tela. Ex:
A=5 
PRINT A 
  Saída:
  5
  Ok

  Podemos retornar com o cursor para a linha e executar a instrução mais uma vez. Entretanto, se apagarmos a tela, a instrução é perdida de vez.

  No modo programado, cada linha é precedida por um número único e as linhas são armazenadas na memória, ordenadas de forma crescente, formando uma lista de comandos. Mesmo ao apagarmos a tela, a instrução permanece na memória. Ex:
10 A=5
20 PRINT A
  Comandos Basic para manipulação de programas:   No modo programado, o programa não executa imadiatamente. É necessário utilizar o comando direto "RUN" para isso.
10 A=5
20 PRINT A
RUN 
  Saída:
  5
  Ok


  Constantes

  Tantos as constantes como as variáveis em Basic são classificadas em alfanuméricas (ou strings) e numéricas.
  As constantes são valores fixos, ou seja, não podem ter seus valores alterados. Por exemplo, na expressão
PRINT "Olá Mundo!"
  a constante "Olá Mundo" não pode ter seu valor alterado.

  Tipos:

Tipo Sub-tipo Descrição Exemplo
String - Seqüência de até 255 caracteres, digitados entre aspas. "MSX"
Numérico Inteiro Números inteiros entre -32768 a 32767. 123
Numérico Ponto-fixo Número real. 1.23
Numérico Ponto-flutuante Número real representado na forma exponencial (notação científica). 4E10
Numérico Hexadecimal Número em hexadecimal precedido por &H. &HA0
Numérico Octal Número em octal precedido por &O. &O71
Numérico Binário Número em binário precedido por &B. &B1010

  Obs: a expressão em ponto flutuante 4E2 equavale a 4x10².


  Variáveis

  A variável é um nome associado a algum dado armazenado na memória, que diferentemente da constante, pode ter seu conteúdo modificado. Os nomes de variáveis podem ter no máximo 2 caracteres, sempre começando por uma letra.

  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
RUN 
  Saída:
  7
  7
  Ok

  Nota importante: As variáveis cujo nome terminam em "$" são sempre do tipo string. Quando não possuir esse símbolo, ela é do tipo numérica.


  Funções

  As funções são sub-rotinas que tem como objetivo executar uma determinada tarefa e retornar uma resposta ao usuário. Elas podem ou não receber parâmetros e são de dois tipos no Basic: nativas e criadas pelo usuário.
  As funções nativas são aquelas que já fazem parte do Basic. Exemplos: ABS, ASC, CHR$, SIN, VAL.
  As funções criadas pelo usuário são definidas através do comando DEF FN e são limitadas a expressões e não possuem comandos.
  A função deverá sempre retornar seu valor a uma variável ou outra função compatível com o tipo de dado retorno. Dessa forma, não é possível chamar uma função sozinha. Ex:
PRINT ABS(-1) 
1
Ok

N$ = HEX$(12) 

SIN(1.2) 
Syntax Error
Ok
  Assim como as variáveis, as funções cujo nome terminem em "$" retornam string, enquanto que sem o símbolo retornam um valor numérico.


  Primeiros exemplos

  1. Criar um programa em Basic para calcular a média entre dois números digitados pelo usuário.
10 INPUT"Qual o valor de A"; A
20 INPUT"Qual o valor de B"; B
30 M = (A+B) / 2
40 PRINT "A média entre";A;"e";B;"é:";M
RUN 
  Saída:
  Qual o valor de A? 5
  Qual o valor de B? 3
  A média entre 5 e 3 é: 4


  2. Criar um programa que entra com uma nota e verifica se: entre 0 e 5 = reprovado; entre 5 e 7 = recuperação; e entre 7 e 10 = aprovado.
10 INPUT"Qual a nota";n
20 IF N<5 THEN PRINT "Reprovado"
30 IF N>=5 and N<7 THEN PRINT "Recuperação"
40 IF N>=7 THEN PRINT "Aprovado"
RUN 
  Saída:
  Qual a nota? 6
  Recuperação


  3. Criar um programa que escreva "MSX" 10 vezes na tela.
10 FOR I=1 TO 10
20 PRINT "MSX"
30 NEXT I
RUN 
  Saída:
  MSX
  MSX
  MSX
  MSX
  MSX
  MSX
  MSX
  MSX
  MSX
  MSX

  Nota: o comando "PRINT" vai para a próxima linha automaticamente. Para não saltar para a proxima linha, acrescente o caractere ";" ao final da instrução. Ex:
10 FOR I=1 TO 10
20 PRINT "MSX";
30 NEXT I
RUN 
  Saída:
  MSX MSX MSX MSX MSX MSX MSX MSX MSX MSX



  Referências:

  [1] - Livro: Dominando o Expert, editora Aleph, 5a. Edição, 1987.


MARMSX/CURSOS/Basic