Curso de Basic
Operadores


  Os operadores agem sobre constantes e variáveis contidas numa expressão, de maneira a produzir um valor único como resultado. Eles podem ser divididos em quatro categorias [1]:

  Aritméticos

  Operadores aritiméricos em ordem de prioridade:

Operador Operação Exemplo
^ Exponenciação A^B
- Mudança de sinal -A
* e / Multiplicação e divisão A*B, A/B
\ Divisão inteira A\B
MOD Resto da divisão A MOD B
+ e - Adição e subtração A+B, A-B

  Obs: para mudar a ordem de prioridade dos operadores, deve-se utilizar parêntesis. Ex:
PRINT 4+3/2 
5.5
Ok
  A primeira conta a ser feita é a divisão de 3/2, que dá 1.5. Então, a soma de 4 + 1.5 é feita, totalizando 5.5.

  Mudando a prioridade:
PRINT (4+3)/2 
3.5
Ok
  Agora a conta 4+3 é feita primeiro, totalizando 7. Depois, a conta 7/2 é feita, resultando em 3.5.

  Outra coisa que deve ser observada é que o operador "+" serve também para concatenar (juntar) strings. Ex:
"Mar" + "MSX" = "MarMSX"

  Relacionais

  Operadores relacionais:

Operador Operação Exemplo
= Igual A=B
<> Diferente A<>B
< Menor A<B
> Maior A>B
<= Menor ou igual A<=B
>= Maior ou igual A>=B

  O resultado dos operadores relacionais é sempre uma valor "verdadeiro" ou "falso". Ex:
A=21
IF A>10 THEN PRINT"Maior que 10" ELSE "Menor ou igual a 10" 
Maior que 10
Ok
  O resultado para a expressão "A>10", quando "A" possui o valor igual a 21, é verdadeiro.


  Lógicos

  São os seguintes operadores lógicos:   Convenção: o valor 0 equivale a falso e o valor 1 equivale a verdadeiro.

  Quando o teste lógico é aplicado à cláusula IF, ele resulta em uma saída de tamanho igual a 1 bit, ou seja, possui valor igual a 0 ou 1. Ex:
10 A=1
20 B=2
30 IF A=1 EQV B=2 THEN PRINT"Ou ambos os testes são verdadeiros ou falsos" 
ELSE "Um teste é verdadeiro e outro é falso"
  No primeiro teste, "A=1" é verdadeiro. No segundo teste, "B=2" também é veradeiro. A expressão "verdadeiro EQV verdadeiro" é verdadeira. No caso de um dos teste der falso, a resposta da expressão A EQV B será falsa.

  Quando o teste lógico é aplicado a valores (variável ou constante), ele realiza operação lógica bit a bit em um número de 16 bits, resultando em um número inteiro de 16 bits.
  Exemplos:
PRINT NOT 0 
-1
Ok

PRINT 1 AND 1 
1
Ok

PRINT 1 EQV 0 
-2
Ok

  Operação bit a bit da primeira conta: NOT &B0000000000000000 = &B1111111111111111
PRINT &B1111111111111111
-1

  Operação bit a bit da segunda conta: &B0000000000000001 AND &B0000000000000001 = &B0000000000000001
PRINT &B0000000000000001
1

  Operação bit a bit da terceira conta: &B0000000000000001 EQV &B0000000000000000 = &B1111111111111110
PRINT &B1111111111111110
-2

  Obs: o mesmo esquema "bit a bit" ocorre para os operadores relacionais, quando aplicado a valores. Ex:
A=21
PRINT A>10 
-1
Ok
  O resultado da expressão "A>10" quando convertida para um número inteiro, resulta no numéro binário de 16 bits &B1111111111111111.

  O curso de pascal possui uma explicação completa sobre os operadores lógicos. Clique aqui para acessá-lo.


  Funcionais

  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.

  Este curso possui um capítulo especial que aborda as funções.



  Referências:

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


MARMSX/CURSOS/Basic