0% acharam este documento útil (0 voto)
19 visualizações44 páginas

Programação em G-Basic para Magic Computer

Enviado por

benesom
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
19 visualizações44 páginas

Programação em G-Basic para Magic Computer

Enviado por

benesom
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

GRAMAÇAO

EM BASIC
ÍNDICE
• • • •

Estrutura Básica de um Computador 2

Princípios Básicos para o Programa G-Basic 2

Entrada e Saída de Dados 8

Deselvolvendo Desvios no programa 11

Desenvolvendo Loops no Programa 14

Manipulação de Funções e Caracteres 16

Subrotinas 20

Matriz 21

Comandos e Funções Especiais 21

Gráfico de Fundo 32

F-Basic 35

Apêndice 37

Exemplos 41
PROGRAMAÇÃO
EM BASIC
• • • •

ESTRUTURA BÁSICA DE UM COMPUTADOR


•••••••••
Um computador consiste em dispositivos de entrada (ex. teclado),
dispositivos de saída (ex. Monitor) e uma Unidade Central de
Processamento (CPU), que por sua vez é constituída por uma
unidade de controle e uma unidade operacional. Sem qualquer
desses itens não pode ser considerado um computador.
Os dispositivos de entrada e de saída trocam mensagens entre
eles e a CPU.
• Unidade de Controle: controla o sistema através de regras de pro­
cedimentos editadas por um programa. O programa é armazena­
do na unidade de memória. O controlador irá analisar em
sequência o conteúdo da memória e executar os comandos nela
contidos.
• Unidade Operacional: Realiza cálculos matemáticos e lógicos que
podem ser executados (adição, subtração etc.) por instruções
analisadas pela unidade de controle. O controlador lê os dados
da memória e armazena o resultado do cálculo.
O Magic Computer é um computador de quarta geração com o
qual você pode criar programas, praticar digitação, compor músi­
cas e muito mais.

PRINCÍPIOS BÁSICOS PARA O PROGRAMA G-BASIC


•••••••••

A LINGUAGEM G-BASIC
A linguagem G-BASIC (GRAPHIC BASIC) se diferencia do BASIC
normal pelo seu uso para animações e pelo modo "BG
GRAPHIC" (Gráfico de Fundo).
• E mais simples. Usa apenas palavras em inglês e os símbolos
matemáticos.
• Permite que se execute um programa apenas utilizando o teclado,
sem nenhum outro programa especial.
• Inclui todas as funções de cálculos e gerenciamento de dados do
BASIC.

2
• Pode apresentar figuras com 52 cores e animações.

• E mais poderoso em processamento de som e pode ser usado


para tocar músicas com variedades de timbre e ritmo.

A ESTRUTURA DE UM PROGRAMA EM BASIC


10 READ A • Há várias linhas em um programa
20 N=0 BASIC. Cada comando em uma
30 READB mesma linha deverá ser separado
40 IF B<=A THEN 60 por dois pontos (:).
50 A=B
• Os números das linhas devem ser
60 N=N+1
crescentes, e é melhor colocar
70 IF N<9 THEN 30
números de dez em dez números
80 PRINT "MAX=";A
(10, 20 etc.) para não ter que
90 DATA 22,30,56,43,52,28,65,19,77,59
mudar todas as outras linhas
100 END
quando for necessária uma cor­
reção. Os números das linhas podem variar de 0 a 65534.

• Um comando é uma instrução e seus parâmetros. O comando


PRINT, por exemplo, é uma instrução e o que vem depois dele são
parâmetros. Alguns comandos não aceitam ou não necessitam de
parâmetros, como por exemplo o comando END.
• Todo programa deve ser finalizado com o comando END.

• Ao mesmo tempo que o programador digita os comandos, eles


vão sendo salvos na memória do computador. Para executá-lo, o
programador usa o comando RUN, que finalizará sua execução
ao chegar no comando END.

• Cada linha de programa pode ter 252 caracteres, mas o limite da


tela é de 28 caracteres. Mesmo que exceda o limite de 28 carac­
teres, o resto da linha será transferido para a linha seguinte, mas
será considerado ainda a mesma linha de comando. Quando
uma linha de comando for muito grande, tente dividí-la em duas
ou mais linhas.
• Para apagar o programa da memória e começar um novo, use o
comando NEW.

CONSTANTES E VARIÁVEIS
CONSTANTES
Os dados não podem ser mudados enquanto o programa utiliza
uma constante. Existem dois tipos de constantes:

• Integral: a constante integral varia de -32768 até +32767 no G-


BASIC. Não se pode exceder estes limites!
• String: caracteres postos entre aspas " " são chamados de string
constante. Uma string constante pode ter no máximo 31 carac-

3
teres. Se necessários, é permitido o uso de aspas únicas ' ‘. Uma
string constante sem nenhum caractere entre aspas é considerada
uma string nula.
VARIÁVEIS

Os dados podem mudar quando um programa utiliza uma va­


riável.
O nome de uma variável tem que obedecer essas três regras:
• O primeiro caractere do nome da variável tem que ser uma letra
maiúscula do alfabeto Inglês ou um dígito de 0 a 9. Outros sím­
bolos são proibidos.
• Você pode utilizar 247 caracteres para dar nome à uma variável,
mas o computador apenas aceita os dois primeiros caracteres.
• Comandos não podem ser nomes ou partes dos nomes das
variáveis.
Há dois tipos de variáveis:
• Integral: a variável integral só pode ser associada à constante inte­
gral correta.

10 A=1996 • String: strings variáveis só podem


20 B$=" Feliz Ano Novo" ser associadas à string correta. O
30 PRINT A;B$ símbolo de fim ($) é necessário após
40 END o nome de uma string variável,
50 A=B definindo que esta é uma string
RUN ♦ ( significa pressionar ENTER) variável. Além dessas, seguem as
1996 Feliz Ano Novo mesmas regras de uma string
constante.
OPERAÇÕES E EXPRESSÕES
OPERAÇÕES ARITMÉTICAS E EXPRESSÕES

Símbolo Significado Exemplo Expressão


+ adição A+B A+B
- subtração A-B A-B

multiplicação A*B A*B ou AxB
/ divisão A/B quociente de A+B (BX))
MOD resto A mod B resto da divisão A+B

10 A=10/3 • / é o resultado inteiro da divisão e MOD é o resto da


20 B=10MOD3 divisão. Se utilizarmos 10/3 obteremos o resultado 3, mas
30 PRINT A,B se utilizarmos 10 MOD 3, obteremos 1.
RUN ♦ • A prioridade na operação:
3 1 1. O parênteses é a prioridade máxima, e seu conteúdo
será resolvido antes de qualquer outra coisa. Pode-se colo-

4
car outro parênteses dentro de um parênteses, forçando priori­
dade na solução da operação que estiver no parênteses interno.
2» * , / O símbolo à esquerda é sempre o primeiro em
3. MOD prioridade se houverem dois símbolos de mesma
4* + / ‘ prioridade.
• Expressão aritmética:
Apenas um inteiro ou a junção de dois inteiros e um símbolo
matemático formam uma expressão aritmética.
Ex.: 87 - 51 x 65 fica assim: (87-51 *65)/( 18+48/3)
18 + 48 + 3
SÍMBOLOS E EXPRESSÕES RELACIONAIS

Símbolo Significado Aritmético Explicação


= Igualdade = Os dois lados são iguais
>= Maior ou igual a >= Lado esquerdo é maior ou igual ao lado direito
> Maior que > Lado esquerdo é maior
< Menor que < Lado esquerdo é menor
<= Menor ou igual a <= Lado esquerdo é menor ou igual ao lado direito
<> Desigualdade Os dois lados não são iguais

* Servem para juntar dois tipos de dados de mesmo tipo relacio­


nando-os. A expressão relacionai tem um valor lógico que é falso
ou verdadeiro.
Podem ser usados em expressões aritméticas: Considere X=3,
Y=7 e a expressão aritmética (X>0)+(Y<7). X>0 é verdadeiro,
portanto o valor é -1. Mas Y<7 é falso, portanto o valor 0.
Assim, o valor da expressão aritmética é -1.
SÍMBOLOS E EXPRESSÕES LÓGICAS
NOT (NOT expressão) - lógica inversora
AND (AND expressão) - lógica E
OR (OR expressão) - lógica OU
XOR (XOR expressão) - lógica OU exclusiva
Juntar duas expressões com valores lógicos (expressões rela­
cionais) forma uma expressão lógica. O valor da expressão lógi­
ca também é um valor lógico. Se "1" é verdadeiro e "0" é falso,
segue a regra para o valor lógico de A, B.

A B NOTA AANDB AORB AXORB


0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0

5
• A prioridade em uma operação lógica é:
[Link] 2. AND 3. OR 4. XOR
• Uma operação lógica pode ser usada com o comando IF.

IF X>0 AND X<10 THEN 100 SIGNIFICA QUE "SE X TIVER VALOR TAL QUE
0<X<10, ENTÀO IR PARA A UNHA 100 PARA EXECUTAR O PROGRAMA EM
OUTRO NÚMERO."

SÍMBOLOS e expressões de string


Há apenas um símbolo para ser usado com strings: "+" (chama­
do de conectivo), e tem a função de unir duas strings.
A união de uma string constante, a variável e a função da string,
junto com o "operador" de strings forma uma expressão de
string.
Ex. O valor de "ABCD"+ "123" é "ABCD123"
A PRIORIDADE DOS SÍMBOLOS OPERACIONAIS

A prioridade dos símbolos operacionais segue assim:


l.o 2. Função
3. +, -, NOT 4. *, / (multiplicação, divisão)
5. MOD (resto) 6. +, - (adição, subtração)
7. =, o, >, <, >=, <= 8. AND
9. OR 10. XOR

INSTRUÇÕES PARA TREINO


ENTRANDO NO SISTEMA G-BASIC
Ligue o seu Magic Computer. Selecione a função G-BASIC no
menu. Selecione o modo BASIC.

AO ENTRAR NO G-BASIC
• Digite o comando NEW, para apagar qualquer programa que
esteja na memória do computador.
• Pressione ENTER antes de digitar qualquer linha de programa,
assim o BASIC irá iniciar as linhas de programa.
Não use as flechas para ir à linha de baixo, porque se o sistema
não receber o sinal da tecla ENTER, não executará a primeira
linha. Não se esqueça de usar letras maiusculas para comandos e
variáveis.
• Se você digitou algum caractere errado (antes de teclar ENTER),
use a flecha para a esquerda 4" para mover o cursor para antes
deste caractere. Apenas digite o caractere certo, e pressione a
flecha para a direita + para retornar o cursor retornar à sua
posição anterior.

6
LISTAGEM DO PROGRAMA
Após inserir cada linha, use o comando LIST para ver cada linha
já digitada do programa.

• LIST [n° da linha]: mostra a linha desejada


• LIST [l9 n9 da linha]-[29 n9 da linha]: mostra as linhas de progra­
ma desde o l9 n9 da linha até o 29 n9 da linha
• LIST [n9 da linha]- : mostra desde a linha desejada até o fim do
programa
• LIST -[n9 da linha]: mostra desde o início do programa até a
linha desejada
• LIST: lista todas as linhas do programa

MODIFICANDO O PROGRAMA
Se houve erros no programa, proceda da seguinte maneira:
• Liste o programa na tela com o comando LIST. Se for muito longo,
selecione apenas a parte onde há erro.
• Utilize as flechas >, I , ♦ e* para mover o cursor à posição
onde se encontra o erro.
• Após posicionar o cursor abaixo do caractere errado, apenas di­
gite o caractere certo.
• Se for necessário deletar alguns caracteres, posicione o cursor
abaixo do próximo caractere logo após esses, e então use a tecla
de voltar <^<— > (não use as flechas!) e apague-os.

• Mova o cursor a posição seguinte a posição do caractere que pre­


cisa ser inserido, pressione <INSERT> e digite o caractere
• Certifique-se em pressionar <ENTER> no fim da linha de progra­
ma. Senão, a modificação não terá efeito.
• Se uma linha precisa ser deletada, apenas digite o número da
linha e depois <ENTER>. Se for necessário substituir essa linha
com um comando novo, digite o número da linha e depois a nova
linha de comando.

EXECUTANDO
Após digitar completamente o programa e checar se não há ne­
nhum erro, digite o comando RUN ou pressione F8. Se houver um
erro, o programa irá parar e irá aparecer na tela o número da
linha onde há erro. E só consertar o erro e digitar RUN nova­
mente.
SAINDO
Para sair do sistema, apenas digite o comando SYSTEM.

7
ENTRADA E SAIDA DE DADOS
»••••••••
EXPRESSÕES PARA ENTRADA E SAÍDA DE DADOS
PRINT
10 A=11 Objetivo: Apresentar na tela o resultado de uma expressão
20 PRINT A matemática ou qualquer expressão contida entre aspas.
30 PRINT 2*A+7 Sintaxe: [linha n°] PRINT (expressão)(,)(;)
40 END
RUN ♦
11 PRINT 2+3
APRESENTA O DÍGITO 5 AO INVÉS DE 2+3
29

PRINT "GOOD MORNING"


APRESENTA GOOD MORNING AO INVÉS DE "GOOD MORNING"

(,) Vírgula »quando colocada entre expressões, representa um espaçamento


de 7 caracteres
•quando colocada no fim da última expressão, significa que a
próxima expressão de comando PRINT deverá aparecer 7
espaços a direita, respeitando o limite da tela.

10 PRINT 0,9,-78,+13
20 PRINT 4,3,2,1
RUN JL
□o □□□□□□9 □□□□□ - 78 □□□□□13
□4 □□□□□□s □□□□□□^□□□□□qi

Is 8e 152 229
( □ SIGNIFICA ESPAÇO EM BRANCO)

•quando colocada entre expressões, indica


io a=io que a expressão deverá ser apresentada
20 PRINT "A=",A V,rgula
em seguida (sem espaços em branco),
30 PRINT l;2;-3 todavia o computador se encarrega de
40 END colocar um espaço na frente de números
RUN f positivos
A=10 •quando colocado no fim da última
□1 02-3 expressão , significa que a próxima
expressão de comando PRINT deverá
aparecer em seguida, respeitando apenas
o limite de tela.
• O comando poderá ser substituído pelo símbolo
• Quando a expressão do comando PRINT termina sem vírgula (,) ou
ponto-e-vírgula (;), a próxima expressão será apresentada na
próxima linha da tela.

8
ASSOCIAÇÃO (ASSIGN STATEMENT)
Objetivo: Associar a expressão do lado direito do "=" à variável
do lado esquerdo do "="

Sintaxe: [linha n2] variável = expressão


• é o sinal de associação (não é a mesma coisa que o
10 A=4
sinal matemático "igual")
20 A=A+1
30 PRINT A Por exemplo, o comando "20 A=A+1" não significa que A
40 END é na verdade A+l, mas sim para redefinir A como seu valor
RUN 4 atual + 1
5
• As variáveis devem ser as mesmas nos dois lados do "="
• Sem uma especificação após o o variável se tornará 0 (zero)
ou nula (string)
• Só se pode usar um "=" em uma linha.

INPUT

10 INPUT A,B,C Objetivo: Obter dados pelo


20 PRINT A,B,C teclado para cada seqüência
30 END variável após o comando
INPUT.
1) RUN 4
? 10 4 (? APARECE AUTOMATICAMENTE Sintaxe: [linha n2] INPUT
? 34 4 NA TELA QUANDO O SISTEMA ["pergunta" , I ;] variável
? 89 4 EXECUTA A FUNÇÃO INPUT) [{,variável}]
10 34 89
• Quando usado "pergunta",
2) RUN 4 irá ser colocado um "?" após o
? 10,34 4 texto. Se não for usado,
? 89 4 aparecerá apenas um "?".
10 34 89
• No comando INPUT só podem
3) RUN 4 ser usados variáveis cons­
? 10,34,89 4 tantes. Nomes, funções e ope­
10 34 89
rações não são permitidos.

10 INPUT A
20 PRINT A
30 END
RUN 4
? 10 (OS DADOS SUBLINHADOS IRÃO APARECER
AUTOMATICAMENTE, 10 É UM DADO INSERIDO PELO USUÁRIO)
10
REESCREVA A UNHA 20 COM 20 INPUT "A=",A E EXECUTE-O NOVAMENTE
A=10
10

9
REESCREVA A LINHA 20 COM 20 INPUT "A=";A E EXECUTE-O NOVAMENTE
A=?10
10
• A resposta ao comando INPUT deve ser do mesmo tipo da per­
gunta. (Ex.: "Quantos anos você tem?" Não pode ser respondido
com "João").
READ e DATA
Objetivo: Cada variável vai obter dados com o coman­
10 READ X,Y,Z do DATA quando estiver sido executado o comando
20 DATA 10,20,30 READ.
30 PRINT X,Y,Z,X+Y+Z
Sintaxe: [linha n2] READ variável [{,variável}]
40 END
RUN i [linha n2] DATA constante [{,constante}]
10 20 30 60
• READ deve ser sempre usado antes de DATA. E um
10 READ X,Y,Z comando preparatório para a entrada de dados. As
20 DATA 10 constantes são separadas por vírgula.
30 DATA 20,30 • READ e DATA são comandos que dependem um do
40 PRINT X,Y,Z,X+Y+Z outro para funcionar.
50 END
RUN ♦ • O tipo de dados para DATA tem que ser o mesmo que
para READ, e devem conter a mesma quantidade de
10 20 30 60
variáveis.
RESTORE
Objetivo: As vezes é necessário utilizar uma variável
10 READA,B,C,D
definida pelos comandos READ e DATA. Para não ter
20 DATA 10,20
que reescrever o comando, gastando espaço, existe o
30 DATA 30,40
comando RESTORE, que permite a obter novamente a
40 RESTORE
variável.
50 READ E,F
60 PRINT A,B,C,D,E,F Sintaxe: [n2 da linha] RESTORE [n2 da linha onde está
70 END o DATA desejado]
RUN +
Se não for especificado o n2 da linha onde se encontra
10 20 30 40
o DATA, o RESTORE irá recuperar todo conteúdo do
10 20
DATA.

COMPARAÇÃO ENTRE OS MÉTODOS DE FAZER


UMA VARIAVEL OBTER DADOS
• Associação: é o único meio de fazer uma variável obter dados de
uma expressão, portanto é o melhor meio de associar um valor
intermediário à uma variável, mas só pode fazer uma variável por
vez obter dados. A necessidade de que mais variáveis que obte­
nham dados, afetará a velocidade de operação. Se os dados ori­
ginais necessitarem de modificações, o programa terá que ser

10
alterado. É pior que os outros métodos.

• READ/DATA: O comando READ pode fazer com que várias va­


riáveis obtenham dados em um único comando e que as mesmas
possam ser re-associadas várias vezes, mas o programa também
precisa ser modificado se os dados originais se modificarem.
10 INPUT A • INPUT: Pode fazer com que várias variáveis obtenham
20 N=0 dados em um único comando, como o READ. Permite
30 INPUT B que cada variável obtenha um novo dado em cada
40 IF B<=1 THEN 60 execução do programa, mesmo que os dados originais
50 A=B tenham sido modificados. Mas o programa inteiro irá
60 N=N+1 ser executado errado se for inserido um dado errado.
70 IF N<9 THEN 30 Neste caso, seria necessário uma re-execução do pro­
80 PRINT "MAX=";A grama para inserir o dado correto.
90 END

10 A=10 SWAP
20 B=20
30 PRINT A,B Objetivo: Trocar o valor da l9 va­
40 SWAP A,B ; IGUALA 40 C=A riável com o da 2Q variável. Os va­
50 PRINT A,B 42 A=B lores têm que ser do mesmo tipo!
60 END 44 B=C
Sintaxe: [n9 da linha] SWAP l9 va­
RUN |
riável 29 variável
10 20
20 10

DESENVOLVENDO DESVIOS NO PROGRAMA


Apesar da execução do programa pelo computador de forma
seqüencial crescente, há a possibilidade de introduzir no BASIC
desvios incondicionais na seqüência da execução, procedimento
mostrado nesse capítulo com o auxílio do uso de fluxogramas.

FLUXOGRAMA DO PROGRAMA
Com símbolos geométricos definimos as funções de um programa,
como por exemplo início, fim etc.. Em um fluxograma podemos
verificar falhas no programa.
Diagrama do bloco de Início/Fim: inicia e finaliza o programa

□ Diagrama do bloco de Função: finaliza uma função

o Diagrama do bloco de Julgamento: transfere para o outro desvio


e condição
Direção do fluxo: a direção da execução do programa

o Ponto de conexão: mais que dois círculos aparecem com o mesmo


caractere em um diagrama de bloco, o que significa que devem
ser conectados um ao outro.

11
COMANDOS DE DESVIO
GOTO
10 s=o
20 READX Objetivo: Transferir o fluxo
30 S=S+X do programa para a linha
40 PRINT "S=";5 desejada e executá-la em
50 GOTO 20 seqüência sem qualquer
60 DATA 10,34,21,32,12 condição
70 END Sintaxe: [n9 da linha]
RUN +
GOTO n9 da linha deseja­
S=10 da
S=44
S=65
S=97
S=109
? OD ERROR IN 20

IF...THEN
Objetivo: Especifica o que o programa deve fazer ao encontrar a
determinada expressão.
Sintaxe: [n9 da linha] IF expressão THEN n9 da linha I comando
[{:comando}]
Obs.: a expressão na sintaxe deve ser uma expressão lógica ou
relacionai.

Não

10 READ A,B
20 DATA 234,235
30 PRINT A; B;
40 INPUT C
50 IF C=A-B THEN PRINT "CERTO!": END
60 PRINT "ERRADO, TENTE NOVAMENTE!"
70 GOTO 40

12
ON
Objetivo: Especificar uma função relativa ao resultado de uma
operação.
Sintaxe: [n° da linha] ON expressão GOTO [Link], linha.R2,
[Link]...
[n° da linha] ON expressão GOSUB [Link], linha.R2,
...[Link]...
(RETURN)
GOSUB, RETURN serão explicados a seguir.
RI , R2, Rn são as linhas respectivas aos valores 1,2, n, onde n é
qualquer outro número.

Ex.:10IFX=l THEN 1000


20 IF X=2 THEN 2000
30 IF X=3 THEN 3000 igual a —► ON X GOTO 1000, 2000, 3000, 4000, 5000

40 IF X=4 THEN 4000


50 IF X=5 THEN 5000

10 INPUT "INSIRA (1-7)";A


20 ON A GOTO 100,200,300,400,500,600,700
30 GOTO 10
100 PRINT "DOMINGO": END
200 PRINT "SEGUNDA": END
300 PRINT "TERÇA": END
400 PRINT "QUARTA": END
500 PRINT "QUINTA": END
600 PRINT "SEXTA": END
700 PRINT " SÁBADO": END

REM

Objetivo: Fazer um comentário ou explicação dentro de um pro-


grama.
Sintaxe: [n° da linha] REM {frase}
O REM serve apenas para o usuário fazer comentários em seu
programa, sem que afete o mesmo. Qualquer coisa escrita após o
comando REM é ignorada pelo programa.

13
STOP, CONT, PAUSE
STOP e CONT
Objetivo: O programa irá parar sua execução ao encontrar o
comando STOP.

Sintaxe: [nQ da linha] STOP


Quando a execução do programa estiver parada, o usuário pode
digitar CONT para continuar sua execução ou pressionar
<BREAK> para finalizar sua execução.

PAUSE
Objetivo: Parar a execução do programa por um certo tempo ou
até o usuário pressionar uma tecla.
Sintaxe: [n5 da linha] PAUSE [constante integral]
A constante integral
10 INPUT A é o tempo que a
20 PAUSE execução deve ficar
30 PRINT A parada. Seu valor
40 END varia de 0 até
RUN ♦ +32767.
?2 Se não for definida
(O PROGRAMA PÁRA APÓS PRESSIONAR UMA TECLA)
uma constante inte­
2 gral, a execução
OU 20 PAUSE 40 (O PROGRAMA FAZ UMA PEQUENA ficará parada até
PAUSA OU ENTÃO PROSSEGUE COM A EXECUÇÃO)
que o usuário pres­
sione uma tecla.

DESENVOLVENDO LOOPS NO PROGRAMA


•••••••••
O CONCEITO DE UM LOOP NO PROGRAMA
10 READ A COMANDO PARA LOOPS
20 FOR N=1 TO 9
Objetivo: Re-executar um bloco de
30 READB
programa várias vezes
40 IF B<=A THEN 60
Sintaxe: [n2 da linha] FOR variável
50 A=B
= x TO y [STEP z]
60 NEXT
70 PRINT "MAX="; A
80 DATA 30,40,19,56,45,43,78,52,65,28 : (linhas de comando)

90 END
[n2 da linha] NEXT

14
A variável é usada como um "contador" integral. "X", "y" e "z"
são expressões numéricas. "STEP z" especifica uma adição ao
contador em cada loop. Se não for especificado STEP, será adi­
cionado 1 a cada loop.

As linhas entre o FOR e o NEXT são os loops, que serão re-execu-


tadas quantas vezes forem necessárias. Todo comando FOR neces­
sita do comando NEXT para finalizá-lo, embora o NEXT exista
sem ser uma variável de loop.
EXEMPLO PRÁTICO

Veja como é possível mostrar na tela todos os números ímpares de


1 até 100 usando um loop:

10FORA=1 TO 100 STEP 2


20 PRINT A
30 NEXT
40 END

LOOP INTERNO
CONCEITO DE LOOP INTERNO
IMPRIMIIR UMA TABELA DE MULTIPLICAÇÃO
10 FOR A=1 TO 9
Um loop interno ocorre
20 FOR B=1 TO 9
quando se constrói um loop
30 PRINT A;"*";B;"=";A*B
dentro de outros loops,
40 NEXT
criando vários níveis.
50 NEXT
60 END No G-BASIC, o máximo de
níveis de um loop interno é
5.
PROBLEMAS COM OS
LOOPS
• Os loops que ficam dentro
e fora de um loop interno
não podem se cruzar.
• Dentro de um loop interno,
não se pode usar o mesmo
nome de variável de loop
de outro loop.
• Se há o comando FOR
Usado com THEN, também
deve existir um NEXT
correspondente.

15
MANIPULAÇÃO DE FUNÇÕES E CARACTERES
• •••••• Exjsfem comanc|os no BASIC que permitem a manipulação de
funções e caracteres. No G-BASIC, esses comandos são:

• Funções numéricas: ABS(X), SGN(X), RND(X)


• Funções de caracteres: ASC(X$), CHR$(X), STR$(X), LEFT$(X$, n),
RIGHT$(X$, n), MID$(X$, m, n), LEN(X$), HEX$(X), VAL(X$),
INKEY$(n)

• Funções especiais: POS(O), STICK(X), STRIG(X), CSRLIN,


SCR$(X,Y,Sw)
FUNÇÕES NUMÉRICAS
VALOR ABSOLUTO
10 A=-10 Objetivo: Mostrar o valor absoluto de X
20 B=ABS (A+2)-7
Sintaxe: ABS(X)
30 PRINT A, ABS (B)
40 END X deve ser uma expressão ou constante numérica, entre
RUN f -32768 até 32767.
-10 1

SINAL
Objetivo: Mostrar o sinal de X
10 PRINT SGN(41), SGN(0), SGN(-41)
Sintaxe: SGN(X)
20 END
RUN ♦ Se: X>0 SGN(X)=1
1 0 -1 X=0 SGN(X)=0
X<0 SGN (X)=-1
ALEATÓRIO
10 S=0
20 FOR 1=1 TO 10 Objetivo: Dá um
30 A=RND(10);B=RND(10) número aleatório
entre 0 e X
40 N=1
50'PRINT A;"+";B;"="; Sintaxe: RND(X)
60 INPUT C
70 IF C=A+B THEN 110
80 PRINT "ERRADO! TENTE NOVAMENTE"
90 N=N+1
100 GOTO 50
110 PRINT "CERTO! MUITO BEM":IF N<3 THEN S=S+10
120 NEXT
130 PRINT "TOTAL=";S
140 END

16
MANIPULAÇAO DE CARACTERES
INPUT DE UNHA

10 LINPUT'STRING»", A$ Objetivo: Obter uma linha inteira de


20 PRINT A$ dados pelo teclado para cada
RUN + sequência variável após o comando
STRING = EU SOU UM ESTUDANTE ♦ LINPUT
STRING = EU SOU UM ESTUDANTE Sintaxe: [nQ da linha] LINPUT
[["mensagem"], I;] variável
COMPARAÇÃO ENTRE STRINGS
Temos como exemplo a comparação entre A$ e B$. O método é
assim:
• Se os códigos GSCII em cada string é o mesmo, as strings são
iguais
• Se os códigos GSCII são diferentes, o número de código menor irá
preceder o número de código maior
• Se o sistema chegar ao fim de uma string durante a comparação,
a string que acabar antes será considerada menor, definindo que
as duas strings são iguais até aquele ponto. Os espaços em bran­
co de uma string também são comparados.
Obs.: Os códigos GSCII para o Magic Computer se localizam no
Apêndice.
10 READA$, B$
20 IF A$="Q" THEN 70
30 IF A$=B$ THEN PRINT 1GOTO 10
40 IF A$>B$ THEN PRINT 2,; GOTO 10
50 IF A$<B$ THEN PRINT 3,; GOTO 10
60 DATA LAGLE, LANZGE, YOUR, YOU, "123"," 123", IF, IF, Q, Q
70 END
RUN ♦
3 2 11
FUNÇÕES DE CARACTERE
ASC ("A")=65
10 INPUT A$ Obs.: Nesta parte os nomes dos itens
20 A=ASC (A$) são também as sintaxes para os mes­
30 PRINT A$;"...... ";A mos
40 GOTO 10 • 1)ASC(X$)
RUN ♦
Objetivo: Retornar um valor
?A numérico relativo ao código GSCII
A...... 65 do primeiro caractere da string
?D X$, onde X$ é uma string
D...... 68 constante com apenas caracteres
? (APERTE BREAK PARA INTERROMPER)

17
• 2)CHR$(X)
Objetivo: Converter um código GSCII para seu caractere
[Link] comando é o oposto do comando anterior
(ASC(X$)), e o
10 A=& H1F
X varia de 0 a
20 INPUT B
30 PRINT A, B
255, ou &H0 a
&HFF relativa­
40 C$=CHR$ (66)
mente. Todos
50 PRINT CHR$ (B), C$
os números
60 END
RUN ♦ hexadecimais
? & 41 (ASSOCIA NÚMEROS HEXADECIMAIS A B) começam com
31 65 (IMPRIME VALOR COM NOTAÇÃO DECIMAL) o símbolo
"&H".
A B '

• 3)HEX$(X)
Objetivo: Retorna a string que representa o valor hexadecimal
de X HEX$ converte
10 FOR 1=0 TO 20
valores decimais de
20 PRINT I; "=&H"; HEX$(I)
-32768 até 32767.
30 NEXT
Se X é negativo, se
40 END
usa forma de comple­
ESTE PROGRAMA CONVERTE NÚMEROS DECIMAIS
mento binário.
DE 0 A 20 EM NÚMEROS HEXADECIMAIS

• 4) VAL(X$)
Objetivo: Retorna o valor numérico da string X$
a) Se X$ não é uma string numérica decimal ou hexadecimal,
o valor retornado será zero.
b) Strings com números hexadeci mais podem ser convertidas
para números decimais, com a adição de &H. Uma string
com números decimais pode ser transferida para o mesmo
número de números decimais.
c) Uma string numérica decimal tem
10 INPUT A$ valor de -32768 a 32767. Uma
20 V=VAL(A$) string numérica hexadecimal
30 PRINT A$="=";V varia de &H0 a &HFFFF. De &H0
40 GOTO 10 a &H7FFF são números positivos,
RUN + &H8000 a &HFFFF são
? & H7FFF negativos (complementos).
& H7FFF=32767
?10
10=10
? AB
AB=0
? (AOERTE BREAK PARA INTERROMPER)

18
• 5) STR$(X)
10 INPUT A,B
Objetivo: Retornar a represen-tação do valor de X
20 A$=STR$ (A)
30 B$=STR$ (B) em string.
STR$ é a função complementária de VAL(X$).
40 PRINT A;B;A+B
50 PRINT A$;B$;A$+B$ • 6) LEFT$(X$zn)
60 END Objetivo: Retornar uma string que equivale a n
caracteres à esquerda de X$. X$ não pode ser
maior que 31 caracteres.
• 7) RIGHT$(X$,n)
Objetivo: Retornar uma string que equivale a n caracteres à
direita de X$. X$ não pode ser maior que 31 caracteres.

• 8) MID(X$,m,n)
Objetivo: Retornar uma strinq de m caracteres do X$,
começando com o caractere n2 n.
A$="ABCDEF",LEN(A$)=6
10 A$="ABCDEF" • 9) LEN(A$)
20 S=LEN(A$) Objetivo: Retornar o número de
30 B$=LEFT$ (AS$,3): C$=RIGHT$(A$,3) caracteres de A$.
40 PRINTS • 10) INKEY$ ou INKEY$(n)
50 PRINT C$ ;"-";B$;"-" MID$ (A$,3,2)
Objetivo: Retornar um carac­
60 END tere obtido a partir do teclado.
RUN ♦
Se não especificado, n é 0. O
6 programa vai parar nolNKEY$
DEF-ABC-CD até um caractere ser inserido.
Quando n não é o valor correto, o programa ficar parado no
comando INKEY$ até que o caractere certo seja digitado.
10 A$=INKEY$ (0) ; O PROGRAMA IRÁ PARAR NESTA LINHA SEM A
20 IF A$="A" THEN 50 TECLA SER PRESSIONADA
30 BEEP ; A TECLA PRESSIONADA NÀO É A, ENTÃO
TOCA UM APITO
40 GOTO 10 ; JUMP PARA UNHA 10
50 PRINT A$
60 END

LOCATE E CLS
O G-BASIC divide a tela em 28 colunas (verticais)
10 CLS (X) e 24 linhas (horizontais) (Y). X pode ser entre
20 FORX=1 TO 7 0 e 27 e Y entre 0 e 23.
30 FORA=1 TO 2*X-1 A sintaxe de LOCATE é LOCATE X,Y, deve ser
40 LOCATE 13+A-X,X combinado com PRINT para apresentar o deseja­
50 PRINT"*" do (strings, operações...) em um ponto definido
60 NEXT da tela.
70 NEXT CLS é o comando que limpa todo conteúdo da
80 END tela e retornar o cursor ao canto superior esquer­
do da tela.

19
SUBROTINAS

O CONCEITO DE SUBROTINA
No G-BASIC você pode criar uma seção de programa indepen­
dente, facilitando a edição do programa. Estas seções isoladas
são chamadas de Subrotinas. Quando se usa uma Subrotina eco­
nomiza-se espaço na memória e no volume de trabalho.
O formato básico para se utilizar uma subrotina:

n GOSUB m

m (A primeira linha da subrotina)

k RETURN

O programa é exe­
10 PRINT "$ $ $ $ $ 1"
cutado normalmente
20 GOSUB 100 ; CHAMA A SUBROTINA
até encontrar n
30 PRINT "$$$$$ 2" DA LINHA 100
GOSUB m, mudan­
40 END
do imediatamente
100 PRINT ".............. 1"
seu fluxo para m
110 RETURN ; RETORNA PARA A PRÓXIMA
para executar a sub­
RUN ♦ FUNÇÃO DA LINHA 30
rotina. Quando a
$$$$$ 1
* ♦ ♦ ♦ • ]
subrotina chegar a k
RETURN, o progra-
$ $ $ $ $ 2
NESTE PROGRAMA, AS UNHAS 10 A 40 SÃO O
PROGRAMA PRINCIPAL, AS UNHAS 100 A 110 SÃO
SUBROTINAS

REGRAS PARA CHAMAR UMA SUBROTINA


• Para se chamar uma subrotina se usa o comando GOSUB ao invés
do comando GOTO.
• Podem haver várias entradas e saídas em uma subrotina, mas
cada uma precisa ter o comando RETURN para retornar seu fluxo.
• Após o comando RETURN, o fluxo retorna à linha seguinte à linha
onde estava o GOSUB.
• Outra subrotina pode ser chamado dentro desta subrotina .

10 REM ADD&SUBTRACT & PRODUCT EXAM


20 S=0
30 FOR 1=1 TO 10
40 A=RND(10)

20
50 B=RND (10)
60 C=RND (3)4-1
70 ON C GOSUB 200, 300, 400
80 IF R=1 THEN S=S+10
90 NEXT
100 PRINT "PONTOS:",S
110 END
200 PRINT A; B;
210 INPUT X
220 IF X=A+B THEN GOSUB 500: RETURN
230 Y=A+B
240 GOSUB 600
250 RETURN
300 IF A<B THEN SWAP A, B
310 PRINT A; B; "=";
320 INPUT X
330 IF X=A-B THEN GOSUB 500: RETURN
340 Y=A-B
350 GOSUB 600
360 RETURN
400 PRINT A; B; "="
410 INPUT X
420 IF X=A*B THEN GOSUB 500: RETURN
430 Y=A*B
440 GOSUB 600
450 RETURN
500 PRINT ****** CERTO ******
510 R=1
520 RETURN
600 PRINT "ERRADO!"
610 PRINT "O RESULTADO É:"; Y
620 R=0
630 RETURN

MATRIZ
•••••••••

O CONCEITO DÁ VARIÁVEL SUBSCRITA E MATRIZ


Após uma variável simples, um inteiro ou dois inteiros separados
com uma vírgula, que segue um par de parênteses é chamado de
variável subscrita. Os inteiros são chamados subscritos. Os parên­
teses e os subscritos dentro deles são chamados de tabela de
subscritos, e o nome da variável antes dos parênteses é o nome da

21
10 DIM A (5) variável subscrita.
20 READ A( 1), A(2)z A(3), A(4), A(5) Os subscritos são sempre o mesmo tipo
30 K=A(1)+A(2)+A(3)+A(4)+A(5) de dados. Não são permitidos números
40 PRINT K negativos nem variáveis de strings para
50 DATA 10, 20, 30, 40, 50 os subscritos, apenas variáveis de
60 END inteiros, variáveis simples ou expressões
RUN ♦ (as expressões devem ser designadas
150 antes de serem usadas como subscritos).
Todas variáveis subscritas com o mesmo nome de variáveis
subscritas são chamadas de matrizes, os nomes das variáveis
subscritas são os nomes das matrizes e cada variável subscrita é
chamada de elemento da matriz.
O elemento de uma matriz com um subscrito - A(1), A(2), A(3) - é
chamada de matriz unidimensional, com dois subscritos - A(1,1),
A(1,2) - é chamada de matriz bidimensional.

DIM
Objetivo: O DIM define a matriz, a dimensão da matriz e o valor
máximo de subscritos para cada dimensão.
Sintaxe: [n2 da linha] DIM nome da matriz (inteirol [,inteiro2])
Obs.: 1. Cada matriz só pode ser definida uma vez
2. Um comando de matriz definida pode ao mesmo
tempo definir várias matrizes, cada uma separada
por uma vírgula.

COMANDOS E FUNÇÕES ESPECIAIS


•••••••••
CLEAR, POKE E PEEK
CLEAR
Objetivo: Especificar o tamanho da memória do programa para
os usuários
Sintaxe: [n2 da linha] CLEAR &Hxx
10 CLEAR &H7600 POKE
20 D=0 Objetivo: Escrever um byte de dados em
30 FOR A=&H7600 TO & H761F uma certa parte da memória. O valor da
40 POKE A,D expressão varia de 0 a 255.
50 D=D+1 Sintaxe: [n2 da linha] POKE parte da
60 NEXT memória, expressão
70 FOR A=&H7600 TO &H7Ó1F
PEEK
80 RD=PEEK (A)
Objetivo: Associar os dados de uma célula
90 PRINT " * ; HEX$ (RD)
de memória a uma variável.
100 NEXT
Sintaxe: [n2 da linha] PEEK(variável)

22
COMPOSIÇÃO DE MÚSICAS E CONTROLE DE
SONS
BEEP
Objetivo: Faz o alto-falante do computador tocar um som rápido,
um "bip".
Sintaxe: [n° da linha] BEEP

PLAY
Objetivo: Tocar a música definida pelos caracteres.
Sintaxe: [n2 da linha] PLAY "caracteres".
Os caracteres são definidos assim, e representam nota, oitava,
volume, acorde, melodia e timbre:
• Tempo: define a velocidade em que a música toca. TI (rápido) a T8
(lento)
• Timbre: define o timbre. YO a Y3. Y0=l 2,5%, Y1 =25%, Y2=50% e
Y3=75%
• Melodia:
•MO: define o volume, com VO (baixo) a VI5 (alto)
•Ml: define a duração da melodia, com VO a VI5
•Oitava: define a oitava com OO (agudo) a 05 (soprano)
• Escala: representa as notas usando C a B (ver tabela da direita)
• Pausa: define um tempo de pausa com RO a R9
Valores de tempo das notas: use 0 a 9 após a nota (ver tabela da
esquerda), e use o descanso para definir a pausa ou duração do
som
• Acorde: necessita de dois-pontos se for um dueto ou trio. Cada
canal precisa ter escala, nota, tempo, timbre etc, mas não há
mudança na duração e timbre do terceiro canal
• Pré-definido: T4,MO,V15,O3,C5,R5. Estes parâmetros são utiliza-
dos se não forem especificados 1 C Do
Notas N2 1# #C Do#
1/8 Fusa 0 2 D Re
1/4 Semicolcheia 1 2# #D Re#
3/8 Semicolcheia com ponto 2 3 E Mi
1/2 Colcheia 3 4 F Fa
3/4 Colcheia com ponto 4 4# #F Fa#
1 Semínima 5 5 G Sol
1 1/2 Semínima com ponto 6 5# #G Sol#
2 Mínima 7 6 A La
3 Mínima com ponto 8 6# #A La#
4 Semibreve 9 7 B Si
23
10 PLAY "Ml V6T2O1"
20 A$="CDEFGABR"
30 N=RND (8)
40 B$=MID$ (A$,N+1,1)
50 PRINT B$
60 PLAY B$
70 GOTO 10

APRESENTAÇÃO
COLOR
Objetivo: Utilizar cor em alguma parte da tela

10 CLS Sintaxe: COLOR X,Y,n


20 FOR 1=0 TO 447 X=coordenada horizontal, 0 a 27
30 PRINT CHR$ (195) Y=coordenada vertical, 0 a 23
40 NEXT n=cor, 0 a 3
50 FOR C=1 TO 3 A figura mostra que cada bloco consiste
60 COLOR 5+C*3,5+C*2,C de quatro coordenadas. O COLOR pode
70 NEXT mudar a cor do fundo, ver qual paleta está
80 LOCATE 0,20 selecionada com o CGSET

24
CGEN
Objetivo: Seleciona a paleta para o fundo e animações

Sintaxe: CGEN n
n: código da cor entre 0 e 3

<CTRL+D> ajusta automaticamente CGEN 2.

n Fundo Animação Na tabela ao lado, A e B são as


0 A A tabelas utilizadas A (poses de
animação) e B (símbolo, número,
1 A B
diagrama de fundo etc). Ver
2 B A Apêndice.

10 CLS: SPRITE ON: CGSET 0,1


20 FOR 1=32 TO 255
30 PRINT CHR$ (I)
40 NEXT
50 DEF SPRITE 0, (0,l,0,0,0)=CHR$(64)+CHR$(65)+CHR$(66)+CHR$(67)
60 SPRITE 0, 100, 150
70 PAUSE 100: BEEP
80 CGEN 2
90 PAUSE: BEEP
100 CGEN 2
110 GOTO 70

CGSET
Objetivo: Decide a paleta para o fundo e animação

Sintaxe: CGSET [m][,n]


m: paleta de fundo. Pode ser 0 ou 1.
N: paleta de animação. Pode ser 0, 1 ou 2.
O normal de CGSET é 1.1.

PALET
Objetivo: Mudar quatro cores dentro de um conjunto pré-
definido (de 0 a 3)
Sintaxe: PALET BlS n,Cl,C2,C3,C4
B: fundo

S: animação
n: conjunto de cores (de 0 a 3)
Cl: cor inferior
C2, C3 e C4: outras cores no conjunto de cores definido

25
Códigos de cores
Notação 16 10 16 10 16 10 16 10

00 0 10 16 20 32 30 48 Cinza-Branco

Azul 01 1 11 17 21 33 31 49

02 2 12 18 22 34 32 50

03 3 13 19 23 35 33 51

04 4 14 20 24 36 34 52
Vermelho 05 5 15 21 25 37 35 53

06 6 16 22 26 38 36 54
Cores de
07 7 17 23 27 39 37 55 Transição
08 8 18 24 28 40 38 56
Verde 09 9 19 25 29 41 39 57

0A 10 IA 26 2A 42 3A 58
0B 11 1B 27 2B 43 3B 59

OC 12 1C 28 2C 44 3C 60

0D 13 1D 29 2D 45

0E 14 1E 30 2E 46
Preto
0F 15 1F 31 2F 47

Escuro ------------------------------------------------ ► Claro

• A cor inferior do fundo é mostrada atrás do fundo e da ani­


mação.
• A cor é criada na Unidade de Processamento de Figuras (PPU).
• Na tabela há notações hexadecimais e decimais.

Comparação de cada código


paleta conjunto de cores código de cor código da cor
inferior de fundo
0
animação 0 1 C2
1 2 C3 Cl
2 3 C4
0 0
fundo 1 C2 Cl
2 C3
1 3 C4
comando CGSET DEF SPRITE PALET PALET
DEF MOVE
COLOR
26
• Cada paleta tem quatro conjuntos de cores, e cada conjunto de
cores tem quatro cores.

cores 2
conjunto de cores 1
conjunto de cores 0

MOVE
DEF MOVE
Objetivo: Definir rolo de animação (há 16 tipos de animação
para usar)
Sintaxe: DEF MOVE (n) = SPRITE (A,B,C,D,E,F)
n: rolos definidos (0 a 7)
A: tipo de animação (0 a 15)
B: direção do movimento (0 a 8)
C: velocidade do movimento (1 a 255)
D: deslocamento (1 a 255)
E: prioridade (0 a 1)
F: conjunto de cores (0 a 3)

• n (0 a 7)
Até oito rolos podem ser definidos ao mesmo tempo.
Cada rolo pode ter várias seqüências de animação

• A(0a 15)
Há 16 tipos de animação:

0: garoto 4: pato 8: forte 12: bala


1: garota 5: geleia engraçada 9: nave espacial 13: caramujo
2: esqueleto 6: tanque 10: explosão 14: caranguejo
3: helicóptero 7: plataforma 11: porco 15: pássaro

Cada rolo tem que ter no mínimo duas poses.

27
• B (0 a 8)
Há 8 direções de animação:

5
• C (1 a 255)
à velocidade mais rápida (C=l) move 60 pixels por segundo,
enquanto que a mais lenta (C=255) move 60 pixels em 255
segundos. A resolução da tela é de 256 pixels (W) por 240
pixels (H).

• D (1 a 255)
Deslocamento mostra a distância de cada movimento da ani­
mação. Se for 2, por exemplo, a distância máxima é de 2X255
pixels.

• E (0 a 1)
0 significa animação na frente do fundo, e 1 é uma animação
atrás do fundo.

• F (0 a 3)
Define o conjunto de cores do rolo. À paleta deve ser definida
antes do conjunto de cores.

MOVE
Objetivo: Iniciar o movimento do rolo

Sintaxe: MOVE nO [nl ,n2,n3,n4,n5,nó,n7]


n: rolos definidos anteriormente
• Após o comando SPRITE ON, o MOVE inicia o movimento do(s)
rolo(s) desejado (s.)
• Após o comando MOVE, mesmo que o programa esteja finaliza­
do, o rolo irá continuar se movendo até ser parado.
• Há no máximo 4 rolos na mesma linha horizontal.

CUT
Objetivo: Parar a ação do rolo

Sintaxe: CUT n0[,nl ,n2,n3,n4,n5,nó,n7]


• 8 tipos de animação são identificados pelo comando CUT

• Um rolo parado não desa­


10 CLS: CGSET, 2 parece da tela
20 SPRITE ON
30 DEF MOVE (O)=SPRITE (0, 3, 4, 255, 0, 2) ERA
40 MOVEO Objetivo: Parar a ação do
RUN ♦ rolo e apagá-lo da tela
ERA0 ♦
MOVE 0 I Sintaxe: ERA
n0[,nl ,n2,n3,n4,n5,n6,n7]
28
POSITION
Objetivo: Definir a posição onde o rolo irá começar a se mover

Sintaxe: POSITION n,X,Y


10 CLS: SPRITE ON
n: rolo pré-definido (0 a 7)
20 DEF MOVE (O)=SPRITE (11, 3, 2, 10, 1, 12)
30 X=RND (256): Y=RND (240) X: coordenada horizontal (0
40 PRINT "X; Y="; X; ", “■ Y a 244)
50 POSITION 0, X, Y
Y: coordenada vertical (5 a
60 MOVE 0
220)
70 PAUSE 80
80 GOTO 10 Se não forem especificados,
X=120; Y=120.

XPOS
Objetivo: Obter a coordenada horizontal do rolo definido

Sintaxe: XPOS(n)
n: rolo (0 a 7)

YPOS
Objetivo: Obter a coordenada vertical do rolo definido

Sintaxe: YPOS(n)
n: rolo (0 a 7)

MOVE(n)
Objetivo: Verificar se o rolo definido já está finalizado ou não

Sintaxe: MOVE(n)
n: rolo (0 a 7)

10 SPRITE ON=CGSET 1,0 Se o resultado for -1, o rolo


20 DEF MOVE (0)=SPRITE (0, 3, 1, 150, 0, 0) ainda está em movimento.
30 MOVE 0 Se for 0, já está finalizado.
40 IF MOVE (0)=-l THEN
PRINT "MOVE 0"=", MOVE (0): GOTO 40
50 PRINT "MOVE (0)="; MOVE (0)
60 END

CONTROLE DE ANIMAÇÃO
DEF SPRITE
Objetivo: Definir a "pose" (figura) da animação

Sintaxe: DEF SPRITE A(,B,C,D,E,F)=string


A: pose da animação (0 a 7)

29
B: conjunto de cores (0 a 3)
C: tamanho da figura (0 a 1). 0 é uma figura com uma matriz
de 8x8 pixels com um padrão, 1 é uma figura com matrizes de
1 óxl 6 pixels e quatro padrões
D: prioridade (0 a 1). 0 é a animação na frente do fundo, 1 é
atrás do fundo
E: define a direção da figura para direita ou esquerda (0 ou 1).
0 é a posição em que a figura está na tabela, 1 é a direção
oposta.
F: define se a figura está normal ou inversa (0 ou 1). 0 é a
posição em que a figura está na tabela, 1 é de cabeça para
baixo.

SPRITE
Objetivo: A pose definida na tela pode ser mostrada ou deletada
de qualquer posição da tela

Sintaxe: SPRITE n[,X,Y]


n: pose da animação (0 a 7)
X: coordenada X da animação (0 a 240)
Y: coordenada Y da animação (5 a 220)
• Se as coordenadas X e Y forem omitidas a figura será deletada
• Mais que dois rolos podem ser mostrados na mesma coordenada
(sobrepondo-se). De acordo com o número da pose, o menor
número será mostrado na frente do maior
• Apenas 4 rolos podem ser mostrados na mesma linha horizontal
• Relação de coordenadas:

x = (Xx8) + 16
y = (Y x 8) + 24
x,y são as coordenadas da animação
X,Y são as coordenadas da tela

SPRITE ON
Objetivo: Ativar as animações

Sintaxe: SPRITE ON (deve ser usado antes de qualquer comando


relacionado à animação)

SPRITE OFF
Objetivo: Desativar as animações e fazê-las desaparecer.

Sintaxe: SPRITE OFF

30
FUNÇÕES ESPECIAIS
STICK(X)
Objetivo: Indica a direção do joystick

Sintaxe: STICK(X)
X: 0 ou 1, indica se é o joystick do primeiro jogador ou do
segundo jogador. Há quatro valores indicando as direções do

10 S=STICK (0)
20 IF S=0 THEN PRINT "S=0"
30
40
IF S=1 THEN
IF S=2 THEN
PRINT
PRINT
"S=1"
"S=2" t
50
60
70
IF S=4 THEN
IF S=8 THEN
GOTO 10
PRINT
PRINT
'S=4"
"S=8" i
80 END

STRIG(X)
Objetivo: Indicar se os quatro botões do joystick estão pressiona­
dos ou não
Sintaxe: STRIG(X)
10 T=STRING (0)
X: 0 para o joystick do primeiro jogador, 1
20 IF T=1 THEN PRINT "START"
para o joystick do segundo jogador
30 IF T=2 THEN PRINT "SELECT"
40 IF T=4 THEN PRINT "B" SELECT START B A
50 IF T=8 THEN PRINT "A"
IP 2 1 4 8 STRIG(O)
60 GOTO 10
70 END 2P 4 8 STRIG(l)

POS(O)
10 CLS Objetivo: Obter a coordenada horizontal do cursor
20 FORX=0TO25
30 LOCATE X, 0
40 PRINT POS (0)
50 PAUSE 10
60 NEXT

CSRLIN
10 CLS Objetivo: Obter a coordenada vertical do cursor
20 FOR 1=0 TO 20
30 LOCATE I, I
40 X=POS(0); Y=CSRLIN
50 PRINT X; Y
60 PAUSE 20
70 NEXT

31
SCR$
Objetivo: Obter o padrão da posição
10 CLS
indicada
20 LOCATE 0, 10
30 PRINT "MAGIC COMPUTER" Sintaxe: SCR$(X,Y,Sw)
40 PRINT"............... " X: coordenada horizontal (0 a 27)
50 LOCATE 10, 15 Y: coordenada vertical (0 a 23)
60 PRINT SCR$(0, 10) Sw: 0 a 1, obtém o código de padrão
70 A$=SCR$(1, 10) ou o código do conjunto de cores
75 LOCATE 10, 17
80 PRINT A$
90 C$=SCR$(1, 10, 1)
100 PRINT "COR="; ASC (C$)
110 END

GRÁFICO DE FUNDO
••••••••••
PROGRAMA DE GRÁFICO DE FUNDO
INTRODUÇÃO
O programa de gráfico de fundo pode criar os diagramas para o
fundo. Dentro do G-BASIC existem comandos para utilização
desses diagramas, que aparecem mais vividos na tela.
• Selecione G-BASIC
• No menu, escolha BG GRAPHIC
Na tela se encontra o seguinte:
• No canto inferior direito, a lista de padrões:
Para os padrões existem 13 grupos e 8 pedaços em cada grupo,
resultando 104 pedaços. Pressione <HOME> ou <SHIFT+HOME>
para mostrar cada grupo.
• Sobre a lista de padrões, o flecha de seleção de padrão:
Pressione <INS> para mover a flecha para a esquerda e <-<— >
(BACK) para movê-la para a direita
• Ao lado esquerdo da lista de padrões, MODE:
Pressione <ENTER> para mudar a cor do padrão. MODE é o con­
junto de cores sendo utilizado. Há 4 cores para serem sele­
cionadas em cada conjunto, e cada paleta tem 4 conjuntos de
cores. Um conjunto de cores pode ser usado dentro de 16x16
pixels (4 padrões)
• Ao lado esquerdo do MODE, as coordenadas:
A posição do cursor na tela será indicada nas coordenadas X
(0 a 27) e Y (0 a 21).

32
O cursor não aparecerá ao usar o comando "CHAR", mas apare­
cerá ao usar os comandos "SELECT", "COPY" e "MOVE"
x, y: coordenadas de animação

X,Y: coordenadas de fundo

x = (X * 8) + 16 y = (Y * 8) + 24

INSTRUÇÕES PARA OPERAÇÕES

Ao apertar <ESC>, no canto superior esquerdo da tela aparece­


rão os comandos. Utilize ♦ e f para selecionar uma.

• SELECT:
Permite que você altere a cor, padrão etc.
Selecione a cor desejada, padrão etc de acordo com as instruções
já dadas. Usando as flechas, leve o cursor à posição desejada,
pressione <SPACE> para inserir o padrão nesta posição. Pressione
<D> para apagar o padrão à posição do cursor.

• COPY:
Permite que se copie um padrão para outra posição, reproduzin­
do-o na tela quantas vezes quiser. Após selecionar o comando
COPY, mova o cursor à posição onde se localiza o padrão a ser
copiado e pressione <INS> para copiá-lo. Mova o cursor à
posição desejada e pressione <ENTER> para inseri-lo. Se desejar
inseri-lo em mais posições, mova até outra posição desejada e
pressione < — > (BACK).
• MOVE:
Permite que se mova o padrão a outra posição.
Após selecionar o comando MOVE, mova o cursor à posição onde
se localiza o padrão a ser movido. Pressione <INS> para sele­
cionar o padrão e <INS> novamente para fazê-lo desaparecer.
Mova o cursor à posição desejada e pressione < — > (BACK)
para inserir o padrão nessa posição.

• CLEAR:
Faz com que todos os padrões na tela sejam apagados.
Após selecionar o comando CLEAR, pressione <SPACE> para
apagar os padrões da tela.

• CHAR:
Permite que o usuário insira números, letras ou símbolos a partir
do teclado. Após selecionar o comando CHAR, mova o cursor até
a posição desejada e digite o número, letra ou símbolo. Para dele-
tar um caractere, mova o cursor a posição onde se encontra o ca­
ractere a ser deletado e pressione <SPACE>

33
O PROGRAMA BASIC E O PROGRAMA DE FUNDO
Usando essa combinação você criará realmente uma animação,
com os movimentos do G-BASIC e o fundo criado.

• Crie o fundo no BG GRAPHIC

• Pressione <ESC>+<BREAK> para sair do programa e ir ao menu.


Pressione "1" para entrar no G-BASIC.
• Após o programa com animações estiver totalmente corrigido,
pronto para ser executado, insira o comando "VIEW" na primeira
linha (fn° da linha] VIEW). A animação irá ser mostrada sobre o
fundo criado.

OBS.:
• Se houver o comando CLS no programa, troque-o por VIEW. Se
não, coloque na primeira linha o comando VIEW normalmente.
• Se você quiser checar seu programa, é necessário apagar o fundo
antes.
• Use <SHIFT+HOME> para apagar o fundo e retornar o cursor ao
canto superior esquerdo.
• Durante a execução do programa, pressione <BREAK> para
parar.

(1) FUNDO:
PRIMEIRO ENTRE NO BG-GRAFIC E CRIE UMA TELA DE FUNDO.
(2) ANIMAÇÃO
DEPOIS DE SAIR DO BG-GRAFIC, ENTRE NO BASIC E INSIRA O
PROGRAMA ABAIXO.

5 VIEW
10 SPRITE ON
20 CGSET 1, 1
30 FORN=0TO7
40 DEF MOVE (N)=SPRITE (0, N+l, 3, 255, 0, 0)
50 NEXT
60 MOVEO, 1,2, 3,4, 5, 6, 7
70 END

34
F-BASIC
••••••••••
No F-BASIC existem funções que permitem o cálculo de SPN,
COS, LOG, SQR etc., além de várias outras operações matemáti­
cas avançadas.

COMANDOS E FUNÇÕES DO F-BASIC


COMANDOS SEMELHANTES
1. [LET] variável = associação
2. INPUT inserção de dados pelo teclado
3. READ/DÃTÃ READ / DATA
4. RESTORE RESTORE
5. PRINT PRINT
6. GOTO desvio incondicional
7. IF...THEN GOTO desvio condicional
8. STOP STOP
9. REM remark
10. FOR...NEXT loop
11. GOSUB subrotina
12. RETURN retorna da subrotina
13. DEF definição de parâmetros
14. FN definição de função
15. DIM
16. END fim

COMANDOS DO F-BASIC
1. HOME : limpa a tela
2. FRE : indica o espaço livre na memória
3. POKE : escreve urn byte de dados em certa
parte da memória
4. TRACE : ativa rastro
5. UNTRACE : desativa rastro
FUNÇÕES BÁSICAS
Função Objetivo
SIN(X) calcular o valor trigonométrico do seno de X

COS(X) calcular o valor trigonométrico do cosseno de X

TAN(X) calcular o valor trigonométrico da tangente de X

ATN(X) calcular o valor trigonométrico da arco-tangente de X

LOG(X) retornar o logaritmo natural de X

EXP(X) retornar um valor ao expoente X

ABS(X) retornar o valor absoluto da expressão

SQR(X) calcular a raiz quadrada de X

35
Função Objetivo
INT(X) unir uma expressão a um número inteiro

SGN(X) retornar o valor de X

RND(X) retornar um valor aleatório menor que X

STRINGS
1. VAL(X$) : retorna o valor numérico da string X$
2. STR$(N) : retorna uma representação em string do valor
de N
3. CHR$(N) : converter um código GSCII a seu caractere
equivalente
4. LEN(X$) : retornar o número de caracteres em X$
OUTRAS FUNÇÕES
1. TAB(N) : espaços na tela até a posição N
2. PEEK(M) : ler uma parte específica da memória

COMPARAÇÕES ENTRE F-BASIC E G-BASIC

Descrição F-BASIC G-BASIC


Constante Número inteiro: igual ao Número real (-32768 até
G-BASiC 32767)
String: igual ao G-BASIC String
Número real: existem 9
números; fora desses números
deve ser resolvido por método
de calculadora científica
Variável Inteiro Inteiro
Real Real
String
Sinal matemático +, x, / +, -, x, /, MOD
Operador lógico NOT, AND, OR NOT, AND, OR, XOR
INPUT/OUTPUT 1. Associação: Associação:
[linha][LET]var=expressão [linha] variável=expressão
2. PRINT: 2. PRINT:
1. Ponto-e-vírgula (;) para Sempre como impressão
impressão seguinte próxima, uma linha pode
2. Vírgula (,) como forma exibir 4 números
normal de saída; uma linha
pode exibir até 3 n°s

LOOP Comando NEXT precisa NEXT não precisa


indicar a variável indicar a variável

36
Descrição F-BASIC G-BASIC
Funções numéricas 11 tipos de função Apenas ABS, SGN e RDN

Strings Menos funções de string Várias funções de string e


funções especiais

Apagar a tela HOME CLS


Comandos especiais 1. TRACE Comandos especiais para
2. UNTRACE animação e gráfico de
Os outros comandos são os fundo
mesmos do G-BASIC
Definição funcional 1 .[linha] DEF FN função não possui
(parâmetro)
2.[linha] var=FN função

OPERAÇÃO
• Use NEW para apagar o programa inteiro ou AUTO para apa­
gar apenas linha específica

• Para modificar, use o LIST para localizar a linha onde há erros e


use o comando EDIT para modificar a linha (EDIT n2 da linha).

• Para sair do F-BÁSIC, pressione <RESET>.

APÊNDICE
••••••••••

ALGUNS OUTROS COMANDOS


•KEYLIST
Objetivo: Indica as funções das teclas Fl a F8 (não existe no F-
BASIC). (M) após o comando significa <ENTER>.

• KEY
Objetivo: Muda as funções das teclas Fl a F8
Sintaxe: KEY N, "comando"
N é a letra da tecla de função (1 a 15)
"comando" é o comando a ser designado a essa tecla. Para
especificar <ENTER> após o comando, coloque
"comando"+CHR$(l 3)

• FRE
Objetivo: Lista a quantidade de memória livre

37
TABELAS
Tabela de códigos de padrões A (usada em ani­
mações)

hexa­ hexa­ hexa­ hexa­ hexa­


decimal decimal pose decimal pose decimal decimal pose decimal decimal pose decimal decimal pose
decimal
0.00 00 52 34 104 68 156 9C 208 DO bullet
1.00 01 boy 53 35 girt 105 69 duck 157 9D fort (leftl)
2 02 54 36 106 6A 158 9E 209 DI bullet
3 03 (walkl) 55 37 (tumble) 107 6B (front) 159 9F (up-left) (left2)
4 04 56 38 108 6C 160 A0 210 D2 bullet
5 05 boy 57 39 skeleton 109 6D duck 161 Al fort (up-leftl)
6 06 58 3A 110 6E 162 A2 211 D3 bullet
7 07 (walk2) 59 3B (1) 111 6F (back) 163 A3 (up) (up-ieft2)
8 08 60 3C 112 70 164 A4 212 D4 bullet
9 09 boy 61 3D skeleton 113 71 funny jelly 165 A5 space (up1)
10 0A 0B 62 3E 114 72 166 A6 boat 213 D5 bullet
11 OB (walk3) 63 3F (2) 115 73 0) 167 A7 (left) (up2)
12 OC 64 40 116 74 168 A8 214 D6
13 0D boy 65 41 helicopter 117 75 funny jelly 169 A9 space 215 D7
14 0E 66 42 118 76 170 AA boat 216 D8
15 0F (jump) 67 43 (leftl) 119 77 (2) 171 AB (up-left) 217 D9
16 18 10 68 44 120 78 172 AC 218 DA
17 11 boy 69 45 helicopter 121 79 tank 173 AD space 219 DB
18 12 70 46 122 7A 174 AE boat 220 DC
19 13 (slide) 71 47 (Ieft2) 123 7B (leftl) 175 AF (up) 221 DD
20 14 72 48 124 7C 176 B0 222 DE
21 15 boy 73 49 helicopter 125 7D tank 177 Bl exploding 223 DF
22 16 74 4A 126 7E 178.00 B2 224 E0
23 17 (back) 75 4B (up4eft1) 127 7F (left2) 179 B3 (1) 225 El
24 18 76 4C 128 80 180 B4 226 E2
25 19 boy 77 4D helicopter 129 81 tank 181 B5 exploding 227 E3
26 IA 78 4E 130 82 182 B6 228 E4
27 1B (tumble) 79 4F (up-left2) 131 83 (up-leftl) 183 B7 (2) 229 E5
28 1C 80 50 132 84 184 B8 230 E6
29 1D girl 81 51 helicopter 133 85 tank 185 B9 snail 231 E7
30 1E 82 52 134 86 186 BA 232 E8
31 1F (walkl) 83 53 (focwardl) 135 87 (up-left2) 187 BB (1) 233 E9
32 20 84 54 136 88 188 BC 234 EA
33 21 girl 85 55 helicopter 137 89 tank 189 BD snail 235 EB
34 22 86 56 138 8A 190 BE 236 EC
35 23 (walk2) 87 57 (forward2) 139 8B (upl) 191 BF (2) 237 ED
38 24 88 58 140.00 8C 192 CO 238 EE
3í 25 girl 89 59 pig 141 8D tank 193 Cl crab 239 EF
38 26 90 5A 142 8E 194 C2 240 F0
39 27 (walk3) 91 92 5B (i) 143 8F (up2) 195 C3 (1) 241 Fl
40 28 92 5C 144 90 196 C4 242 F2
41 29 girl 93 50 pig 145 91 station 197 C5 crab 243 F3
42 2A 94 5E 146 92 198 C6 244 F4
43 2B (lump) 95 5F (2) 147 93 (O 199 C7 (2) 245 F5
44 2C 96 60 148 94 200 C8 246 F6
45 20 gin 97 61 duck 149 95 station 201 C9 bird 247 F7
46 2E 98 62 150 96 202 CA 248 F8
47 2F (side) 99 63 (walkl) 151 97 (2) 203 CB (D 249 F9
48 30 100 64 152 98 204 CC 250 FA
49 31 ««I 101 65 duck 153 99 fort 205 CD bird 251 FB
50 32 102 66 154 9A 206 CE 252 FC
51 33 (back) 103 67 (walk2) 155 9B (left) 207 CF (2) 253 FD
254 FE
255 FF

Verificar os códigos correspondentes com as tabelas de poses das


figuras para animação.

38
Tabela de códigos B (usada no fundo)
Padrões para o desenho do fundo. 0 a 31 e 184 a 255 são as va­
riedades de figuras para o fundo, os outros são números e letras.
Os padrões 32 a 127 também são usados no F-BASIC

hexa­ hexa­ hexa­ hexa­ hexa­


decimal decimal symbol decimal decimal syabol decimal decimal syabol decimal
decimal symbol decimal decimal syabol
0 00 (A0) 64 40 6 128 80 192 CO (F0) 243 F3 (L3)
1 01 (Al) 65 41 A 129 81 193 Cl (Fl) 244 F4 (U)
2 02 (A2) 66 42 B 130 82 194 C2 (F2) 245 F5 (L5)
3 03 (A3) 67 43 C 131 83 195 C3 (F3) 246 F6 (L6)
4 04 (A4) 68 44 D 132 84 196 C4 (F4) 247 F7 (L7)
5 05 (A5) 69 45 E 133 85 197 C5 (F5) 248 F8 (HO)
6 06 (A6) 70 46 F 134 86 198 C6 (F6) 249 F9 (Hl)
7 07 (A7) 71 47 G 135 87 199 C7 (F7) 250 FA (H2)
8 08 (B0) 72 48 H 136 88 200 C8 (G0) 251 FB (M3)
9 09 (Bl)) 73 49 I 137 89 201 C9 (Gl) 252 FC (M4)
10 0A (B2) 74 4A J 138 8A 202 CA (G2) 253 FD (M5)
11 0B (B3) 75 4B K 139 8B 203 CB (G3) 254 FE (M6)
12 oc (B4) 76 4C L 140 8C 204 CC (G4) 255 FF (H7)
13 0D (B5) 77 4D V 141 8D 205 CD (G5)
14 0E (B6) 78 4E N 142 8E 206 CE (G6)
15 0F (B7) 79 4F 0 143 8F 207 CF (G7)
16 10 (C0) 80 50 P 144 90 208 D0 (H0)
17 11 (Cl) 81 51 Q 145 91 209 Dl (Hl)
18 12 (C2) 82 52 R 146 92 210 D2 (H2)
19 13 (C3) 83 53 5 S 147 93 211 D3 (H3)
20 14 (C4) 84 54 T 148 94 212 D4 (H4)
21 15 (C5) 85 55 U 149 95 213 D5 (H5)
22 16 (C6) 86 56 V 150 96 214 D6 (H6)
23 17 (C7) 87 57 I 151 97 215 D7 (H7)
24 18 (D0) 88 58 X 152 98 216 D8 (10)
25 19 (Dl) 89 59 Y 153 99 217 D9 (11)
26 IA (D2) 90 5A Z 154 9A 218 DA (12)
27 1B (D3) 91 5B ( 155 9B 219 DB (13)
28 1C (D4) 92 5C \ 156 9C 220 DC (14)
29 1D (D5) 93 5D ) 157 9D 221 DD (15)
30 1E (D6) 94 5E 158 9E 222 DE (16)
31 1F (D7) 95 5F 159 9F 223 DF (17)
32 20 Space 96 60 160 A0 224 E0 (J0)
33 21 J 97 61 a 161 Al 225 El (Jl)
34 22 • 98 62 b 162 A2 226 E2 (J2)
35 23 1 99 63 c 163 A3 227 E3 (J3)
36 24 $ 100 64 d 164 A4 228 E4 (J4)
37 25 X 101 65 e 165 A5 229 E5 (J5)
38 26 & 102 66 f 166 A6 230 E6 (J6)
39 27 103 67 g 167 A7 231 E7 (J7)
40 28 ( 104 68 h 168 A8 232 E8 (XO)
41 29 ) 105 69 i 169 A9 233 E9 (Kl)
42 2A ♦ 106 6A j 170 AA 234 EA (K2)
43 2B ♦ 107 6B k 171 AB 235 EB (K3)
44 2C 108 6C 1 172 AC 236 EC (K4)
45 2D - 109 6D ■ 173 AD 237 ED (15)
46 2E 110 6E n 174 AE 238 EE (K6)
47 2F / 111 6F 0 175 AF 239 EF (K7)
48 30 0 112 70 p 176 B0 240 F0 (L0)
49 31 1 113 71 q 177 Bl 241 Fl (Ll)
50 32 2 114 72 r 178 B2 242 F2 (L2)
51 33 3 115 73 s 179 B3
52 34 4 116 74 t 180 B4
53 35 5 117 75 u 181 B5
54 36 6 118 76 V 182 B6
55 37 7 119 77 V 183 B7
56 38 8 120 78 X 184 B8 (E0)
57 39 9 121 79 y 185 B9 (El)
58 3A 122 7A z 186 BA (E2)
59 3B 123 7B ( 187 BB (E3)
60 3C < 124 TC 1 188 BC (E4)
61 3D = 125 7D 1 189 BD (E5)
62 3E > 126 7E X 190 BE (E6)
63 3F 9 127 7F + 191 BF (E7)

39
Poses das figuras para animação

70 helicopter71 74 helicopter 75 *2 helicopter

86 helicopter 87

1 I4 fanny jeüy 1,5 114 fanny jelly 122 tank '22 I2® tank ^27
145 148_________ 149 152

station 147 150 yation *51 154


177 180

40
EXEMPLOS
»••••••••
10 DIMS (10) 120 SWAP S(l), S(P)
20 FOR 1=1 TO 10 130 NEXT
30 READS(I) Í40 PRINT "DADO SORTEADO:"
40 NEXT 150 GOSUB 200
50 PRINT "OS 10 DADOS INSERIDOS SÀO:" 160 DATA (10 NÚMEROS)
60 GOSUB 200 170 END
70 FOR 1=1 TO 9 200 FOR 1=1 TO 10
80 P=l 210 PRINT S (1);
90 FOR J=l TO 10 220 NEXT
100 IF S(JI)<S(P) THEN P=J 230 PRINT
110 NEXT 240 RETURN

Insira o número, a nota de Português, Matemática e Ciências de


5 alunos para obter a nota total e imprimir o número do aluno,
cada nota e a nota total.

10 REM STUDENT MARKS 130 M (1, 5)=S


20 DIM M (5, 5) 140 NEXT
30 FOR 1=1 TO 5 150 FOR 1=1 TO 5
40 FOR 1=1 TO 4 160 FOR J=1 TO 5
50 READM (I,J) 170 PRINT M (1, J)
60 NEXT 180 NEXT
70 NEXT 190 PRINT
80 FOR 1=1 TO 5 200 NEXT
90 S=0 210 DATA 101,89, 90, 98, 102, 80, 67, 78
100 FOR J=2 TO 4 220 DATA 103, 88, 92, 93, 104, 85, 86, 90
110 S=S+M (I, J) 230 DATA 105, 67, 78, 80
120 NEXT 240 END

5 CLS
6 LOCATE 8, 12: PRINT "MAGIC COMPUTER"
10 PLAY "Ml Y1 V7T3:M1 Y1 V5T3:M1T3"
20 PLAY "O2A6G3F5G:O2R3FCEDCEC:O1 FC"
30 PLAY "A5AA7:RFCFRCO1 AO2CFC"
40 PLAY "G5GG7:RECERCD1GO2C:O2CO1G"
50 PLAY "A5O3CC7:RF5AO3C3AG:FC"
60 PLAY "O2A6G3F5G:O2RFRERDRC:FC"
70 PLAY "AAA7:RFFFRCCC:FC"
80 PLAY "G5#AA6G3:RERGRERC:O2CO1G"
90 PLAY "F9:FCFAO3F7:F5CF7"
RUN ♦

41
OLINflCC>M
Caixa Postal 6407 • CEP 01051-970 • São Paulo - SP

PRODUZIDO
NA ZONA FRANCA
DE MANAUS

CONHEÇA A AMAZÔNIA

Você também pode gostar