PROGRAMAÇÃO PARA
INICIANTES
SISTEMA
D-8000
ÍNDICE
INTR O D UÇÃO ...
3
CAP. I COMANDOS DIRETOS E CORREÇÃO DE TEXTOS . 5
CAP. II PROGRAMAÇÃO EM B A S IC ... 11
INTRODUÇÃO
M0 que é Programação de Computador? Programação é o método usado para analisar um problema, traduzir o problema na linguagem do
computador e deixá-lo resolver o problema.
É claro que a viabilidade de resolver o problema é limitada por 3 coisas: 1 - Pelo problema:
Para ser mais preciso; se você não sabe nada sobre mísseis espaciais, não será uma boa idéia tentar fazer um programa de simulação de mísseis, a menos que um conhecedor do assunto lhe explique todos os fatores e variáveis que estão envolvidos no lançamento de mísseis.
Resumindo: Se você não sabe resolver o problema, não tente fazer o computador resolvê-lo.
2 - Pela linguagem de programação: As características e as funções da linguagem refletem a sua capacidade. Algumas são voltadas para aplicações comerciais, outras para computação científica e outras para qualquer propósito. Por exemplo, a linguagem Basic do seu D ISM A C
D-8000 é uma das linguagens mais populares para aplicações gerais. 3 - Pelo computador: Finalmente, a velocidade e a arquitetura do próprio
computador são muito importantes. Se o seu computador for duas vezes mais rápido que os outros, você pode terminar o seu trabalho na metade do tempo gasto por outras pessoas. Se também a memória do seu computador for relativamente grande, você pode escrever
programas bem longos e potentes.
Imagine que nós queremos resolver o seguinte problema: Exemplo 1:
1 - Márcio tinha Cr$ 500 - no bolso
2 - Ele tomou um ônibus para o centro e pagou Crê 14 3 - Tomou um sorvete por Cr$ 30
4 - Jogou 5 partidas de Fliperama por Cr$ 15 por partida 5 - Comprou 1 maço de cigarros por Crê 36
Problema 1: Quanto dinheiro tinha Márcio quando chegou em casa? Se os eventos acima forem traduzidos para Basic, poderemos escrever o seguinte programa: PR O G R A M A 1: 10 M=50 0 : REM 1 ♦ 20 M=M-1* : REM 2 * 30 M=M-30 : REM 3 ♦ *0 M-M-15* 5 : REM *♦ 50 M:=M-36 : REM er J ♦ 60 M=M-1* í REM 6 ♦
70 PRINT ■MÁRCIO TINH 80 END
MÁRCIO TINHA CR* 500
MENOS 1* DO PRIMEIRO ÔNIBUS MENOS CR* 30 DO SORVETE
MENOS 5 PARTIDAS DE FLIPPER A CR* 15 CADA MENOS CR* 36 DOS CIGARROS
MENOS CR* 1* DO ÔNIBUS DE VOLTA
C R * " í M ; REM IMPRIMA QUANTO TINHA MÁRCIO
Sempre que você executar (RUN) este programa, o resultado será:
MÁRCIO TINHA CR* 331
O programa 1 pode ser reduzido como está mostrado abaixo, mas, esta segunda versão é mais difícil de ser compreendida.
PR O G R A M A 2:
10 PRINT “MÁRCIO TINHA CR*"Í 500--l*-30-15*5-36-l* 20 END
É claro que a função do computador não se limita a resolver o problema acima. Estes cálculos podem ser feitos por uma calculadora ou até por uma criança. Nos próximos capítulos, vamos introduzir mais alguns conceitos de programação, junto com programas mais potentes, os quais resolverão alguns problemas mais interessantes e mais difíceis.
COMANDOS DIRETOS E CORRECAO
DE TEXTOS
0 principal objetivo dos COM ANDOS D IR ETO S é ordenar à máquina que execute algum trabalho interna ou externamente.
Sempre que a mensagem R EA D Y aparecer na tela (veja no Manual do usuário,como ligar o sistema), você estará no N ÍVEL DIRETO DE COMANDO e o computador estará esperando o seu comando. Ele aguardará eternamente, até que você introduza o seu comando pelo teclado.
Alguns dos COM ANDOS D IRETO S são:
AU TO - Numera A U TO M A TIC A M EN TE as linhas de programa D E LET E - Apaga a linha de programa
ED IT - altera (edita) a linha de programa
LIST - Faz uma listagem das linhas de programa RUN - Executa o programa
Vamos agora colocar no computador as frases abaixo através do teclado
READY
>AUTO
10 PRINT "MEU PRIMEIRO PROGRAMA" 2 0 . FOR A=1 TO 10
30 PRINT Ar A*A 40 NEXT A
50 END 60
Vejamos agora se não houve nenhum erro de datilografia.
Se por exemplo você cometeu um erro na linha 30, basta que a escreva novamente como abaixo:
READY
30 PRINT Ar A*A
No próximo capítulo, veremos técnicas mais eficientes para correção de textos.
Se tudo está bom, podemos agora executar (RUN) o programa e ver 0 que acontece.
READY
>RUN
MEU PRIMEIRO PROGRAMA
1 1
Em toda a operação feita acima, somente dois comandos diretos foram usados, AU TO e RUN. As outras partes são apenas texto de programa e saídas.
Escreva agora L IS T e tecle N EW UNE
READY
> LIST
10 PRINT “MEU PRIMEIRO PROGRAMA" 20 FOR A “ 1 TO 10
30 PRINT Ay A*A ^0 NEYT A
50 END READY
Todo o programa foi mostrado na tela usando-se o comando L IS T . Agora você já faz uma idéia dos comandos usados nos computadores? Existem muitos comandos no seu D ISM A C D-8000. Veja o Manual de Basic para maiores detalhes.
6 7 8 9 10 3 4 4 9 16 25 36 'Í9 6't 81 10 0 READY
CORREÇÃO DE TEXTOS
Nós sempre tivemos a inclinação para cometer erros. Isto pode não ser muito ruim, se pudermos detetá-los e corrigí-los rapidamente.
A função de correção de textos do D lSM A C D-8000 permite ao usuário introduzir, corrigir e atualizar os seus programas da maneira mais eficiente possível.
Estas são algumas das funções de correção: L (listar)
I (inserção) C (troca) D (apaga)
Para conhecer todo o conjunto de instruções de correção veja o Manual de Basic, Capítulo 2.
Vamos voltar ao programa 3
READY
> LIST
10 PRINT "MEU PRIMEIRO PROGRAMA" 20 FOR A=1 TO 10
30 PRINT Ar A*A 40 NEXT A
50 END READY
Se por exemplo, você quiser modificar o texto da linha 30, de A *A para A *2. Tudo o que você tem que fazer é:
READY >EDIT 30
Pressione a tecla L, e toda a linha 30 será mostrada na tela.
30 PRINT Aí A*A
30™
Batendo na B A R R A DE ESPA Ç O , o cursor move-se para a direita. Vamos então mover o cursor para a 11a posição.
30 PRINT A» A*
Pressione agora a tecla C seguida pelo n° 2.
30 PRINT Aí A*2
Assim que você pressionar NEW LI NE , o computador gravará todas as mudanças feitas, voltando em seguida para o N ÍVEL DE COMANDO DIRETO .
30 PRINT Aí A*2
Agora se você executar (RUN) o programa, aparecerá como saída o valor de A multiplicado por 2, ao invés de A elevado ao quadrado. (A tem o valor de 1 a 10).
Vamos fazer mais uma listagem do programa 3.
READY >LIST
10 PRINT "MEU PRIMEIRO PROGRAMA" 20 FOR A=1 TO 10
30 PRINT Aí Ax<2 ^0 NEXT A
50 END READY
Vamos modificar um pouco a linha 10
>EDIT 10
1 0....
10 PRINT "m e u PRIMEIRO PROGRAMA “
10 ...
Digite 7 seguido de um toque na B A R R A DE ES P A Ç O S A tela ficará:
10 PRINT "MEU PRIMEIRO PROGRAMA" 10 PRINT "...
Pressione a tecla I seguida de **V> NEW LI NE (Jd significa um espaço)
A tela ficará:
10 PRINT "MEU PRIMEIRO PROGRAMA" 10 PRINT "x* MEU PRIMEIRO PROGRAMA" READY
Agora você já faz uma idéia do que seja alteração (EDIT) de textos. Imagine que você não quer que ninguém saiba que este é seu primeiro programa. Vamos então mudar novamente o programa.
READY
>EDIT 10 NEW LI NE 1 o ... L
10 PRINT *xx MEU PRIMEIRO PROGRAMA"
10 ... 1 3 B A R R A DE ESPAÇO S
10 PRINT “xx M E U _ 9 D 10 PRINT MEU! P R I M E I R O !._
Tudo o que está entre os pontos de exclamação será apagado (! PRIM EIRO!)
Pressione agora NEW LI NE
10 PRINT " X X m e u PRIMEIRO PROGRAMA" 10 PRINT "xx MEU! PRIMEIRO! PROGRAMA"
Você está novamente no nível de comando direto. Escreva L IS T 10 e pressione NEW UNE
>LIST 10
10 PRINT "** MEU P R O G R A M A “
Isto significa que quando você executar novamente o programa o cabeçalho será: "**M EU P R O G R A M A ” .
É conveniente para praticar a correção de textos,que você, antes de prosseguir com este Manual, vá ao Capítulo 2 do Manual de Basic e fique conhecendo as outras instruções de correção.
PROGRAMAÇÃO EM BASIC
aNeste capítulo nós vamos discutir como analisar um problema e como implementá-lo no Basic - nossa futura linguagem.
Antes de continuar, por favor estude o exemplo 1 da introdução.
Agora vamos tentar analisar os procedimentos requeridos para computar a área e o comprimento de um círculo de raio = R.
A área do círculo pode ser encontrada através da fórmula: A = rr R2. E o comprimento pela relação: C = 2 n R.
O diagrama da figura 1 é chamado de fluxograma. A direção do fluxo é indicada pelas setas.
Os pontos de início e fim indicam o início e fim do programa
respectivamente. As outras operações são: Entrada (IN PU T), saída (PRIN T), cálculos (A, C).
O fluxograma mostrado, pede uma entrada (R). Com R como raio, ele computa a área A e o comprimento C, mostrando então o Raio (PRIN T R), a área (PRIN T A) e o comprimento (PRIN T C).
Podemos agora implementar o problema já analisado no Basic, e introduzi- lo no computador.
(No exemplo abaixo, foi introduzido 5 e em seguida pressionado NEW LINE
10 INPUT "INTRODUZA O R A I O "* R 20 A = 3*1416 * R * R
30 C = 2 * 3.1416 * R TO PRINT *0 RAIO E Í"ÍR 50 PRINT "A AREA E Í"ÍA
6 0 P R IN T 11 O C O M P RIM E N T O E t H } C 7 0 END READY >RUN INTRODUZA 0 RAIO? 5 O RAIO E í 5 A AREA E í 78*54 0 COMPRIMENTO E í 31.416 READY
f
INÍCIO ^j
INPUT Rj
A = 3.1416 * R * R C = 2 * 3.1416 * Rj
PRirJT R!
/ PRINT A / / PRINT C / ^ FIM ^ FIG. 1 > %Se nós quisermos calcular com um novo raio, teremos que executar (RUN) o programa novamente, o que é muito inconveniente.
Vamos mudar um pouco o Fluxograma para resolver este problema. Como mostra agora o fluxograma, sempre que o computador termina de imprimir o valor de C, ele reinicia o processamento, esperando a entrada de um novo R.
Vamos novamente traduzir o fluxograma para a Basic.
10 IN P U T “INI R 0 D u Z A (D R AI (3 “ 5 R 20 A = 3.1416 * R * R
30 C ~ 2 * 3♦ 14:l.6 * R 40 PRINT “O RAIO E t"? R 50 PRINT "A AREA E t"? A
60 PRINT -O COMPRIMENTO E C 70 GOTO 10 80 END READY READY >RUN INTRDUZA O RAIO? 7 0 RAIO E í 7 A AREA E J 1.53 ♦ 938 O COMPRIMENTO E J 43.9824 INTRODUZ A O RAIO? 3.0 O RAIO E : 10 A AREA E í 31.4.16 O COMPRIMENTO E í 62.332 INTRODUZ A O RAIO'3
O computador vai repetir esta sequência até que você pressione B R EA K interrompendo assim a execução do programa.
Não é um bom costume em programação usar B R E A K para interromper o programa, pois é uma interrupção não natural.
Vamos então tentar alguma coisa mais lógica, modificando mais um pouco o fluxograma.
Não se assuste! Compare a Fig. 1, 2 e 3 e veja que na verdade as modificações são muito pequenas.
O programa já corrigido ficaria assim: 15 IF R = 0 THEN END
20 A = 3.1416 * R * R
30 C = 2 * 3*1416 * R 40 PRINT "0 RAIO E t"? R 50 PRINT "A AREA E l "? A
60 PRINT "O COMPRIMENTO E J■ í C 70 GOTO 10
Este programa recebe como entrada o valor de R e se R for igual ( = ) a zero o programa será encerrado, de outro modo ele calculará
a área e o comprimento do círculo, imprimindo o raio a área o comprimento
e voltando para a linha 10 para aguardar um novo R.
Também existem métodos mais "humanos" para se encerrar um programa, ou seja, outros que não sejam introduzir um código para encerramento. Vamos dar uma olhada no programa abaixo:
10 INPtJT “INTRODUZ. A 0 RAIO"? R 20 A = 3. 1416 * R * R
30 C = 2 * 3*1416 * R 4 0 PRINT ”0 RAIO E :" ? R 50 PRINT “A AREA E í* ? A
60 PRINT “0 COMPRIME NTO E J “ ? C
7 0 PRINT
80 PRINT ■ VOCE QUER CONTINUAR ? “
9 0 INPUT “INTRODUZA (SIM) OU (N A O ) 5 A$
FIG. 3
100 IF A$ = "SIM* GOTO 10 110 IF A$ ~ “N A O “ THEN END 120 GOTO 90
0 programa continua exatamente o mesmo,exceto por perguntar se você guer continuar ou não. Introduza SIM ou NÃO.
Não se preocupe com o símbolo $(cifrão) associado com a variável (A$) na linha 90. Este símbolo significa apenas gue o computador deve aceitar como entrada, caracteres ou símbolos ao invés de dígitos para cálculo. Este tipo (A$) de variável é chamado de alfanumérica (S TR IN G ); veja mais detalhes no seu manual de Basic.
Vamos novamente ao nosso fluxograma
e vamos também executar (RUN) o programa:
READY >RUN INTRODUZA 0 RAIO? 8 0 RAIO E í 8 A AREA E í 201,062 0 COMPRIMENTO E l 50,2656 DOCE QUER CONTINUAR ?
INTRODUZA (SIM) OU (N A O )? SIM INTRODUZA O RAIO? 12
O RAIO E : 12 A AREA E í 452,39
O COMPRIMENTO E í 75.3984 DOCE QUER CONTINUAR ?
INTRODUZA (SIM) OU (NAO)? N INTRODUZA (SIM) OU (NAO)? NAO READY
Você já viu que uma frase pode melhorar muito a capacidade do seu programa. Existem muitas frases poderosas no seu manual de Basic. Não deixe de estudá-las.
MAIS PROGRAMACAO
*H
No último capítulo, nós introduzimos conceitos básicos sobre programação de computadores. Agora estamos prontos a entrar em áreas mais
avançadas e mais úteis.
Você já jogou alguma coisa com um computador?
Você sabe como o computador embaralha as cartas para jogar vinte e um ou como ele lança os dados num jogo de crepe?
No Dismac D-8Ó00 existe uma função - RND(N) - que gera números aleatórios. (N é o limite superior dos números a serem gerados.
Veja FUN ÇÕ ES no seu manual de B A S IC ).
Com a função RND(N), o computador pode,automática e aleatoriamente, embaralhar cartas, lançar dados, etc.
Além disso, para garantir que os números gerados são aleatórios após cada rodada, a função RANDOM pode ser usada.
EXEM PLO :
10 RANDOM
20 N = RND (6) J PRIN7 30 PRINI H A JOGADA E í" ?N
40 INPUT "DOCE QUER CONTINUAR < S / N > “? Aí 50 IF Aí = "S" OR Aí == "SIM" GOTO 20 60 IF Aí = "N “ OR Aí “ "N A O " THEN END 70 GOTO 40
READY >RUN
A JOGADA E : 4
DOCE QUER CONTINUAR (S/N>? SIM A JOGADA E t 3
DOCE QUER CONTINUAR <S/N)? S A JOGADA E t 6
DOCE QUER CONTINUAR <S/N>? NN DOCE QUER CONTINUAR <S/N>? N READY
0 fluxograma para este programa pode ser: O programa vai gerar um número aleatório entre 1 e 6 (simulando as faces
de um dado), imprime o número, em seguida pergunta se você quer continuar ou não. Se você introduz SIM ou S o computador repete
0 processo, se você introduz NÃO ou N o programa se encerra. Entretanto se você introduzir qualquer coisa diferente destas palavras, o computador continuará a fazer a pergunta ''...C O N TIN U A R ?''
Além da função RND(N) existem muitas outras que vão ajudá-lo a resolver qualquer tipo de problema.
Mais um exemplo:
10 FOR A = 1 TO 10 20 PRINT A f SÜR (A) 30 NEXI A
-TO END
Este programa mostra todas as raízes quadradas de 1 até 10 (FOR A = 1 TO 10). O valor inicial de A é 1; em seguida na linha 20, são impressos 1 e raiz quadrada de 1. A é incrementado de 1 na linha 30, e o
computador confere se A = 10; se não é, volta à linha 10. A sequência continua até que A seja igual a 10.
Vamos agora ver um pouco de matrizes e tabelas; esta é uma seção muito interessante, não deixe de lê-la.
Suponha que nós temos um grupo de 24 números. 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330.
Existem muitas maneiras de você se referir a um certo número desta tabela. Por exemplo, podemos dizer que 270 é o 18° número, podemos dizer também que é o 7o da linha 2.
No caso do computador podemos associar uma variável a cada um dos números:
10 Al - 100 20 A 2 = 110 30 A 3 * 120 40 A 4 - 130
E desta maneira podemos facilmente encontrar qualquer deles. Mas se tivermos muitos números nós teremos que mudar de variável a cada
10 (AO até A9).
A melhor maneira de manipular um grupo de números é usando tabelas (matrizes). Para esses 24 números podemos usar uma matriz
unidimensional.
10 CLEAR 200 í REM APAGUE E RESERVE 200 BYTES DE MEMÓRIA
20 DIM A (23) J REM DIMENSIONE UMA MATRIZ DE 24 <0 A 23) ELEMENTOS
No programa nós teremos:
10 A ( 0 ) = 100 20 ACL ) “ 110 30 A ( 2 ) = 120
Para localizar o número 270 na nossa lista, precisamos fazer apenas:
50 PRINT A (17) I REM IMPRIMA O DÉCIMO OITAVO ELEMENTO DA MATRIZ
100 A (17) = A (17) + 100 í REM SOME 1 0 0 AO DÉCIMO OITAVO ELEMENTO
Bastante simples, não é?
Se nós dividimos estes números em 3 grupos de 8 elementos cada um, poderemos usar uma matriz bidimensional.
20 DIM B(2r7) : REM B = (3 X 8) MATRIZ DE 2 DIMENSÕES
Então os números ficam colocados:
C O LU N A S 0 1 2 3 4 5 6 7 LIN H A 0 100 110 120 130 140 150 160 170 LIN H A 1 180 190 200 210 220 230 240 250 LIN H A 2 260 270 280 290 300 310 320 330 Agora se quisermos nos referir ao elemento 270:
10 PRINT B < 2»1 > t REM IMPRIMA 0 ELEMENTO DA LINHA 2 COLUNA 1 20 F = B ( 2 f1) + 10 í REM SOME 10 AO ELEMENTO DA LINHA 2 COLUNA 1
Da mesma maneira se quisermos o elemento 160:
10 PRINT B (0 y 6) i REM IMPRIMA 0 ELEMENTO DA LINHA 0 COLUNA 6
Vamos agrupar os nossos elementos de uma outra maneira
10 DIM E (3 >1? 2) : REM MATRIZ DE 24 ELEMENTOS E = ( 4 X 2 X 3 )
C O LU N A S 0 1 2 CO LU N A S 0 1 2 LIN H A 0 100 110 120 LIN H A 0 160 170 180 LIN H A 1 130 140 150 LINHA 1 190 200 210 BLOCO 0 BLOCO 1 C O LU N A S 0 1 2 C O LU N A S 0 1 2 LINHA 0 220 230 240 LIN H A 0 280 290 300 LINHA 1 250 260 270 LIN H A 1 310 320 330 BLOCO 2 BLOCO 3 Se nós ainda quisermos nos referir ao elemento 270:
100 PRINT E (2r1?2) t REM IMPRIMA 0 ELEMENTO DO BLOCO 2
110 REM LINHA 1 COLUNA 2
Se quisermos o elemento 200:
120 PRINT ECLAl.l)
Estes são os conceitos básicos de matrizes, você pode agora fazer seu próprio programa:
D I S M A C I N D U S T R I A L S . A .
M A N A U S A M Rua Icá, 100 - Fone: 232-0562 - Distrito Industrial • S Ã O P A U L O S P A v. Marquês de São V icente, 600 - Fone: 826-7111 • C U R I T I B A P R Rua Alteres Poli, 294 - Fone: 224-8182 • P O R T O A L E G R E R S Rua Voluntários da Pá tria, 09 - S / 6 3 - Fone: 24-7611 • R I O D E J A N E I R O R J Rua Teófilo Otoni, 52 - 13° andar - Fone: 233-9283
P R O D U Z I D O N A Z O N A F R A N C A D E M A N A U S