Ir para o conteúdo

Tutorial de TI-Basic (Z80)

Este post tem por objectivo dar a conhecer a linguagem TI-Basic como uma linguagem altamente útil para alunos do ensino secundário e universitário, pois permite-nos criar programas para calculadoras da Texas Instruments de uma forma simples e intuitiva. Ou seja, podemos criar os nossos formulários e “cábulas”, organizados por menus e com um texto coeso. Estes programas são autorizados no Ensino Secundário. Quanto a Universidade e Faculdades, depende de cada uma. Espero que apreciem este meu post, após o meu artigo sobre Pascal.

1. Breve história, nível da linguagem, programas necessários e noções gerais e introdutórias

A linguagem TI-Basic surgiu com a série de calculadoras TI-72, e perdura até hoje, com as suas evoluções na linguagem, dependendo da série a que se destina. Este post vem abordar a linguagem utilizada pela calculadoras Texas Instruments com um processador Z80, principalmente as TI83 Plus, TI 83 Plus Silver Edition, TI 84, TI 84 Plus e TI 84 Plus Silver Edition. Pessoalmente, trabalho com uma TI 84+SE, e aprendi a programar em TI-Basic totalmente sozinho. Já escrevi um manual para principiantes, com umas 70 páginas, mas aqui apenas vou dar um “cheirinho” desta linguagem. Quem quer que já tenha trabalhado com MATLAB verá que esta linguagem tem algumas semelhanças com essa linguagem, pois ambas se dirigem à área do cálculo matemático, científico e gráfico. Após se ter visto que era muito complicado programar estas calculadoras recorrendo à sua linguagem nativa, o Assembly, e cujo compilador da TI exigia conhecimentos na área dos hexadecimais e do código binário puro, a TI criou esta linguagem de programação. Um programa em TI-Basic não é compilado. Os programas estão dentro da calculadora escritos em código TI-Basic, e a calculadora limita-se a interpretar os comandos: o TI-Basic é uma linguagem de interpretação, não de compilação. Os seus comandos baseiam-se em mnemónicas da língua inglesa. Por exemplo, Disp vem de DISPlay. O TI-Basic levanta controvérsia quanto ao seu nível, mas atendendo à sua grande proximidade ao inglês, pode-se considerar de alto nível. Para programar em TI-Basic necessita-se do TI Graph Link, cujo download pode ser feito no site da TI gratuitamente. Contudo, os programas podem ser escritos directamente na calculadora. TI-GRAPH LINK for TI 83 Plus (Inglês): http://education.ti.com/downloads/files/computer_software/ti83pusa.exe

Antes de se começar a programar nesta linguagem, é necessário ter em mente que:

  • Dirige-se a calculadoras, não a computadores
  • É uma linguagem lenta, mas com funções que quase mais nenhuma linguagem tem
  • Existem várias versões em termos de língua: se desenvolverem um programa no TI-GRAPH LINK em Português, os códigos terão de ser da versão portuguesa. Aqui só são referidos os códigos em inglês. A linguagem TI-Basic possui esta vantagem: programar na língua que queiramos.

Mais, as calculadoras gráficas TI têm dois ecrãs: o ecrã Home e o ecrã Graph. O ecrã Home é onde são realizados os cálculos e a maioria dos comandos. O ecrã Graph é onde são desenhados os gráficos de funções, sequências e outros, e onde se fazem cálculos específicos com estes. Por isso, há ainda a ter em conta que:

  • Existem comandos cuja função é a mesma, mas uns são para o ecrã Home e outros para o Graph

2. Variáveis

Nesta linguagem as variáveis não são declaradas. Elas já existem por predefinição na calculadora, e mais não podem ser criadas. Estas são as letras do alfabeto, em maiúscula, e a letra grega teta, que são variáveis numéricas reais, 6 listas predefinidas e outras 14 que podem ser criadas, 10 matrizes, 10 imagens, 10 Strings e 10 GDB (Graphic DataBase). Além destas, existem 10 funções, sucessões e funções polares. As listas suportam centenas de números, até a memória da calculadora encher. As matrizes são uma espécie de tabelas de 2 dimensões. Já as imagens são print screens que se podem fazer do ecrã Graph. Já as GDB são variáveis muito especiais e extremamente úteis em programas que trabalham com mais de 10 funções, mas que não abordaremos aqui. As String são variáveis de texto. A identificação das variáveis numéricas já foi feita, mas seguem-se a das restantes: (Nota: X significa um número inteiro entre 0 e 9, Z uma letra maiúscula entre A e J e W um número inteiro de 1 a 6)

  • String – StrX
  • Imagem – PicX
  • Função – YX
  • GDB – GDBX
  • Matriz – [Z]
  • Lista – Predefinidas: LW; Personalizadas: L<nome>

3. Operações e operadores

Eis as principais operações matemáticas e lógicas, e os respectivos operadores em TI-Basic:

  • Soma – A+B
  • Subtracção – A-B
  • Multiplicação – A*B
  • Divisão – A/B
  • não – not
  • e – and
  • ou – or
  • ou… ou… – xor
  • igual – =
  • diferente – ≠
  • maior do que – >
  • menor do que – <
  • maior ou igual do que – ≥
  • menor ou igual do que – ≤

Alguns destes operadores são lógicos, e outros são matemáticos. Todos serão abordados a pouco e pouco ao longo deste tutorial.

4. Escrita de textos e leitura de dados

A calculadora pode mostrar textos, resultados de cálculos e pedir valores para variáveis. Há que ter em atenção que a calculadora tem capacidades que outras linguagens para computador não oferecem devido ao facto de ter duplo ambiente de trabalho e ser uma calculadora com funções muito específicas. Todavia, atenção! Enquanto que, por exemplo, Pascal admite que escrevamos os comandos com minúsculas e maiúsculas, TI-Basic não o admite. Se os comandos não forem escritos com as maiúsculas e as minúsculas de forma correcta, a calculadora não irá reconhecer os comandos, e considera-o um simples conjunto de letras. Uma das características desta linguagem é que este conjunto de letras é visto como uma multiplicação de várias variáveis numéricas (se forem todas letras maiúsculas e não estiverem entre aspas). O ecrã Home tem 8 linhas e 16 colunas. Ora, para mostrar um texto no ecrã Home:

Disp "EXEMPLO"

Este código faz automaticamente parágrafos.

Disp "EXEMPLO"
Disp "LINHA2"

Este último código é o mesmo que:

Disp "EXEMPLO","LINHA2"

Contudo, é possível escrever um texto a partir de uma localização específica, segundo coordenadas, no ecrã Home:

Output(2,6,"EXEMPLO

Aqui, o texto é escrito na segunda linha, partindo da sexta coluna. Como se pode ver neste código, não fechei as aspas nem os parêntesis, mas isso é admitido em TI-Basic, e faz parte da optimização, ou seja, o processo que permite rentabilizar um programa, reduzindo a quantidade de código escrito, permitindo que o programa faça exactamente o mesmo. Há programas que, se foram programados pelas “regras comuns”, têm, por exemplo, 6000 Bytes, mas, quando optimizados, chegam a ter só 2500 Bytes. Contudo, o comando Output, por um defeito desconhecido ou da linguagem ou do interpretador interno da calculadora, o facto de serem fechadas as aspas e o parêntesis dá erro de sintaxe sem razão aparente. Continuando, no ecrã Graph um texto só pode ser escrito partindo de um par ordenado de coordenadas, do tipo (linha / coluna). Assim, o código é, por exemplo:

Text(5,23,"EXEMPLO")

Já para introduzir dados, existem dois métodos. Um dos métodos é o que ocupa menos espaço: pergunta simplesmente pelo nome da variável. O outro método dá uma mensagem em forma de texto, personalizada pelo programador, e deixa o cursor à frente para introduzir o dado pedido. Por ordem, o primeiro e o segundo métodos:

Prompt A,B,C
Input "VALOR A: ",A
Input "VALOR B: ",B
Input "VALOR C: ",C

Para introduzir um resultado dentro de uma variável, seguem-se alguns exemplos:

3.14→P
"TEXTO"→Str5

Já para gravar a presente imagem do ecrã Graph:

StorePic 5
:"Se quisermos gravar na Pic5"

5. Condições e ciclos

A calculadora pode, claro está, realizar condições e ciclos. As existentes são as do tipo:

  • If… Then… Else…
  • Repeat…
  • While…
  • For…

Nesta linguagem é mais fácil compreender o funcionamento de cada um destes ciclos e condições através de exemplos. Vamos seguir pela ordem da lista, com explicação individual.

If A<0
Then
Disp "NUMERO NEGATIVO"
Else
Disp "NUMERO POSITIVO OU NULO"
End
  • Se a variável A, numérica, for inferior a 0 (zero) então mostrar, no ecrã Home, o texto “NUMERO NEGATIVO”, se não mostra o texto “NUMERO POSITIVO OU NULO”.
Repeat A>20 and A<30
A+7→A
End
  • Somar 7 à variável A e gravar nesta mesma o resultado, até que esta valha um valor entre 20 e 30.

Já o mesmo código, mas utilizando o ciclo While…

While not (A>20 and A<30)
A+7→A
End
For(A,0,70,7)
Disp "AGORA VALE:",A
End
  • Partindo de A=0, até que A≥70, incrementar a esta variável o valor 7 após repetir os mesmos comandos, neste caso mostrar o texto “AGORA VALE” seguido do valor que a variável A tem.

6. Arredondamentos e valor absoluto

Em TI-Basic o arredondamento efectua-se com um comando onde se define o número ou a variável a arredondar e com quantas casas decimais se quer arredondar, num mínimo de 0 (zero) (arredondamento às unidades):

round(A,3)
  • Arredondar a variável numérica A com 3 casas decimais (arredondar às milésimas).

Já o valor absoluto é dado por:

abs(A)

7. Exemplo de programa que resolve a fórmula resolvente

Disp "AX^2+BX+C=0"
0→A    "Para o caso de A não valer zero, o que implicaria que o ciclo While não seria cumprido"
While A=0
Prompt A
If A=0
Then
Disp "ERRO: A≠0"
End
End
Prompt B,C
(B^2-4AC)→D
(-B+√(D))/(2A)→X
Disp "X1=",X
(-B-√(D))/(2A)→X
Disp "X2=",X
Pause    "Faz pausa no programa. Este só avança se premirmos ENTER"
Stop    "Ordem para parar o programa, mostrando a messagem «Done»"

8. Menus e etiquetas

Em TI-Basic é possível subdividir, como em qualquer linguagem, o programa em partes. Para tal utilizam-se as etiquetas (Labels). Vejamos um exemplo:

Disp "ESCREVA NUM INT"
Lbl 1
Input "VALOR: ",A
If A<0
Then
Goto 1
End

Aqui foi criada a etiqueta 1. No caso do valor introduzido não for positivo, como requerido no início, então o programa dirige-se novamente para a etiqueta 1 (Goto – Go to: Ir para). As etiquetas só admitem um ou dois caracteres: letras maiúsculas, a letra grega teta e números. Mais do que dois caracteres ou letras minúsculas serão considerados erros de sintaxe por parte da calculadora. Ora, isto permite criar menus. Os menus fazem-se com um código muito simples, e só admitem 7 itens de opção. Inclui um título no início.

Menu(" MENU PRINCIPAL ","FORM. RESOLV.",FR,"SAIR",S)

O utilizador escolhe a opção que quiser utilizando as setas. A calculadora numera automaticamente as opções, partindo de 1. Neste caso existem duas opções, e o título do menu é « MENU PRINCIPAL ».