Introdução ao BASIC

Mais sobre expressões

No capítulo anterior, vimos expressões muito simples, com um ou dois operandos apenas. Agora vamos solicitar que o computador resolva expressões um pouco mais complexas. Por exemplo:
PRINT 20-2*3^2+4/2*3
resulta em
8
porque existe prioridade de uma operação em relação a outra. Isto é, primeiro é processada a exponenciação. Em seguida, a multiplicação e a divisão, pela ordem. E por último a adição e a subtração, também pela ordem.
Mas, essa ordem pode ser alterada com o uso de parênteses, que podem ser considerados operadores de prioridade máxima. Exemplo:
PRINT 20-(2*3)^((2+4)/(2*3))
resulta em
14
Mas não se esqueça que deve haver um número par de parênteses. Ou melhor, para cada parênteses de abertura, (, deve haver outro de fechamento, ). Se não, será exibida uma mensagem de erro de sintaxe.

Outros operadores e operações

tipo operador operação exemplo
aritmético \ divisão inteira 1 \ 2
aritmético MOD módulo, resto da divisão 1 MOD 2
aritmético ^ ou ou ** exponenciação 1 ^ 2

O operador da exponenciação no MSX e nas diversas versões do BASIC é o ^ (circunflexo).
Destas operações, o CP400 e o TK85 têm apenas a exponenciação, e seus operadores são representados de forma diferente, respectivamente (seta para cima) e ** (asterisco duplo). No TK85, ** na verdade não se trata de asterisco digitado duas vezes (o que causa erro), mas de uma tecla especial (Shift H).
A operação de divisão inteira (\) realiza a divisão seguida de um truncamento, desprezando eventuais casas decimais. Por exemplo:
PRINT 3/2
resulta em 1.5, mas
PRINT 3\2
resulta em 1.
Por outro lado, a operação de módulo (MOD) realiza a divisão e apresenta apenas a sobra. Por exemplo:
PRINT 3 MOD 2
resulta em 1.
Aliás, quando o dividendo (neste caso, 3) for ímpar, o módulo será 1 (um). E quando o dividendo for par, o módulo será 0 (zero). Mais à frente utilizaremos esta operação justamente para determinar se um número é par ou ímpar.

Tipos de operandos

tipo subtipo nome faixa ou intervalo de valores
numérico inteiro Integer de -32.768 a +32.767
numérico inteiro (longo) Long de -2.147.483.648 a +2.147.483.647
numérico real de precisão simples Single de -3,402823E38 a -1,401298E-45 e
de +1,401298E-45 a +3,402823E38
numérico real de precisão dupla Double de -1,79769313486231570D308 a -4,94065645841247D-324 e
de +4,94065645841247D-324 a  +1,79769313486231570D308
de cadeia, literal, string, texto   String de 0 a 65.536 caracteres em strings de tamanho fixo

Os caracteres (letras) E e D, entre algarismos, são usados na notação científica e significam "vezes dez elevado a (potência de)". Exemplo:
PRINT 3.40E3
resulta em
3400
enquanto que
PRINT 3.40E-2
resulta em
.034
que é o mesmo que 0.034
Observe que usa-se ponto em vez de vírgula para introduzir-se casas decimais.
No TK85 e no CP400, temos apenas os tipos numérico (inteiro, e real de precisão simples) e de cadeia.
No MSX, temos também o tipo numérico real de precisão dupla.

Nosso segundo programa

Antes de escrever nosso programa, vamos aprender algo sobre o método PRINT.
Após PRINT podemos colocar uma vírgula, um ponto-e-vírgula ou simplesmente um ou mais espaços em branco. Vamos ver o que ocorre.
PRINT,"B"
faz com que o próximo caracter (B) seja impresso no meio da linha.
PRINT;"B"
faz com que o próximo caracter (B) seja impresso imediatamente (após o último, anterior).
PRINT   "B"
faz com que o próximo caracter (B) seja impresso imediatamente (após o último, anterior), ou seja, o computador ignora completamente os espaços em branco.
Agora, vamos escrever nosso programinha:

10 PRINT "20-2*3^2+4/2*3 é igual a ";
20 PRINT 20-2*3^2+4/2*3
30 PRINT "O resultado " + "muda completamente " + "se você usar " + "parênteses!"
40 PRINT "20-(2*3)^((2+4)/(2*3)) é igual a ";
50 PRINT 20-(2*3)^((2+4)/(2*3))


Não esqueça de salvar seu programa assim:
SAVE "PROGRAM2"
E até a próxima lição!

<-- Anterior--------------------------------------------------------------------------------------------- Próximo -->
Hosted by www.Geocities.ws

1