Curso de Basic
Introdução


Você está em: MarMSX >> Cursos >> BASIC   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 com valores de 10 em 10, com o objetivo de facilitar a introdução de linhas intermediarias, caso necessário.
  Geralmente, cada linha contém uma instrução. Ex:
10 PRINT A
  Entretanto, podem ser adicionadas mais de uma instrução por linha, separadas por dois pontos ":". Ex:
10 A=1+2 : PRINT A -- Instrução 2
     |
     +-- Instrução 1
  Assim, o programa:
10 A=1+2 : PRINT A
  Equivale a:
10 A=1+2
20 PRINT A

  Os comandos são poucos, simples e facilmente compreensíveis da lingua inglesa como INPUT, READ, 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!" 
Olá Mundo
Ok
  A instrução não é retida na memória, entretanto o resultado de uma expressão é armazenado na memória. A instrução só permanecerá disponível enquanto ela estiver escrita na tela. Ex:
A=5 
PRINT A 
 5
Ok

  Esse programa armazena o resultado da expressão "A=5" na memória e imprime o resultado na tela.
  Podemos retornar com o cursor para a linha do comando "PRINT A" e executar essa instrução mais uma vez. Até mesmo podemos apagar a linha com a instrução "A=5", que a resposta será a mesma, uma vez que o resultado da expressão "A=5" já havia sido armazenado na memória. Entretanto, se apagarmos toda a tela, o programa é perdido e será necessário digitar o comando "PRINT A" novamente para obter o resultado na tela.

  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.
10 A=5 
20 PRINT A 
  É necessário utilizar o comando direto "RUN" para executar o programa.
RUN 
 5
Ok

  Exemplo de como renumerar as linhas automaticamente, começando de 10 e saltanto de 10 em 10:
10 A=5
15 A=A+1
20 PRINT A
RENUM 
Ok
LIST 
10 A=5
20 A=A+1
30 PRINT A
Ok


  Literais

  Tantos as literais como as variáveis em Basic são classificadas em alfanuméricas (ou strings) e numéricas.
  Literais são os valores fixos empregados no código fonte de um programa de computador, seja para atribuição de valor ou como argumento para uma função. Por exemplo, na expressão
PRINT "Olá Mundo!"
  A expressão "Olá Mundo" é uma literal.

  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².

  Nota: no livro do Expert [2], os autores chamam as literais de "constantes". Entretanto, na Ciência de Computação, as constantes possuem um identificador e armazenam valores na memória como as variáveis, mas somente podem ter seu valor atribuído uma única vez, ou seja, não pode ter seu valor alterado.


  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 
 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.


  Entrada e Saída de dados

  A entrada de dados no MSX é feita através dos comandos INPUT e LINE INPUT. Já a saída de dados é feita através do comando PRINT.

  Sintaxe do comando PRINT:
PRINT expressão [separador expressão separador ...]
  O comando PRINT apresenta na tela os dados definidos pelas expressões.

  Tipos de expressões aceitas:   Tipo de separadores:   Exemplos:
PRINT "Olá" 
Olá
Ok

PRINT 10E3 
10000
Ok

A=15 
PRINT A 
15
Ok

T$="MSX" 
PRINT T$ 
MSX
Ok

PRINT 5+4 
9
Ok

PRINT 5<4 
0
Ok

  Conforme visto na sinatxe do comando PRINT, podemos ter diversas expressões, separadas por vírgula ou ponto e vírgula. Ex:
10 H$="Paulo" : IH=25
20 M$="Kátia" : IM=30
30 PRINT H$;" tem";IH";"anos. Já ";M$;" tem";IM;"anos."
RUN 
Paulo tem 25 anos. Já Kátia tem 30 anos.
Ok

  Obs 1: o comando PRINT pode ser substituído pelo símbolo "?". Ex:
? "Olá"
  Equivale a:
PRINT "Olá"

  Obs 2: diferentemente das strings, a expressões numéricas são impressas com um espaço em branco antes e depois do valor. Ex:
PRINT "**";4;"**" 
** 4 **
Ok

PRINT "**";"A";"**" 
**A**
Ok

  Sintaxe do INPUT:
INPUT ["mensagem";] variável [, variável] ...
  O comando INPUT recebe dados do usuário e os armazena em variáveis. Ele coloca automaticamente um ponto de interrogação logo após a mensagem digitada.
  Esse comando aceita variáveis do tipo numérica e string. Já o comando LINE INPUT só aceita variáveis do tipo string. Além disso o comando LINE INPUT não coloca o ponto de interrogação após a mensagem.

  Exemplos:
INPUT "Preço ";P 
Preço ? 1.5 
Ok

PRINT P 
1.5
Ok
INPUT "Notas prova 1 e 2 "; P1, P2 
Notas prova 1 e 2 ? 7,8 
Ok

PRINT P1,P2 
7             8
Ok

  Observe nesse último exemplo que é possível inserir mais de um dado ao mesmo tempo, separados por vírgulas. Nesse caso, foram introduzidas duas notas, onde a variável P1 recebe o valor 7 e a variável P2 recebe o valor 8.


  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 
Qual o valor de A? 5
Qual o valor de B? 3
A média entre 5 e 3 é: 4
Ok


  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 
Qual a nota? 6
Recuperação
Ok


  3. Criar um programa que escreva "MSX" 10 vezes na tela.
10 FOR I=1 TO 10
20 PRINT "MSX"
30 NEXT I
RUN 
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 
MSX MSX MSX MSX MSX MSX MSX MSX MSX MSX



  Referências:

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


<< Anterior Basic Próxima >>