Sei sulla pagina 1di 126

PROGRAMAS PARA M,·SX (epara voce tambsrn)

~ ~'I

.. ,I,. ... J

. '

I.. 'y

. .

,.. ,M _." •

.._ 'i',~.

NEDITORA .,

ALEPH'

, ,

'NEditora

Aleph

Para receber gratuitamente nosso boletim intorrnatfvo com dicas, novidades, etc .... pt;lra seu sistema MSX, envie seus dados para:

'ALEPH P:A.P, Caixa' Postal 20.707

CEP 01498 - Sao Paulo - SP

PROGRAMAS PARA MSX (e para, voce, tarnbem)

Calaboraram nos Programas:

Nilson Martello

Lucio P. Carvalho Lima Pierluigi Piazzi

Alexandre Moreira N ascimento Lucio P .de Carvalho Lima

Luiz Tarclsio de Carvalho Junior Michel Friedhofer

Pierluigi Piazzi

Coordenacao :

Colaboraram nos text as:

, N'DlrDRA ,A,LEPH

©, 1989 - EDITORA ALEPH

Todo 0 direito de reproducao de qualquer texto ou programa deste liVIO e estrltamente reservado a Editor a Aleph.

Expediente:

Coordenacao Editorial:

Coordenacao didatica:

Prcducao Editorial:

Editoracao:

Arte e capa:

Pierluigi Piazzi Betty Fromer Piazzi Rosa Kogan Fromer Henrique de Figueredo Luz Ana Lucia Antico

I '

~.- :r '~." ~ t: ,.~.~'I

• I ' .. " .... ,~

. ,I ' :,1

I. ",~ '~ I

---- .... ALEPH

'Ne:IJtDrIJ A./eph,

Publicacies e Assessorja Pedagigtca Ltde Av. Dr _ Lu 1,5 Mig I i ano~,11110-'Corir. 31l1Ja03' I 05711 'Sao Paulo 5P - Tel ;','011)843-3202

, .

~ ~. I I

• I

"\ .;

..

'.," '. •. ::"Ij."

. ,

Cados de CatalClgacao na P,ublicacao (CIP)I Internacional (Camara Brasil-eir,a do Livro, SP, Brasil')

. I

Martello, Nilson, 1936-

Progra.mas pal"a seu MSX e para voce tambem I Ni.lson Martello. -- Sao Paulo: Aleph, 1990.

1. MSX (Computadores) - Progrt\ma<;ao I. Titul.o.

190-0445

CDD-001.fi42

. ,

Indices para ca.t8'lego ,:.sistematjco:

1 ~ MSX : Computadores; Prog,p,ama<,;ao : Processamento de dados 001 .642

SUMARIO

CAPfTULO -1 PARABOLAS Nome: PARAS.BAS Autor: Pierluigi Piazzi

Data: 1989

Memoria: 1.080 bytes Comentarios: auto-explicativo

CAP1TULO-2 HOMEMNO ESPA<;O r Nome: SATELIT2.BAS

Autor: Lutz Tarclsio de Carvalho Junior

Data: 19,89

Memoria ocupada: 1.925 bytes

Tema.Janca satelite com velocidade estipulada Cornentarios: pede levar ate 95 s. para. radar

CAPITULO-3 FACES DALUA Nome: FDLUA.BAS Autor: Alexandre Moreira Nascimento

Data: 1989

Memoria Ocupada: 1.460 bytes Terna: mostra as tases da Lua

Cornantarlos: sistema Sol-Terra-Lua rnostrando cada lase (a 45 graus) aa S9' digitar a barra de espaco

. 15

17

21 . 23

27

28

CAPiTULO -4 A FUNDA DE DAVID Nome: ORBELlP.BAS

Autor: t.ulz Tarcfslo de Carv'alho Junior Data: 19-89

Memoria Ocupada: 715 bytes Tema: Lei de Kepler

· 31 '. 34

Comentarlos: Leva ate 80 s. para rodar a lmaqem. Auto-exptlcatlvo para quem conhece as Leis de Kepler, Caso contrarlo, leia 0 texto.

CAPfTULO~5 a LEAo,QUE FAZIA BEBE! 3S

Norna; HELGEO.BAS 38

Autor: Pieduigi Plazzl

Data: 1989

Mel116ria ocupada: 467 bytes

Terna: dernonstra 0 aparente rnovlmento retr6grado Ccmentarlcs: gra:fico's simples maseficientes

CAPfTULO-6 ALUNIZADOR .. I

39

Name: LUNA9. BAS

Autor: Nilson D. Martella

Data; .Julho de 19.87/1990 Mem6ria ocupada: 9.650 bytes

41

Tema: Jogo ~ alunlzador

Cornentarlos: para ccntrotar a nave, introduza sempre tres dfgj· tos. A aceleracao maxima e 100 B a deriva e 50 (positiva OU negativa) .3

CAP1TULQ-7 MEM6RIAS DE IN'FANCIA

;, .

· 49

· 51

Nome:LOSTSPC.BAS Autor: Mauricio Grassmann Martello

Data: dezembro 1989

Memoria Ocupada: 7.898 bytes

Tema: apresentacso de Perdidos no Espaco

Ocrnentarlcs: graficos e rnuslca atrnllarea ao seriado de TV. Dernonstracao dos recursos do MSX.

CAPiTULO-8 A SORTE DE CESAR . 57

CAPfTULO-9 UMA COISA LEVA A OUTRA ...

Nome: CAOS.TXT Autor: Lucio P.de' Carvalho Lima

Data: Janeiro de 1990

Memoria ocupada:

Terna: Matematica do Caos

CAPiTULO-10 A PENEIRA DE ERAT6sTHENES Nome': PRIMOS. BAS

Autor: Pierluigi Piazzi e Lucio P. Carvalho Lima

Data: janeiro de 1990

Memoria Ocupada: 179 bytes

Tama: Peneira de Erat6sthenes em versao para MSX Ccrnentarios: de inlcio 0 processo e lento, mas val, gradualmente, sa acelerando. Com a modificac;ao de poueas llnhas, arnpllaS8 a quantidade de nurneros primos ldentltlcados ate 0 limite de capacldade de mernorta do MSX

CAPITULO-I1 MAURICIO DE NASSAU, DESCARTES E 0 P~NDU-

LO DE FOUCAULT 71

NOME: ONDA AMORTEGIDA 74

• . 63 66

67 69

AUTO:RES: Pierluigi Piazzi e Lucio P. Carvalho Lima DATA: dezernbro de 1989 e janeiro de 1990 Memori:a Ocupada: 756 bytes

Tema: amortecimento de enda. Gra.nco

Comentartos: a sub-retina criada par Piazzi faz surgir este capttulo de Lucio P. Carvalho Lima. com modiificaooes suqerldas ao longo do texto para mellnor vlsuatizacao.

NOME: REFOND.BAS AUTOR: Lucio 'P. Carvalho Lima

DATA: Janeiro de 1990

MEM6RIA OCUPADA: 778 bytes

TEMA: retorco de onoa.oranco

COMENTARIOS: a oscilacao arnorteclda leva, naturalrnente, a adela oposta de retorco de onda, de consequsriclas per vezes danosas,

75

CAPtTULO-12 GRAFrcos NOME:GRAF-L1N.BAS AUTOR:Lucio P'.Carvalho Lima

Data: 1989

Mem6ria Ocupada: 5.463 BYTES Tema: desenha graficos Ide linha

Comentarlos: programa versatll, rnodulavel, integralmente sxplicado no tsxto que antecede

NOME:GRAF-BAR.BAS . 87

77 83

AUTOR: t.ucto P.Carvalho 'Lima Data: 1989

Mem6riia Ocupada: 3.239 BYTES

Tema: gera grafi,cos de barras, inclusive aos pares Cornentarios: leia 0 texto, am especial sa pretender usar ambas as retinas, pets sao poucas as rncotncacoes. Necessita rotlna PAINTER, se desejar diferenci.ar as barras (ccnsulte .. + 50 Dicas; Editor,a Aleph).

CAPfTULO-13 0 C6DIGO DE SAMUEL 91

NOME: CODMORSE.BAS e ALFAMORSE.BAS 94

AUTOR: Michel Friedhofe;r

DATA: novembro 1'98'9

ME.M6RIA. OCUPADA:de 1.597 a 1 .. 680 bytes TEMA: treinador de c6digo morse

Oomentarlosrso acslta tetras; a velocidade e lenta; pode sortear palavras BASlq.

CApfTULO~14 0 SALVADOR D,A pATRIA 97

Nome: COPII.BAS Autor: Mathias August Gruber .

Data: Novernbro de 1989

Mem6ria Ocupada: 7,,300 bytes

Terna: Transfere progr.amas blnarlos de tita/dlsquete Cornentarlo: Trate seu datacorder como gravador comum; 32 Kbytes, de rnernorla RAM - rnfnimo I

99

'CAPtTULO~15 A CONFRARIA DO FERRO DE SOLDAR '. IDS

NOME: CHIPDE's.BAS '. 106

AUrOR: Mathias A. Gruber

OAT A: Agosto de 1989

Memoria, ocupada: 5.329 bytes

Tama: desenha urn circuito integrado com identiticacao de suas conexoes: arqulva as intormacoes

Cornentario: extremamente util para 0 experimentador em eletrenics; auto-expttcativo

CAPfTULO-16 A MANSAo DE SHERLOCK HOLMES . 113

Nome:DErtTIVE.BAS Adaptado por: Alexandre Moreira Nasclrnento

Data: original de 1985

Mem6ria ocupada: 12.960 byte-s Tema: [ogo. aventura

Gomentarios: anote as dados. voc~ tera tacltltada a sua deduCao ... Para sa "fivrar" dos comandos dados durante 0 programa (teetas de fun«;-ao e maiusculas}, a rnals pratlco e desligar a. rnlcrot

,. '115

NOTA DO EDITOR

A humanidade pode ser dividida em 2 categorlas. Alias qualquer coisa (humanidade inclusive) pede sempre ser dividida em duas categorias. No caso particular da humanidade poderfamos dividi-Ia em "hornens e mulheres" ou "[ovens e velhos" ou "pobres e rices" J etc.

Pessoalmente acho que toda divisao sempre traz alguma conotacao preconceituosa mas, nem porisso deixo de dividir a humanldade segundo 0 criterio que me e mais significative: "pessoas que gostam de pensar e pessoas que nao gostam de pensar",

Quando classifieo alguern como uma pessoa qu.e "gosta de pensar" t isso significa que ele obtem PRAZER pelo fato de estar usando seu cerebro, Esse prazer faz com que 0 cere bro seja usado 0 maximo posstvel e esta pessoa normalmente (mas nao necessariamente) acaba desenvolvendo urn' nfvel superior de inteligencia,

Isso implica num conceito ate revolucionario: a inteligencia e, dentro de certos limites, uma habilidade adquirida. Alem dis so, nao e adquirida atraves de penosas horas de estudo mas sim atraves do lazer!

As pessoas que nao gostam depensar, acabam desenvolvendo um ntvel intelectual nao diferenciado e se auto-Iimitam em suas atividades, reforcando urn cfrculo vicioso e "emburrecendo" cada vez maisl Sao as pessoas que so leern por obrigaeao (e nao por prazer), se divertem assistindo TV 'ou vtdeos, detestam programar urn computador e 56 0 usam como video-game. Se.prufissfonalmente, sao obrigadas a usar urn micro so usam pregramas "user friendly" e encaram 0 computador como uma "caixa-preta" eujo funcionamento interne e e deve contlnuar sendo um grande misterio.

11

Para atender a milhares de usuarios que usarn seu MSX como urn estfrnulo, entregamos an Martello a tarefa de organizar esta coletanea de prograrnas. 0 .Juftware que visamos e 0 do cerebra dos leitores: 0 que fica na memoria RAM do micro e que esta list ado .nestas paginas e urn simples pretexto.

Existe urn ditado que pode ser aplicado aos jogadores de video-game e usuaries "executives" de micros caros: "Toda vez que se fabricaalgn que pode ser usado ate por urn idiota, provavelrnente 56 vai ser usado pOT idiotas!" .

Para fugir desta "ldiotizacao" crescente da humanidade e que 0 Martello e os outros colaboradores criararn 0 material deste livro: se estamos perdendo a briga do ponto de vista quantitativo.ino qualitative estamos, n6s e nossos leitores, ganhando de longer

Pierluigi Piazzi Editor

_I, ..

t.

12

I,

PRIMElRAS PALA VRAS

Colecao de Programas para MSX ( e para voce tambern) podera parecer urn absurdo OU, par outro cnfoque uma redundancia.

Creio que nao seja,

Afinal das contas, a p:r6pria Editora Aleph ja publicou dois volumes de'Colecao de Programas para MSX"; "100 Dicas" e " + 50 Dicas" trazem inumeras retinas e programas, cada qual atendendo a uma necessidade diversa do usuario (va somando, de cabeca, a quantos programas andamos).Se lembrarmos 0 "Programacao Avancada" e "Jogos de Habilidade" estarei me arriscando a fazer a resenha do punhado de valiosas obras ja editadas pela Aleph, e a perder de vista minha apresentacao.

Programas que estejam voltados para as necessidades do usuario - estes, sao rnais raros ! Umexemplo ttpico seria 0 "Astrologia no MSX'" que nan se encerra em si pr6prio - au nos micros MSX - mas volta-se para uma eventual necessidade pessoal do leitor ! E neste sentido que, oferecido um leque de programas para constituir uma nova colecao, busquei focalizar uma linha de pensamento urn tanto diferente: como usaf 0 MSX voltado para a pessoa do leiter, seja em suas necessidades de passu-tempo, exercicios matematicos ou de geornetria, Ffsica, interesse hist6rico au de cultura geral.

Para tanto contei com uma colaboracao fantastica ! J ovens de 13 a 70 anos - propositalmente as idades foram omitidas: Cultura Inteligencia e Competencia nao tern idade - comparecem com programas, OU programas e textos. Meu trabalho ~ diminuido pelo interesse que as proprias retinas ou programas estimulam - foialinhavar autores tao diferentes numa linha coesa.

13

Nilson Meattel1o·

Este Iivro podera ser usado de duas furmas - e 0 proprio Indice assim 0 estirnula: como Ieitura gostosa e prograrnas ilustrativos; ou apenas como .programas, Para tanto 0 Indice remete a tftulos provocantes dos capftulos e, ao mesmo tempo, diretamems aos programasque sao acompanhados de uma ficha esclarecedora.

Tambern ,6 desejo de todos oscolaboradores que voce" leitor, deixe urn computador funcionar como porta para outras realidades - tapete magico de viagens fantasticas - esumulo a relembrar 0 mundo extraordinarto em Glue vivemos.

..

" I

. ,

..

14

CAPI"TULO - 1 PARAB'OLAS

Muitos seculos atras, no Japao, contava-se a seguinte parabola:

Urn hsibil empregador de homens usara

o prudente, 0 bravo, 0 cobicoso e 0 burro ..

Pois 0 prudente tera prazer em aplicar seu media, 0 bravo sua coragem em actio, o cobicoso sera rapido em tirar vantagens eo burro nao temera a morte.

Esta parabola aplicava-se - no texto em que foi Imortalizada.zt Arte da Guerra -. a escolha de urn general de confianca do imperador .. E com .. preende-se, mais rapidamente, a sabedoria do conselho.

Como parabola, entretanto, sua aplica'iao vai alem de um proposito imediato e se aplicara a qualquer chefe ou dirigente de Rossa. sociedade. Mais ainda, como boa parabola, aplica-se a mim ou a voce. Como, na realidade, cada urn de n6s exibe algum grau daquelas qualidades (ate mesmo a burrice em certas ocasioes) nao faz nern urn POllCO ma.I parar e pensar naquelas antigas palavras orientals.

Mas parabola tambern e uma figura de geometria, E todos nos, no curso ginasial, jA fomos traumatizados pelo estudo graflco do trinomio do segundo grau

que trata de arco de parabolas.

Ate af tudo bern. Mas a concavidade, sera para cima? Para baixo?

Mais deslocada para a direita ou para a esquerda? Intercepta 0 eixo x1' E se assim for, por quantas vezes':

Seria 6timo se tivessernos 0 capricho daquela Icirinha-puxa-sacode-professor, que traziaum calhamaco de curvas tracadas em papel milimetrado (a pestinha dava-se ao luxo de, tracar com diferentes coresl), enquanto n6s suavamos noite adentro em cirna da escrivaninha,

,

.Que tal deixarmos a trabalheira para 0 MSX?

o programa listado adiante neste capftulo faz exatamente isto: de infcio fixa urn valor para B e C, fazendo variar apenas A. Depots faz variar

o valor de C e. par fim, 0 de ''8. '.' '

.B=0 c:::;::;e

. "

, ,

. '

,

,l

, , ,

/

./;<'

// ...

-' //

.~ .....

r :»:

" •. .'- ....

, ...

"\"" .. ,

.. ~... " ....... . ' . . '.

'. ' .

A==-.07 A=-.,03 A== .,01 A:::: ~0S:

, .

.. .

.. .

. " ."'

. ' ,. ,

, . .

Y.;;;;;A"·x;;! +B:><:+C

...

-, Mesmo que voce nunca tenha estudado analiticamente 0 trinomio de segundo grau, apos as duas apresentacoes ja sera capaz de responder as seguintes perguntas:

•. Qual, a Influencia do sinal de A? .

.... I.,"

, 'r: l, • Oual a Influencia do valor absolute de A?

• 0 que representa C?

d H t' - •.•. Quai o efeito do valor deB?

:".b ": ~:n E'ste programa, de autoria de 'Pierluigi Pi3zzi, e 0' que ~u~hanio, de eficiente: breve; claro, bonito e bern cuidadol

Dlgite-o com cuidado, grave-n em fita cassete ou disquete e rode-o.

FICHA DE PROGRAMA Nome: PARAB.BAS

Autor: Pi,erluigi Piazzi

Data: r989

Mem6ria: 1.080 bytes Comentartos: .auto-explicativo

S0 ~ PARAB.BAS - PIERLUIGI PIAZ21 100 PLAyll80M~000n

110 SCREtN 2=OPENUBRP~" AS H1 120 FOR K=i TO 2

1 ::10 GOSUB 600

140 REM VARIANDO A

150 PRESET(2~2)=PRINTU1~~B=0u 160 PRESET(2r10)=PRINT#1~"C~0" 170 FOR A=-.01 TO .09 STrr _04 180 GOSUB cl90

. 190 PRESET(2r120+200*A):PRINTM1."A~";A 200 FOR Xtr~- j. 00' TO +100

210 y= A*XA2+0*X+0

~~~~0 GOSU~1 6,~j-0

~~30 NEXT x .. A

240 REM VARIANDO C 250 CLS:GOSUB 600

260 rRESET(2r2):PRINT"i~UA~0.03" 270 PRESET(2,i~)~PRrNr"ir"B=0" 280 FOR C=-40 TO 20 STEP 20

r.:.~90 C:)OSUB 690

300 PRESET(2.i2i+C/2)~PRINTH1r"C=u;C 310 FOR X=-100 TO +100

320 y~ h03*XA2+0*X+C

::i:30 BOHt.H3 6~:;0

a40 NEXT X.C ,

350 REM VARIANCO B 360 CLS:B08Urr 600

370 PRESET(2.2)~PRINT~ir"A~0.03" 380 PRESETC2~i0)CPRINTHi¥"C=0H 390 FOR B~-8 TO 1 STEP i

400 130SUB 690

410 PRESET (~.~ I' ;1.;';!~~+fJ*B) ~ pr~ INTtH ,f I'fB=::"; B 420 FOR X~-100 TO +100

430 y~ .03*XA2+8*X+0

4 A ~~ 0 () !:>l.J B I.) ~)0

4~'j~~ NEXT X r B

41.>0 CLS; N~~XT K

470 CLS~GOSU8 600

480 A:::: (INT (RND( 1) *6) --:3) 1100

490 PRESET(2.10)=PRINTU1,"A=";A 500 B=(INT(RNOC1)*3)-2)

510 PRESET(2F20):PRINT"1I'UB~~;B 520 C=(INTCRND(i)*40)-20)

17

~,·.~~".'0 l~bl~~E:·r·'?·?0)~F)I~·I'N·1·~j. ~~~n~C

-("P " ••• "",),-_. '\ t .. r ,.) - M!1!, •• __ H.,:II'~"" i.j

540 FOR X=-100 TO +100 !:.:j ::; 0 Y::;: A* XI'· ~:l·f' B :'1(. X+ C

5b0 D()SUI36~:j·0

tI70 NEXT X

~:H30 BOlO 470

~.;j90 END

600 LINE (0196)-C253r~6) 610 LINE (12Br0)-C128.i91) 6;20 LIN!::: (0 .. ") .... ( ~?~:;_;~) r :t 9 i ) r r B

('~:J0 PI~'E!5ET (j.i~,0 y t80) :t PR INTJ4 if nY;r.A+BH+C 640 RETUI?N

6~;0 Xl";;X+ 1 ;?l]

6/,;0 YT::~96- .. y

·670 PSET(.xT~Yl) 6B0 RETURN

690 N$=STR$«TIME/2)HOD40+20) 700 PLAyNLUNh"*-NQ,

710 IF PLAY(0) THEN 710 720 RETUR'N

18

Comen ta,rios

Depots das duas apresentacoes 0 prograrna comeca a radar com valores aleatorios como voce ja observou. E claro que; quando 0 valor sorteado para A foi nulo, a equaeac transformou-se em de primeiro grau e a curva tornou-se uma reta,

Na linha 100 0 autor prepara 0 canal de som para urn agradavel "envelope" de sino.

A 110 chama a tela 2 e abre-se urn. arquivo (#1) para ser posstvel nela escrever,

Na linha 120 abre .. se urn elo de repeticao de 2 vezes, Obviarnente voce: podera altera-la para quanta quiser. Alias esta apresentacao inicial pod era ser suprimida, substituindo-se d Iinha por

120 GOTO 500

A linha 130 chama a sub-retina de desenho doseixos e da moldura (750-800).

As linhas 140/240 fixam os valores de Bee em zero, fazendo variar A de -0,07 a + 0,09,. Chamama sub-retina 860 (que emite diferentes notas musicais)e a sub ... rotina de 810-850, que plota os pontes, assumindo as coordenadas(128,96) como origem do sistema de eixos,

As linhas 25Q a 360 fixam 0 valor de A em 0,03 0 de B era 0' e C varia de -40 a: + 20, voltando a charnar as mesmas sub-retinas (e para isso que elas existem; para tornar 0 programa mais econnmico).

As Iinhas 370 a 480 variamo valor de B entre -3 a + 1, fixando A e C em 0,.03e zero, respectivamentc, A linha 490 encerra 0 laco de repeticoes da dernonstr acao.

As linhas de 500 a 730 entram. em "laco infinite", sorteando valores .30 "acaso" (mais adiante vamos discutir isto 110 capitulo A Sorte de Cesar).

Voce podera, perfeitamente, modifiear as linhas 530,.560 e 590 por I NPUT'"'Entre' com 0 valor de ... "tete fazendo com que 0 programs desenhe a parabola corn as, valores pre deterrniuados por voce mesmo (011 errcomendades ). Usando 0 programa COPIA GRAFICA, apresentadoern 100 Dicas para MS~ voce tera urn excelente resultado final.

19

~

ITULO-2

H'OMEM NO ESPA<';O !

A manchete espantou 0 mundo] Urn cao - mais exatarnente uma cadela, a Lalka ~ tinha sido lancada ao Espaco pelos russos!

que horror! Aqueles comunistas maldosos nao hesitavam em mandar uma pobre cadela para morrer asfixiada no espacol Ell bern tinha avisado: nao possuem entranhas, nem principios, nern moral! (Naqueles tempos a Guerra Fda estava no auge. Propaganda e contra-propaganda cruzavam 0 eter, pelas ondas de radio; trocavam metros quadrados de papel e tinta no noticiario dos jornais, nos panfletos, nos Iivros.).

E agora, esta: um Homem no Espacol

Os especialistas norteamericanos arrancavam os cabelos enquanto, urn ap6s o Dutro, seus foguetesexplodiam ria ramps de lancarnento f

Urn Romero no Espaco e 0 nome de Yuri Gagarin estava imortah-

zado na Historia da Especie Humana neste planeta. .

Pouco depois, os americanos conseguiriam dominar a tecnotogia dos foguetes e, com mimisculas naves - as Mercury ~ tambem enviavam seres

humanos ao Espaeo. .

Que tern isto a ver com 0 capitulo I?! Sejamos frances: tais naves, sovieticas ou americanas, nao paSSaVElID de projeteis com trajet6ria bahsticat sobre a qual 0 tripulante tinha tanto dominic qu~nto a pobre Laikal

Colocado de outra forma: as naves tracavam urn arco de parabola tal como urn projetil de canhao ..

CABRUMMMMMM! - e, em vez de -uma explosao dentro do cano do canhao, uma serie quase infinita de explosoes. nos motores do foguete que elevavam a mimiscula cabina, com seus circuitos de sobrevivencia e seu passive piloto, numa seccao de parabola ate ".1a em clma" e, apos, de volta ateaqui em baixo.

.' ; I~ , .

21

r .

o program a a seguir .~ de Luiz Tarcfsio Carvalho Junior -emuito .interessante, apesar de urn problem.a muito serio: dependendo des valores, pode levar ate 95 segundos para fazer todos os calculos, ate a dcmonstracao grafica,

Pausa para conversarmos:

Vamos ser honestos: urn cornputador que tern de controlar urn v60 especial em tempo real, corrigindo a cada fra~ao de segundo qualquer desvio na rota (0 mesmo vale para urn equipamento controlando urn Boeing 737 em aterrissagem em voo cego!), tern de ser ultra-rapidol

Urn computador que controla urn sistema de agencias bancarias simultaneamente tern de ser mu:ito rapido, Com urn acumulo de chamadas, a espera pode sec estender por 5~ 10, 20 segundos a cada operacao, irritando o c1iente e somando horas ao dia, em alguns casos com prejufzos financeiros,

No caso de microcornputadores de uso domestico - au rnesmo de firmas comerciais - uma demora de minute ou minuto e meio, ainda que repetida imimeras vezes ao dia, POllCO representara no resultado final.

Ainda assim, hti risadinhas abafadas, comentarios gozador es, uma verdadeira campanha .de desmerecimento, com maquinas de menor velocidade.

Eu havia proposto honestidade neste nosso papo: quai a vantagem no resultado final, de urn micro superveloz, turbinado.com respostas quase imediatas, quando cadaum dos Iuncionarios da firma perde, inumeras vezes ao dia, cinco, dez au quinze minutos tentando conseguir urna liga~ao telef()nica? Dais, tres au quinze dias numa comunicacao pelo corr eio? Horas a fio em filas infindaveis para 0 registro de documentos, r etirada de formularios, almoco e ate ~ as vezes em situacoes horrorcsasl - para usar 0 banheiro??? !I!

Vamos ser coerentes: maquinas muito velozes tern sua aplicaqao insubstitutvel, mas sejamos sensatos em exigi! tal velocidade em situacoes obviasl

Em nosso caso, em certas situacoes, os mais de tres milhoes e meio de ciclos por segundo, do "relogio' do MSX revelam-se "Ientos" na resolu~ao de calculus. Assim, 95 segundos podem transcorrer antes que se formem os graficos.

Sugestao; saiapara tamar urn gole d'agua, urn cafezinho, acenda um cigarro - se for fumante - Mexa 0 Corpo; 0 que e altarnente recorncndavel ap6s a imobilizacao, horas a fio, diante do monitor.

Fim do comentario paralelo

22

o autor ainda comenta:

Toda orbita e uma queda (par vezes inter romp ida: cabl6ft no chao I)e vice-versa.

Por isso, se voce escolher uma velocldade inferior a Vc (velocidade de orbits circular), 0 sate lite sera delicadarnente Iocalizado na superftcie do planeta. Entenda, no entanto, a mensagern "subliminar": voce nao obedeceu as regras da fisica e e, mclhor sair de baixo que at vern coisal ...

UI, por sua vez, e vclocidade de fuga: sera criada uma 6rbita parab6lica com respeito ao planetae a sonda se tornara sate lite de outro corpo celeste ou se "perdera no espaco" como urn corneta,s6 reaparecendo ap6s alguns anos (e nao acr edito que voce tenha pacieneia de ficar esperando alguns anos, na frente do MSXt. para ver 0' que ocorreral).

Par veze s, ainda, sera percebido urn "segundo" satel ite aparecendo no canto superior da tela. Na verdade nao e urn segundo satelite, porern uma especie de "espe lho' do sprite gerado. Claro que 0 autor poderia ter corrigido este pequeno defeito. Mas ha mementos em que, tendo-se conseguido atingir OS objetivos principais, as autores abandonarn as pequenos detalhes para "amanha ... amanha. .. amanha" ....

o resultado final do programa SATELITE mais do que vale - tal como outro, mais adiante, - suas minimas deficienciasl

FICHA DO PROGRAMA Nome: SATELlT2.BAS

Autor: Lulz Tarctslo de Carvalho JUnlo·r Data: 1989

Mem6rla ocupada: 1.925 bytes

Tema: lanca satelite com velocidade esUpulada Oomentarlos: pode levar ate 95 s. pa.ra radar

100 REM J( .. **iI:.;)(.**** o'r~B ITAS *********. :U .: 0 REM

120 REM LUIZ TARCiSIO DE CARVALHO JR 130 REM

140 REM *************************** 150 REM COR RECIO DE TELA

j.60 CC>:oi .. ~~

170 REM

j.80 REM

1 <J0 I~'EM

200 KEYOFF:COLOR i5rl~i:WIDTH 39=

SCREEN 0=DIM X(1000)fY(1000) 210 H=5.97E+24=RT~6370000M

22'0 PI ::::4*ATN ( 1 )

~~30 G"ll6 .. 67E'-i 1.

23

240 LOCATE 6:PRINTH6RBITAS EM TORNO DA T ERRAfI'

250 ON KEY DOSUe ;.r,780

260 LOCATE 0,3:INPUTuQual a di~tincia do

.at~litE ao centFPda Te~ra CRAIOS TERRE f:)TI~EEl) u;Q:1F-d <~<j_ THEN HEEP::t~UN

~:.~70 R ~:'R T ~.Q : CT=::Q+<·;.?0".· i 0

280 VC=~QR(G*H/R)RVF=VC*SQR(2) 290 VC~INT(VC*100+~5)/100

300 VF=INT(VF*i00+N5)/100

310 LOCATE 0T6:PRINTuV~ cU~VC~Hm/sH ~320 LOCATE '0.8:PI~INTiJ'Vf :;;;;,n~VFr"m/!s.u

330 LOCATE 0r10:INPUT"Qual a yelocidade

dE lan~amento do sat~l ite (m/s) ~~V

840 A=G*M/(2*G*M/R-V*V)=

REM semi-eixo maioF da ~lipsE 350 A-INTCA*100+.5)/i00

:360, I::>'ABS('(A··-R)/A)

370 IF V~VC THEN LOCATE 0,i5:PRINTNA 6RB ITA ~ CIRCULAR~H=E~&:GOTO 440

~H30 .1;F V;:::VF THEN LOCATE 0.:[ ~.J: PR I NTIJA iHHl ITA ~ PARAadLICA"n;E~l:GOTO 440

390 IF V>VF THEN LOCATE 0,1::j~PI~Ufr"A oRB ITA ~ HIPERB6LICA.N:GOTO 440

400 LOCATE 0 r .t:~:: PF~ INT~}'A oRB ITA E;E;.L..iPTIC

4:1.0 LOCATE 0 r j. ~:):I Ai ::::A/j.000 = PR INTJ'iSem i ~~e;' i x o maioF =~;INT(A1*i000+.5)/1000~"kmU

4~!0 LOCATE 0, j.7:A~~~::({-YBB(A·-·R) )/l000:PRINr "Dist~ncia FOCO-CENTRO =H;INT(A2*1000+~5

')/j,000in-!<rnu '

4:30 LOCATE 0,,21: :I:F A<R THEN PRINT °0 pon t o d e l anc ament o (~ 0 f)P()GEU .. /~ ELSE PRINT nO ponto dE lan~amEnto ~ 0 PERIGEU."

440 LOCATE 0y19~PRINTHEXCENTRICIDADE =Np INT<E*1000+.5)/1000

445 LOCATE l,22:PRINT"APERTE ESPACO PARA

IMAGEM ,N

4~:)0 A~~=:r:NI<EY9)

460 I~ A§~uU THEN 450 470 SCREEN 2=KEYCS) ON

480 SPRITE~(1)~CHR$(li2)+CHR$C248)+CHR~( 248)+CHR$(248)+CHR$(112)+STRING$C3y0) 490 K=G.M~C~PI*R*R/60

500 FOR L=l TO 100

510 X=INTCRND(1)*255)+t 520 Y=INTCRNOCi>*191)+1 ::5~~0 PSET(X1 y) J j.!~j

::~40 NEXT

550 CIRCLE (i28rCT*CC)r20,4r~,CC~PA!NT(1 :?B f Cr')I1CC) r 4

~560 P::~\}*v*·n ~q~ IK :':;70 1[::::0: 1=0

580 RA~P/(1+E*COS(TE»~I=I+i

24

590 X:128+(RA/RT)*20*SIN(TE)=X(I)~X 600 Y=CT-(RA/RT)*20*COS(TE>:YCI)=Y*CC 610 TE~TE+C/(RA*RA)

620 IF TE>2*PI THEN 650

630 IF E)=i AND X}260 THEN 650 640 60TO 580

650 PUT SPRITE 0~(X(1)-27Y(1)-2,,871

680 FOR T=1 TO r

690 PSET(XCT),Y(T».i4

700 PUT SPRITE 0.(X(T)-2,Y(T)-2)p8.i

710 NEXT T

720 IF E)x1 THEN 770 730 FOR T~" i TO I

740 PUT SPRITE 0,(X(T)-2rYCl)-2'.8,1

750 NEX'r T

760 GOTO 730

770 GOTO 770

780 RUN

25

CAPITUL'O - 3 FACES DALUA

.

,~7

Viernos falando de satelites e, no enranto, nem mencionarnos nosso satelite natural, a Lua,

N ao vou recomecar pelos lugares comuns (Selene, face prateada a espreitar nosso amort - ouainda: Vai Diana-cacadora, deusa tria que tom tua seta atravessastes meu coraciio dorido, enamorando-me de .. ,. e por af seguia a choromingacao l).

Mas nao custaria lembrar que esse sat-elite influi, decisivarnente, em fennmenos naturals do nosso planeta - . ,as mares sao urn exemplo 6bvio! Curiosarnente, a origem de seu nome nas linguas anti gas

mona ... mena ... mene ...

resultou emvmensis" no Latirn ou "Men", no Grego, ambas as palavras com 0 significado de "rnes' ~ urn intervale de 27 dias e urn terce, que e 0 movimento da Lua com referencia as estrelas em uma revolucao completa, Nao pOT acaso, o ciclo feminine denomina-se "menstruacao" e a pr6pria gravidez e mensurada pOT 9 meses ... lunares ~ de onde uma serie de enganos, quando 0 curioso corneca a fazer calculos, contrariados pelas tabelas dos obstetras,

27

Mas a Lua, que tanta atracao exerce e exerceu sabre 0 hornem, considerada ate mesmo urn "planeta" em termos de astrologia, foi 0 segundo passo na conquista espacial.

Vamos continuar, no entanto, num nivel muito mais simples. Voce ja tentou dernonstr ar para alguern - mais jovem ou menos culto - como surgem as fases da Lua? JA tentou rahiscar com urn graveto n,a areia, ou Upis numa folha de papeI?

Que tal aproveitar 0 programs de Alexandre Moreira Nascimento para demonstrar com clareza algo que para voce podera ser 6bvio ... mas uma luz esclarecedora para quem nunca viu essa demonstracao?

Eis a Lua em suas diferentes faces - segundo interpretavam os Antigos: alegre, soturna, crescendo" para a alegria ou prestes -a morrer de tristezal - ou as Fases da Lua!

FICHA DE PROGRAMA Nome: FDLUA.BAS

Autor: Alexandre Moreira Nascimento Data: 1989

Mem6rla Ocupada: 11.460 bytes Tarna: mastra as fases da Lua

Comentarlosrslstema Sol-Terra-Lua rnostrando cada tass (a 45 graus) ao S9 digltar a barra de especo

i 0 R E,M- _., - -'-~--- .,---~. _ .. _ , ~h" •••• -- .. ~ - •••• -- •••• ~ - " _ _ - ..

~~0 REM BY ALEXANDRE M()HEII~A NASCIMENTO

30 REM--------------------------------

~0 REM (C) ALEPH 1989

50 REM--------------------------------

60 COLOR15ri.l:SCREEN2

78 CIRCLE(.~97.7)T30F10:PAXNT(0r97.7)ri0 :CIRCLE(125.5r97~7)~30r4;PAINT(125~5r97ft 7) l' 4

80 FORI~0T020STEPI0

90 CIRCLE(125.5,97.7',IrlS:NEXT

100 LINE(125~5,67.7)-(125.5.127.7)ri5 110 LINE(95.5r97.7)-(155.5~97.7)rl~ 120 DATAe0000011~1100e000

131 DATA0'0001il~11100000

140 DATA00001111~i1110000

150 DATA0000il11711110000

160 DATA00001111~i1110000

170 DATA00001111.11110000

180 DATA00000111.11100000

1~0 DATA00000011r11000000

200 FORI-1T08:READA$rB$~C$~C$+CHR$(VAL(" &BN+A$»:O$=D$+CHR$(VAL("&B"+BS»:NEXT=S PRITE$(0)~C$:9PRITE$(1)~O$

210 CIRCLE(125.S,97~7)r55,14:PUTSPRITE0. ( 1 i. 9 • ~5 r ~31' ) T :t ~~

28',

220 PUTSPRITE1~(126~5F37)~4 230 GOSUB 550~GOSUa560

240 FORI=1T010=CIRCLE(240~170)rIT1=NEXT 250 GOSIJEl5B0

260 PUTSPRITE0,(77~55)T15 270 PUTSPRITE1p(84~55),4

280 FORI=lT012=CIRCLE(240r170',Irl:NEXT ;],90 GOSUB580

300 PUTSPRITE0r(63793)ri5 310 PUTSPRITE1,(70r93)14

~3;,:,~0 GOBUf)~j70 ~ GOBUa 550: C I RetE (230 I' 1. 70) .7 r

3~j0 GOSUB :;:;8'0,

340 PUT$PRITE0~(837i34)715 850 PUTSPRITEir'~0ri34).4

360 GOSUB570:009UB550=G08UB560aFORI~lTOl ?M(·]·RC··LE'(~?0 ~'7'0) I 1~~~X'1·

i;~.. ..".... ~ ~ c:. , .J. - :III'"::r. ill ,'f J;i, _

::170 G()BUF.l~)B0

380 PUTSPRITE0,(119.5,148).15:PUTSPRITEl ; ( U!b .. ~:'j p i 413) r 4

390 GOSUB570:BOSUB550=BOBUB560=FORI=lTOl ~ C·[RhlC(~~0 170) T iQNI-X'T'

'f'/ =: ~"... ,."' ..... c... Co.' c... r » ~ ,t. ,.". If ' :.,

40:0 OO~~UB 580

410 PUTSPRITE0,C15B,131),15 420 PUTSPRITE1.(165ri31),4

430 GOSUBS70=OOSUB3S0=aOSUBS60

440 FQRX~lTOB:CIRCLE(~20.170}rlri:NEXT 450 GOSUB580

460 PUTSPRITE0,(17~~93)7i5 470 PUTSPRITE17(lB~F93)~4

4B0 GOSUB570 II OOSUEI,::.:j:S0:: G()!5I.JB~:)60 490 GOSI.H1 ~:,~30

500 PUTSPRITEe,(158,55}y15 510 PUT8PRITE1,Ci65r55)r4 520 GOSU8 550=GOSUB560

~.):10 FORI:::'1T08:CIRCLE(240, 17~) 7 I'T:i. ::NE~XT 540 Bosue 580=00t02i0

550 LINE(200,150)-(255,190),15,B:RETURN 560 CIRClE(230,170),7,15:PAINT(230,170). j.5: RETURN

570 LINE(200'r150)-(255r190),1~BF:RETURN 580 A$=INKEY$=IFA$()N "THEN580ELSERETURN

29

~

CAPITULO~4

A FUNDA DE DAVID

Parece mania, mas nao e: nenhum dos autores e astronomc .. E ate

I

aqui falou-se - e ainda se falara - de programas ligados a astr onomia ou

a astrologia.

Em primeiro lugar, as coisas sao mais au menos interligadas: mate.matica Iigando-se a geomctria e esta, muito naturalmente, decalcada da realidade em que vivemos.

Nao bastasse lsso, 0 proprio Universe que estamos reaprendendo a conhecer, a cada ano, a cada lancamento de foguete on de sonda espacial, estirnu .. a nossa criatjvidade, 0 romantismo autentico, a ansia de aventura.

Claro esta que isso vern de muito tempo atras. Hiparco, que viveu duzentos anos antes de Cristo,idealizou urn sistema - mais tarde batizado como de Ptolomeu. Urn modele de universo onde a Terra ocupava 0 centro e os demais planetas, Sol e estrelas, giravam em torno dela.

A gente fica acosiumada a pensar que toda a cultura, conhecimento, etc. tiveram 'Origem na Grecia, desenvolveu-se atraves da cultura latina, etc. esquecendo - 0 que e uma penal - que existiram outras cul turas e ciencias no Extrema Oriente e no Oriente Medio, tao ou mais importantes do que a

nossa.

Como a latina influiu mais de per to, no entanto. ate a Idade 'Media o sistema de Ptolomeu - de Hiparco, nao se esquecal - era aceito como verrlade absoluta e ate, para a Igreja Catdlica, 0 unico aceito. Quando, Galileu atrelou seu pensarnento a outre modelo, heliocentrico -com 0 Sol por centro -, quase foi pro bele leu: passou maus bocados e quase terminou . na fogueira!

31

o assunto preocupava tanto 0 homem da epoca que contava-se urn "fora" dado por urn, rei de Espanha que, ao sair de uma confereneia de astronomia realizada em sua corte, teria cornentado:

«: Se Deus tivesse me consultado antes de criar 0 Universe, eu 0 teria aconselhado a [azer as coisas mais simples!"

As coisas acontecern conosco da mesma forma, hoje ern dia; embora as pessoas - no geral ~ saibarn que 0 Sol ocupa 0 centro de nosso sistema planetaria, nao rara vez se esquecem que as orbitas planetarias rarissimas vezes sao circulates.

Poi precise esper ar por Kepler - urn astronomo alernao, que faleceu em 1630 - para 0 enunciado de uma teoria que demonstrava orbitas planetarias alfpricas, com 0 Sol ocupando urn dos f6cos da elfpse e nao 0 sell centro r

Mais ainda, a velocidadede deslocamento do planeta, em sua orbita, aumenta com a aproximacao em relaqao a estrela=- Marte com respeito ao Sol, nas observacoes originals de Kepler - e diminui conforme se afasta, Disso decorre que na unidade de tempo, 0 segmento de elfpse percorrido pelo planeta e muito maior, quanto mais proximo da estrela, e muito mcnor, quanto mais distante dela.

Vej a 0 esquema abaixo, desenhado tambem pelo seu MSX:

o segmento A-B e muito rnaior do que 0 segmento C-D na rnesma unidade de tempo. Claro, nao? Porern a area do triangulo A-B-Centro da estrela e a mesma do que a area do triangulo C-D-Centro da estrela, E esta a segunda Lei de Kepler. Observe que as letras estao corretamente colccadas: 0 sentido ~, mesmo, anti-horario.

32

Isso tambern nos auxilia a entender 0 que foi feito pelos especialistas da NA:SA com algumas sondas espaciais - 0 que charnel de efeito David, ou melhor dito, da funda de David.

Lembrando um pouco 0 Velho Livro: David era urn pastorzinho que foi indicado como capaz de veneer Gnlias, urn general inimigo com fama de Mike Tyson. Buscaram 0 rapazelho, enfiaram-Ihe ombreir as, capacete, peitotal, cinto decouro, punhal, adaga, faca, canivetee espada e mandaram-no

lutar, .

David, acostumado a suas pr6prias arrnas de pastor, viu-se irnobilizado debaixo de toda aquela tralha e se recusou, Armada apenas de sua funda, buscou 0' campo de batalha onde defrontou-se com Golias que liderava seu exercito. ,0 rapaz, diante da ameaca, colocou urn projetil em sua funda, girou-a para acelerar a pedra e soltou uma extremidade do Iaco de eOUlO. 0 projeti] - acelerado como urn planeta au satelite ao apr oximar-se da estrela .... ~ atingiu Golias no meio da testa, fazendo-o desrnaiar.

David arrancou. a espada do desfalecido e cortou-lhe a cabeca com urn unico golpe. Os soldados, vendo seu her6i imbatfvel perder a cabeca, tambem perderamas suas e debandaram em fuga.

o que a gente esquece e .0 que veio depois. David transformou-se num dos maio res reis de seu povo - mas tambem faz das suas, como quando gostou da esposa de um amigo ...

o que me interessa aqui, entreranto, e 0 efeito David, Os especialistas da NASA fizeram exatamente como 0 pastorzinho: projetararn uma sonda que passasse proxima a um planeta, fotografasse-o, explorasse sua atmosfera e superflcie para logo apos - tal como a pedra na funda, e obedecendo a Lei de Keple - ser lancado numa trajetoria de parabola ate urn segundo on terceiro planeta a ser encontrado anos depoisl

A elegancia, ,3 inteligencia e a competencia por detras do feito sernpre me impressionaram. Estou me referindo, ao mesmo tempo, a David e aos tecnicos da NASA.

Veja no programa qu.e segue - mais uma criacao eficiente de Luiz Tarcfsio de Carvalho Jr. ~ como 0 MSX consegue demonstrar com clareza as mais diferentes coisas,

Digite 0 programa, grave-n em disquete ou fita, aperte RUN e vaao "pipi-room ". A imagem leva uns 80 segundos para se movimentar ...

33

FICHA DE PROGR:AMA Nome: ORBELlP.BAS

Autor: Lulz Tarcislo de Carvalho Junior Data: 1989

Mem6ria Ocupada: 715 bytes Tema: Lei de Kepler

Oomentarlos: Leva ate 80 s. para radar a Imagem. Auto-expllcatlvo para quem conhece as; Leis de Kepler. Caso contrarto, leta Q taxto.

90 y ORBITA ELIPTICA .. ~ i9B9

(,? ::~ ..

100 OPEN HGRP~" AS Hi 110 DIM X(600)rY(600)

120 COLOR 15,1~i:kEYOFF=W1DTH 38: ~;!,Cr~EEN 0

130 LOCATE 11=PRINTudRBITA EllPTICA"

140 LOCATE 0,5:INPUT#QUAL 0 VALOR (0~5 A

j.7) u;W,

150 IF W<.5 OR W)17 THEN DEEP:RUN

160 SCREEN 2 .

170 SPRITE$(1)=CHRS(128)+STRINO$(7r0) 180 CIRCLE <40,83),2,11

19. PAINT(40,83),il

~;! 00 P I~ f,: 8 E T ( 65 r 0) = P R I NT IH T " 0 RBI T A ELI P T I CAli

210 H=.2=G~1000800! 220 X~G/1000!:y~e ~:~3~ l>:H/41; V=0

~~40 I~::::X ::'S::::Y;: Z:c::r0

~~~~,0 X~~:X+:r. *v :: y=y+ 1 ;.c·W t.~ 60 (30SH.JB ~:~{~0

270 FOR T~1 TO 300 280 X~X+H*V:Y=Y+H*W ~:~90 GOSUB 3b0

:!I00 V.:=V+H*B =,W""'W+H*C 310 GOSUB 390=NEXT T

320 FOR TAt TO 300 =IFX(T)=0tHEN340

330 PUT SPRITE 0~(X(T)~Y(T».7yl:NEXTT 340 FOR J~601-T TO 600=PUT SPRITE 0,(X(J >.yeJ».7,1:NEXTJ

sse GOTO a20

360 E~X*X+Y*Y=D~S&R(E) 370 A~-G/E:B=A*X/D

880 C=A*Y/O=RETURN

390 IF Y(0 THEN GOTO 320 400 X(T)=40+X/5:YCT)=Y/5+83

410 X(601-T)=40+X/5:Y(601-T)~-Y/5+88 420 RETURN

34

CAPITULO-5 OLEAO QUE FAZIABEEE!

Conta-se que urn filhote de leao teve sua mae marta por cacadores. o filhotinho encontrou-se com urn rebanho de ovelhase a ele se juntou. Logo uma ovelha, que havia recem-parido cinco cordeirinhos adotou-o e amamentou-o, 0 pequeno Ieao foi crescendo, tornando-se forte e andando junto ao rebanho, balindo: "Beee«!"

POI mera casualidade 0 lean sell. pai cruzou urn ilia pelo rebanho e, apesar do estranho cheiro,ainda sentiu 0 odor do filhote perdido. Ao aproximar-se do jovem lean viu-o arrepiar-se em pavor" tentar fugir e por-se a berrar urn ubee,eet' sern frm,

Desesperado com 0 filho-leao a balir como cordeiro, arrastou-o para uma caverna, onde rugiu-lhe ordens nao compreendidasl Em desalento, saiu a caca e voltou com uma presa ensanguentada entre os dentes. Percebeu que 0. filhote aspirava 00 ar como a "reconhecer" 0 cheiro de carne. Passon a comer e separou uma viscera bern macia, que jogou ao filho. Este abocanhou o pedaco ainda no ar e, soltando urn miado -Hpico, passou a saborear 0 repasto.

No momenta seguinte, quando 0 leao-pai aproximou-se para examina-lo de perto, em vez de urn balido temeroso, ouviu seu jovem rebento rosnar profundamente.

Sabio que era - animals que nao sao sables, na verdadeira acepcao da palavra, tem vida curta na selva .•. -, afastou-se confiante. Seu filbote havia reencontrado sell verdadeiro papel,atribuido pela Natureza!

Contu-se esta pequena histnria tentando ilustrar 0 que pretende a astrologia, mae da astronornia: apontar os verdadeiros papeis que rcgerlarn

35

a vida dos seres humanos. Estes poderiam ou nao - par livre eseolha, par livre arbftrio - aderir aos caminhos de.lineados pelos astros,

De uma mane ira muito simplista, seria essa uma das propostas da astrologia.

E antes que voce se arrepie (Ceus, quem acredita nessa besteira?t) vamos colocar pingos nalguns "ii",

Em praticamente todasas .civilizacces - Inca, Asteca, Maia; entre os Caldeus ou Egtpcios; entre judeus e maometanos; entre os silvicolas brasileiros ou 'Os Indus; entre os primltivos anglo-saxces ou junto aos asslrios ~ sempre se encontrou 0 estudo dos astros codificado de algumaforma ou transmitido oralmente, de pai para filho, no geral, entre uma casta de sacerdotes,

Tambern, ao lado do conhecimento do movimento dos astros, epocas dos solstfclos, ocorrencia de eclipses etc .. , associou-se tais ocorrencias a previsao para 0'S reinados au para os nobres e, por fim, para 0 homem COm"llID como voce e en (perdoa-me se es umnobre, oh digno Ieitorl).

Nao vou discutir ou tentar influir em sua. opiniao. Estouapenas -eontando fates .. As escolhas sao integralrnente suast

Dentr e os fatos, a astrologia propoe doze "casas' que se referem £10 comportamento das pessoas e que sao encontradas por divisao do zodlaco; seria urna "area" da vida da pessoa, Assim, a casa urn indica a personalidade do indivfduo: a casa dois e a casa de nossos valores monetarios; a casa tre:s e a area da comunicacao entre as pessoas - e assim por diante .

. Agora, se voce imagin.ar que os planetas - aqui inclutdos 0 Sol e a Lua - cruzam continuamente por sobre as casas, entao as divers as areas' - as diversas esferas de vida da pessoa - estao permanenternente influenciadas por planetas divers os - cada urn com suas caracterfsticas - ,. Decorte que, a cada mes, ano ou decada, as Influencias se modificam na area espe-

clfica de cada casa, de cada .aspecto da vida pessoal. ~

Toda essa Introducao DaO foi para "converte-lo" a astrologia, mas para preparar 0 terrene para 0 que segue.

Os planetas, quando visiveis da superffcie da Terra, podem ocasionalmente mostrar urn comportamento surpreendente: seguern sua rota pelo espaco para, de repente, interrompe-Ia e voltar atras, num movimento Inverse - a chamada retrogressao. Ap6s urn perfodo variavel de tempo interrompem seu deslocamento de novo e retomam 0 sentido original, terminando por cruzar 0 ponto onde se originou todo oespantol

Esses movimentos de retrogressao - principalmente se voce imaginar modelos onde a. Terra ocupe 0 centro do Universe, eram totalmente impossiveis de serern explicados, Ainda com modelos heliocentricos, 0 fen6meno surpreendia eaormemente,

Como voce: j4 pode supor, na esfera da astrologia isso se reveste da maier importaneia. Urn planeta "passa por uma casa", influindc sobre ela:

36

interrornpe sua progressao, volta atras ~ e volta a influir sobre ela interrompe novamente seu sentido de deslocamento e, retomando a progressao, cruza novamente por sobre a mesmacasa pela terceira vez!

As Interpretacoes S8.0 variadas - desde "marcar" negativamente qualidades naquela casa; indicar aspectos vitais nao r esolvidos, quando de outra encarnacao; e assim por diante ~ mas continua 0 problema colocado: como e possivel urn planeta "voltar atras em sua rota"? I

Pierluigi Piazzi consegue demonstrar, num programa de apenas 21 llnhas - sem usa constante das multiplas instrucoes por Iinha ~ como 0 movimento aparente de urn plane ta pade se modificar.

Como Pier gosta de esnobar coisas bem elucidativas DaD cria apenas urn modelo; mas DOIS modelos concornitantes. No primeiro deles, a esquerda, sao observados dais planetas orbitando a mesma estrela - Marte e Terra erbitando 0 Sol? - em trajet.6rias e velocidades - relativa e absoluta=diferentes, A Terra, em orblta, tern velocidade media de 29,8 quilometros por segundo e Marte, em sua trajetorla, mais externa que a de. nosso planeta, move-se a 24,1 quilornetros: pOI segundo.

Dessa forma, a observacao de urn planeta a partir da superftcie de Dutro pede eriar - como esta demonstrado no canto direito da tela - uma aparente retrogressao do planeta.

o programs e curto, mas requer atencao para que nao sejam introduzidos enos. Ap6s a revisao, grave-o - em fita au disquete - e RUN.

Aproveite para chamar a familia, contar a historiazinba do tigre que reencontrou seu real papel, assim como a astrologia poderia tracar as reais linhas de sua vida. Mostre omovimento aparente de retrogressao, explique como os antigos "quebravam a cabeca" para justifica-Io e como isso influiu nas diferentes interpretacoes astrologicas.

Juro que, ato continuo, voce cornecara a receber "consultas" sabre o futuro e podera se tornar - eu espero que nlio!!I- mais urn charlatan a ganhar a vida com a. credulidade alheia,

Lembre-se que, para ser astrologo meSID'O, ~ preciso multo estudo e, a primeira li<;ao at aprender e: humildade.

37

FICHA DE PROGRAMA ,Nome: HELGEO_BAS

Autor: Pierluigi Plazzl Oata:1989

Mem6ria ocupada: 467 bytes

Tema: demonstra 0 aparents movimento fetr6grado Oomantarlos: graficos. simples, mas ,eficient,es

5 'HELGEO~BAS - P~PIAZZl - 1989 10 SCREEN 2:X1=64;Yi=48

12 X2=190:Y2=130

14 P BE T'( X 1 ,. Y:'- ) p 1 j, eel R CL E ( K1 T Y :1. ) ,. ~~ y j, 1 1. 6 RT~<;!0:: TT::: 1

18 SPRITES(1)~CHR$(i92)+CHR$(192)

20 RM=RT*1.5237=TH~TT*SQR«RM/RT)A3) 22 FOR T=0 TO 60 STEP _02

:24 XT,,,,,Xi ,; .. H T*SI N < T*'~ .. PH/TT)

26 XM~X1-RM*SIN(T*6.28/TM)

28 YT=Yl-RT*COS(T*6~28/TT)

30 YM~Yi-RM*COS(T*6.28/TM)

~12 XR"::X2-(XT .... XM)

34 YR~Y2-(YT-YM)

36 PUT SPRITE 10,.(X~TYT),7ri 38 PUT SPRITE 12r<X2,.Y2),.7,1 40 PUT SPRITE 11,.(XMrYM),,8ti 42 PUT SPRITE 13,(XR,.YRl.8,.1 44 PSET(XI~~YR)

46 PS£T(XM~YM)IPSET(XT~YT) 48 N;~:XT T

50 GO TO 50

38

CAPITULO-6 ALUNIZADOR

Curiosamente bfi leitores que s6 adrniram programas de jogos, Mais curioso ainda, ha Ieitores que so admitem prograrnas utilita-

rios,

Nao raro ha Ieitores que odeiam jogos, e outros que detestam utili-

tarios,

Dentro desse universe, os editores normalrnente buscarn contentar grego9 e troianas, nan rare desgostando a ambos ...

Nao me preocupei em selecionar isto ou aquila. No leque de programas que a ALEPH me propoz surgiu naturalmente esta linha que vimos seguindo - 0 espaco, os sat-elites naturals e artificiais, conotacces com a astrologia e, agora, mads do que natural mente, dois programas que ilustram a aplicacao que urn MSX pode ter na hora do relaxamento.

E Iantastico 0 numero de programas tipo "Alunizador" - isto e, pouse uma capsula espacial na superffcie lunar. Mesmo os limitadfssimos e encantadores TK .. 82 - rnimisculos microcomputadores que, corn urn minimo de componentes eletronicos, er arn capazes de fazer maravilhas, criacao genial de Sir Clive Sinclair - que recebeu 0 titulo precisarnente por suas criacoes fantasticas! - conseguiam rodar program as que nao ultrapassavam 2 mil bytes e. .. "alunizavam" urn sfmbolo Duma superffcie ... digamos ... humhum ....

Mas he: algo de muito curiosa na quautidade de programadores que dedicam sua habiljdade a criacao profissional ou arnadora dealunizadores. o problema vai mais longer ha programas cornplexfssimos, dificflimos de serem contrclados, ate com capsulas pousando em Marte ~ em que se leva em conta a atracao do planeta, -0 arco criado pela superffcie versus parabola

309

de, pOUSD da capsula; 0 calculo do peso decrescente da capsula pela queima de cornbustivel..; - enfirn, urn verdadeiro treinarnento para peritos da NASA!

o programa.que segue ~ ALUNIZADOR- foi idealizado originalmente por mim para a serie TK-82 e TK-85, procurando tirar 0 maximo de seus pobres recursos graficos, 0 artigo saiu publicado numa (infelizmente) falecida revista BITS, graficamente uma das mais elegantes e berncuidadas puhlicacnes brasileiras na area da informatica!

Em 1987, trabalhei novamente 0 programa, modificando-o totalmente para a li:nha MSX com a colaboracao de meu filho, musieo e ilustrador, Mauricio Grassmann Martello, que na epoca 86 contribuiu com a tr ilha sonora, achando "uma gracinha" um computador para 0 qual se podia cornpor em ate tres canais de sam e um de ruido simultaneamente.

Tres anos apes, de novo revisadoern seus de talhes, 0 programa original vern a luz, demonstrando, ainda mais uma vez, a versatilidade das maquinas MSX. Tambern no campo ludico, do desafio, da brincadeira, 0 MSX revcla-se urna maquina ser ia,

ALUNIZADOR apresenta uma intrnducao simples, mas bern cuidada; urn painel de controle "avancadinho"; efeitos sonoros e musica. E, naturalmente - porque e de minha personalidade - gozacces e brincadeiras ...

Se voce se interessar em diversac, digite 0 programa com cuidado,

grave-o e rode-o. AS. controles sao:

ACELERAC;,AO vertical: tres dlgitos (sempre) devem ser introduzidos. Obviamente se voce digitar tres zeros (000)0 motor nao funciouar a, 0 combustivel sera economizado, voce se aproximara rnais rapidamente da superf'Icie lunar ~ 0 fator G = ~22 responde, com algum realismo, por essa queda cada vez mais veloz. Se voce abusar da aceleracao, voltara 3,Q tema doprimeiro capitulo, tra<;ara uma secao de parabola e se perdera no espaco exterior. ..

DER.IVA: e seu segundo controle, e tambem exige tres dfgitos, Desta feita, pacem, voce pode controlar ,3 nave para que cia se apr oxime da area de pouso - colocada entre 130 e 170 rnilhas - mais rapido - digitando urn ruimero positivo - ou mais devagar com um numero negative. 0 sinal de negative tambern e introduzido como dtgito, enquanto 0 pcsirivo e desnecessario.

LlMIT,ES: urn empuxo maximo de 100 libras par segundo e admitido na aceleracao. Os foguetes de deriva, sendo menores, limitam-se a 50 Iibr as por segundo de empuxo , 0 consume de combustivel e proporcional.

o programa foi todo construfdo na forma estruturada e esta identificado por linhas de comentario (REM), de forma que voce possa adapta-lo a sua habilidade, tornando-o mais ou menos exasperante.O limite de ar (dado pela variavel AR, naturalmente) foi estendido nesta versao para

40

publicacao; originalmenteera a metade, obrigando 0 jogador - piloto? - a alunizar 0 mais rapido possfvel para nao morrer asfixiado e receber a Comenda Estrela do Oxige nio ...

FI,CHA DE PROGRAMA Nome: LUNA9_BAS

Autor: Nil~son D_ Martello

Data: Julho de 1987/1990 Msm6ria oeupada: 9.650 bytes Terna: J:ogo -aluni'zador

Cornsntarlos: para controlar a nave. introduza sernprs Ires dfgitos_ A acelera,cao rnaxlma e 100 e a deriva e 50 (positiva au negativa).

i8 t UM~»»""M»fl""«~""«««#»"HMHM""#U""ff

20 ~ » "

30 7 ff L UNA 8 »

40 r ** Nil son D. Mar' t ~~ '1 '1 C) ~$

:~:i 0 rU liHJ $ Ii c •. ~ : M f:HU''' i c i o G .. Ma\ y' tf,d 1 o it

6'0 1.. jl.tlha :1.987 U

70 p "HH"«M«"H""""»"M»""""~ff"n««"H"«n~ 80 KEY OFF

90 SCREEN 2:COLOR i5,4.4=CLR 100 DIE F'SNG A r Z

1.10 CLEAR 500

1~~0 GO!3Ua B60

t ~10 (10SUB 6)40

j.40 BOUND 0 r.16:: BOUND 6. r 10J: SOUND 7 r !':i4 c SO

UNO 8r7=SOU~D i3~255

150 ~INICIALIZA VARIAVEIB lb0 AC~0

170 ARg250+INTCRNDC-TlME)*90)CPRESET(10, ~)0) : PR I NTtH r AR

1.80 DE:>:;0

190 VEL=50:PRESET(10790):PRINTM1,VEl

~~00 ALT::"·1450+INT(I~ND(--·TIME)*50) :P:RESiST< 1 0r130):PRINT"1~ALT

210 COM~iB0+INT(RND(-TIME)*150)!PRESET(2 10~120):PRINT»17COM

220 DV~0~PRE8ET(210w60):PRINTH1rDV ;~~30 G~=-"2~~

240 '""HHUUUUUHH""""""H"

'ROTINA PRINCIPAL

;,~l50' ~260 ~~70 ;.:~B0 ~~90 :)00 :310

AC$=INPUT$(3):AC=VAL(AC$)

IF AC{0 OR AC)100 THEN 270 LINEC107,148)-(197,168)f4rB~ PRESET(110~150):PRINT«irAC~ DE~~INPUT$(3)=DE~VAL(DE$)

41

:)20 330 340 350 360 370 aB0 390 400· 410 4'20 430 440 450 460 470 4.80 490 ~H.,0 5)0 '~,20 5~30 ~t:;·40

IF DE}50 THEN GOTO 310 LINE(107ri78)-(137r228),4,BF PRESET(110,180):PRINTUirDE$ AC""INT(AC/S)

AR~AR"-9

VEl=VEL+(AC*AC)-12+Q ALT=AlT+VEL~IF AlT(0 THEN ALT~0 [)E~DE/a

DV:;:.rOV+EHDE COM~COM-(AB8(AC)+AaS(OE»

IF COM(0 THEN COM~0 LINE(10,50)-(40,60)ri,BF PRESET(10,50)~PRINT"irINT(AR) LINE(10,90)-(40,i00),i,BF PRE9ET(10y90):PRINT"i,INT(VEL) LINE(10,130)-(50,140),i,BF PRESET(10,130):PRINTH1,INT(ALT) LINE(2i0r60)-(240~70)r1r8F PRESET(210,60)~PRINT"i~INT(OV) LINE(210y120)-(250,f40),i,BF PRESET<210.120):PRINT#i,INTCCOM)

I'

550 ~

~S60 IF ALT;;;:}i,800 AND VEL"·').t00 THEN 8010 1570: "t:SCAPE

570 IF COM~(10 THEN 80TO 1j30~ "FIM DO GA

580 IF AR)30 AND AR(40 THEN GOSUB 1860:" AVISO

590 IF AR(10 THEN Goro 1970~ "ASFIXIA

600 IF ALT)Si AND ALTC1800 ANO AR;)10 AN o GQM}10 THEN GOTO 270: "RENOVA CICLO

610 IF ALT)0 AND ALT(20 AND VEL}-l AND VEL(-29 AND DV}130AND DV<i70 THEN GOTO 2 110: I'SUCEnS()

620 IF AlT~>20 AND ALT(50 AND VEL>-30 AN

o VEL(-60 AND DV)130 AND OV<170 THEN GOT

o 2280: "MEIO SUCESSO

630 IF ALT<4 AND VEL=(-60 THEN GOTO 2420 :; ",CI~ATFRA NA l.UA

t)40 I~EM PAINEL"

! £:' 0 C' C IL> t~ E-' N°· r)" (' C I () R ,C' ~ 1 ° (' L c

(.)Ji' \J .,JF'\ r::. ~ to •. 'R - .. ) ~~. . .I .... ) T :l r :: ," .. ..:)

6,60 LINE (~.;j~!~j.,0)""(5~! .. j_9~n r 3

670 LINE (200,10)-(200t192)r3=LINE (62,1 0)-(120yB2),3:LINE (i32r82)-(190ri0),.3 680 LINEC120.82)-(i32 .. 110)r3rB:LINE(67vl ~2)-(i207ii0)73:LINE(132,110'-(1867192)r

690 LINE(80r33)-(80~i71)y3:LINE(172~33)(172r17\)r3:LINE(100,57)-(100r141)~3

700 LINE ( .1>.52" 57) -- ( 152 r 14 i ) , :1: l I NE.( i 10 r 70 )-(110,12S),3:LINE(142r70)-(142r125),3

42

710 LINEC114,7S)-(114,117)y3:LINEC138,75 )-C13B,117),S:LINE (ii7Y78)-(1i7ri15)~3 720 LINE(135,78)-(135,ii5),3:LINE(102,10 :'5) _. ( i ~)0" i 0,~» .. 1 t

730 LIN~(i05r96)-(147r96),11'lINE(i057il 5)-C147rl15)ril:LINE(126r~6)-(126r115)r1

1

7'40 ~ID~LE·(~~6 j,~~) ~7 l' ~ a~ ~ 8 6

, _ ~ - f\, \." •• .J.. I:.. ;r .• 11(1 \i,} '7~. .,. ..... ¥!C.. It i..' LJI , \oJ! • r III!'_

750 CIRCLE(126r105)r27rilT5.69,~65,~6 760 LINE(i0,140)-(20,150),8,BF:lINE(30,i 40)-(40,150»)B,BF:LINE(B,i7S)-(15,1B5),8 , El F

770 LINE( 35,i75)-(45r185)fil~BF

7a0 LrNE(0r160)-(10ri70)rB,DF~LINE(15rt6 1)-(~5r170)r8,BF:LINE(30,160)-(40r170),B I':B F':'

790 LINE(~05,140)-(215,1~0),a,BF=LINE(22 0,140)-(230,150),3yBF:LINE(235t140)-1245 "j,::,)0) 7~~rF.lF

80e LINt(220,160)-<230,170),8,BF

OJ 0 I I N EO' ( '1 I" G:' j 7 ~ ) (''l 1 t:!' 1 S' ~'.) 8 B r ' L ,'*' N' c:- ( '1 '3

(,~ , .' .. , , :" .... 'f{ OJ, .' ;;::) ,o__ I:" ~ 11' ' ,) r,' " '.: ,~ !;;.' ",-

5,175)-(245,185),11,BF

820 LINE(0,5)-(252r5)~15'LINE-(252~i92), 15=LINE-(0,i92),15nLINE-(0,5),15

830 PRESET (i0,30),11:PRINTM1,HAIRvcPRES ETC10,70),11:PRINTM1,"VELu:PRESET(10,110 ',113PRINTni,HALT"

840 PRESET(210,40),i1;PRINT~1,NDRrFT":PR

ESET(2i0,90).li:PRINTM1,"FUEL"

BS0 RETURN

860 1******** PAISAGEM LUNA ***** 870 SCREEN 2~COLOR 15,4,4

880 OPENuGRP:u FOR OUTPUT ASH1

890 FOR Lm;l TO 130:X>mINT(RND(1)*25S)+1 900 Y~INT(RND(1)*130)+1

910 PSET(X,Y)r15

<720, NEXT l.

930 AA$~UR30RDF3R3F2R3F6RD2R3n 940 AB$="D5FSD23F2DF02FR2E2R5F5"

(~50 AC'$:::"R 202R 2[)3RI[)~~R4[)5R 4D3U4R.:;'~03R D3R2U

~lR D 15:'"

960 AD$~uR20U2RBF3R2E2F5E3U2R3D4R5U3E4F3 il405#

970 AEi="R4U2R3F2R5E3R6F5R3D2F3D2R4E5R3U PR~3/'"

980 AF$~HR2F3U2F2UR2E3R2E4R2F2R5E2R6F3R2 [;;~R 4U5R 2U~?R2E::3n

990 AG$=HR3E5R5F3R2E4H 1000 DRAWHBM0,38 XAA$;N J0i0 DRAW AB$

1020 DR AIW AC$

10030 DRAW AD!6

104'0 DRAW AEgj

1. 050 O:R AW AF$T

43

1.060 DRAW AG%

1070 CIRCLE (135,65),12,15 1080 PAINT <135,65),15,15 1090 LINEC0r3B)-(0,130)

1100 BA$=uE4R2D3E7R2E4R3E6R5D2E3R2D2~SF5 D3R21)3'"

1110 DRAW BAtl

1120 BBi="R2E3U2E4R2F3D2L203F364D2G302L2

G3N

:t 130 ORAWHB 9j

1140 BC$~nR3E4R2F3U2RSF3D2R2U2R4E3R2F2~4 U2R5F~E3R4D2R3U2"

j.1 ~)0 DRAW BG$'

1160 BD$=HR5F3E3U2R4D5R3E2R6D2F2R3U2R4D2 R 6E31~ 4F~3R 5'"'

:"170 DRAW B£)$

li80 BE$~"F3R2F4R2D2R2E3U2R4D3F2D2R2U3R4 Ear~ 4F31)41~ ~3U3R2n

j.1.900 OR AW BE$

1200 BD$="U2R8E4R2E3R3U2R4E3R3URURUR4E3R 4F~!.R ;.:.!E3R 3U18'"'"

:t210 DRAW BO$

1~~'0· I~AIN1· (~h 100) ~~ 1~

i.:,~ , ... ._ .' . .1 'fI y - - .,.f. .... ~J y- ,.J

1230 CIRCLE (115r154)y30rT,~.2

j~40 C-II3C'LE~(~E 1~0) 10 3

.~ .. "' .... ".3,.,.~ r I'I"".,R

1250 CA$="D3R05RD4GLD4RD3R3D3RE2U2RU3H2U 5R2U4LU4H3U2L2Q4L2D"

1260 ORAWnBM7,7.CIXCA~;N

1270 PAINT(9~72)r1r1

1280 FOR C=0 TO I

1 ;290 R EAD A~;

1300 $$=Si+CHR$(VAL(h&B"+AS» j_~310 NEXT C

1320 PLAY"V4Ll02DU70V100u7HV704L4DDDDV9D ODDV110DDOn,,"V707L4EE+EE+EE+EE+V10EE+EE+ E[ -t. EE ·f-V 1-. 2E:E II

1330 PlAynN~~V:i.20~;~L..:lCn "ilR2Vi;~()4LiFN 1uR2Vl 206t .. j. G;,t

1340 SPRITEI(i)=SI 1. sse X::-.:;;~00:: '(:;:::10 1360 X=X-.3:Y=Y+.3

1370 PUT SPRITE lr(X,Y)~10rl 1380 IF Y)170 THEN GOTO 1510 1390 aOTO 1~:~60

1400 DATA00011000

1410 DATA00011000

1420 DATA00111100

1430 DATA00111100

1440 DATA000i1000

1450 DATA000i1000

1460 DATA00100100

1470 DATAt1000011

:1.400 t

1490 ·CEBUlO PROGR.

44

1500 ..

1510 PRESET(180.i80)~PRjNTUlrNL UNA 9';

1520 IF PLAY(0)2-i THEN GOTO 1520 H):~0 r~ETUR N

1 :i40 r

i5~)0 ":560 l5i0 1580

~\n

1590 :1.6,;00

1.6:1.0

TESCAPE NO E:~!H~ACO



S~·RE-rN· 0·rOL()·~ A ~~ j0~BE-~p~~~rF)

Id ".:0 •. ':;:. '. . . ~.,'~I .' ... "r\ J. r ..L.r . .,. - II ... :. (;:. _ u.R t:...J,;~. ~

LOCATE 5,i0~PRINTuEm sua imprud&nci

PRINT:PRINTUVQci acaba de at ingir" nosu B 27::30

PRINT;PRINTHYElocidade de escape e

16,20 GOSUB ~~7.~'0 1630 PRINT:PRINT"

I" .:!.m (r.'111 P I'" e ! H

1640 PLAyuT60 Vie L32 05C04B- 05LBC~ L4C » G 04F»ur"T60 Vi8 L32 OF LB G"L4G~ G en ",nV12T60 L803 C •• ~R64 C ••• R64 C~M~R64 0 :? FM:" ~ ~ R64,u

,ibf50 pLAY"Tt10V1005 L3';'~~ CB- I...BC" en ~ •. ' R64L 64CffD","T60V10L32 SF L8G. G».~~R64L2G«L8 G#v~liV12T60LB C •• ~R64L4C l2C~L8C«"

:t660 GOSHB 2760

1670 PRINT~PRINTff Lerubran~as aDS anjinh

, u

O~; H ...

j.6F.H? OOSUB ~:7t?0 1/190 GOlO 2560 j.700 'I

171.(, 'rIM DO FUEL 17;20 ~

1730 FOR N~i TO 5~BEEP:NEXT 1740 SCRE£N 0~COI...OR iri4,1:CLS

1750 LOCATE 5ri0~PRINT"A NAS~ deseja avi

Si.~'''''l (jfo"

1760 SOUND 0.1:SouNo lr0:S0UND 6r3i~SOUN o 7r128:S0UND8r16~SOUNO 12~20.:S0UND13¥1 1770 LOCATE 5~i5:PRINTu~ •• que Be_bou 0 ~ nmbl.l!!l.t i vel ! N

t 780 G08U13 ~~7 /),0

1790 PRINT:PRINT«Ou PEng~ que pede ~bast f;: c 0:' F II'

1800 PRINT:PRINT"no prdximo poste ?!" tnt0 GOf:HJf3 2790

lB~:~0 GOTO ~·?'390

1. BJ() 1

1.B40 'rpoUC<> AR 1 B :~;"r

:UUi0 FOR N<~;: j. TO se ~ 8E::EP :: NEXT N

~ P70. PlAY "T;(0 V· ~ o. ()~,. I ~ {" '1 4€"1 nG"I'<'ul ")1'" I

,l ~ " ..... 1:)., .!. I(jI . d' ... J. 1,·;, ... _.t:'f. _ .• O'~' 11 ... , s: ::. ~ .•

BEf~HR4r1~y .. ~'''T60 V10 O~j L4t I ... OOC 04 nOFHE

45

A OSCEDH 04BE 03B8 04E. R16R4R2n~HT60 Vi 2 02 L2 AGFHL4EL8EGL4EH

1890 PRE9ET(55r10):PRINTU1~NO AR EST~ AC A:BANDO! h

1890 FOR N~l TO 5000:NEXT

1900 LINE<55.1.)-(65r160),1.BF j. 9 i 0 GOSUB 2760

1920 SOUND 0,i6:80UND 6~il=SOUND 7~54;80 UNO 8,7:80UNO 13,255

:1'.930 RETURN

:L 940 r

1950 FACABOU 0 AR j.'960 .,

j.97(; C1.8

j.9B0 BEEP

j,990 B~~f.:P

2000 BF.~r:::P

2010 PLAY NT60814 M65 V10 05 LiE L4GL8G F~L2E L8ERBR4R2H,uT60 V10 05 L4C LaDe 04

BGFHE A 05CEDn 048E 03BO 04E. R16R4R2N1 i'T60 'Vi2 02 L~! A(!f'UL4EL8EGL4E'"

2020 SCREEN 0=COLOR 15,1,15

2030 LOCATE(S,4 ):PRINT nO ar acabQu I! U

~=!040 OOSUB 27't)0

2050 P~INTaPRINTnSua tripula~~o s~rJ con de c o- .. "

2060 PRINT=PRINTnrada.,~Qsturuamente,~ c]a

1"0., '"

~~070 (-JOSUB 2760

2080 PRINT:PRINT"'com a medalha do oxlgin l c " ,u

~!090' GOSUB ,~~790 :2100 GOTO ~:!~7j60 ;? j, j. 0' 7

2120 J SUCESSO TOTAL 2130 .,

2140 SCREEN 0=COLOR 4,i1710=CLS

2 i 5'0 FOI~ N:'" i TO 40:: BEEP: NEXT N ~

2160 PLAY"SBV8 M10000 T1~0 R4l8 05G R8R4 06CR8R4 95BRBR4A L1606 DCDL4D"yNVi0L16D .. R64D~~R64 L4GL8AB L405C L8DC04BGAB L4A

li6D •. R64D"~R64N~HV10R403L4BGF" 04003G 040 02DD'"

2170 PLAY"L80S0 RBR4C R8CHR8DRBDRB 04GBO 5 08 L16BH~"L4G LAB 05DL4E L9GED 04BAFH L2Gl1605G."y"03BGCChD 020 L3203GR32GR32G R32GR32l64GR64GR64Li6V8GV6L8GV4l4G'u

~.~ j, B 0 l. 0 C AT E 1 b r 1. ~~ ~ P R I NT II PAR ABE N B ! U

;,:! 190 GOBUS ~?730

'2200 PRINT~PRINTHAlunisag.m per'eila!ll 2210 PRINT:PRINTnVelocidad~=H~VEL

2220 PRINT;PRINTULDtal~";DV~H Km"

:;~230 GOBUB :2790

46

~~,;;Z40 (30l0 251.)0 2250 7

2260 rSUCESSO PARCIAL 227'0 7

2280 SCREEN 0~COlOR 1,9~9=CLS

2290 80UND 0ri:SOUND ip0:S0UND 6~31:S0UN o 7r1281S0UND 8,16=SOUND 12v200=SOUND 13 ,1

2300 LOCATE 5,4:PRINTHVocE alunisou cam" 2310 PRINT=PRINTNdBl icadeza paqU~d~Fmica

~~3t-,?0 GOSUB ~~7~~0

2330,PRINT:PRINT"A NASA vai procR •• ~-lo

1- n Ii' ~~ til.

2340 PRINT;PRINTNinut 11iza~ib do rudduloN

:?'35~GOSUB 2760

2360 PRINT:PRINT"Ainda asslm ••• parabens

IN

~,?370 GOSUB 2790 23f10 DOlO 2'560 ~~~~'90 7

2400 'ABRE CRATERA ~!.4:.i 0 r

2420 SCREEN 0:CLS

2430 COLOR 15,15,15= COLOR lr17i~COLOR 1 ,15,15 ::KEY OFF

2440 PRINTcPRINTHVoci acaba de criar urna

u

nova

2450 SOUND 0v1=SOUND 1~0:S0UND 6.31:S0UN D 7.128;SOUND 8r16:S0UNO 12v200~SOUND13, 1.

2460 PRINT:PRINT"cratE~a 2m 5010 lunar!v

;:~470 G()BUB ~~7 6'0

2480 PRINT:PRINlflSua tFipula,~o ~ecebe~~

n

uma

2490 PRINT:PRINTucondEcora~io pdstuma e VI]!:: eN

~.:.!:500 GO£HJF.l ~.~7~:~0

2510 CLS:LOCATE 10,12:PRINTu»&*@&5UI!!ll 2.5~~0 GOBtJB ~.~7:30

2530 PRINT:PRINT"Bem ..• BSqUE~a!U

2~J50 ~!~j60

GOTO ~;~590

I'

;';~570 'F:' I NAL lZA ;2~jI30 i

2590 SCREEN 0:COLOR 15.12Ti2:8EEP=CLSJKE if OFF·

2600 PLAY"04V7AV9AV11AR64V15AU7"06V4EV7E V9EV11ER64E",U07V4CV7CV9CViiCR64Cu

26i0 LOCATE 10~10~PRINTuQuer tentar de n ova ? (S/N)N

i;.!6:.~!0 R $:;:: INK EV$

47

~:!6,:30 IF R ~::::N"I THEN OOTO d~I.);.:?e>

2640 IF R$=HS" OR R$=HS" THEN GOIO 130 ;;.~6~:;0 eLF)

2660 LOCATE 5,10:PRINTnFaj urn pFazer ele t: I" () n i COli

2670 LOCATE 5~13~PRINT"JDgar consigo! At

~~~ 6H0 G ()SUH~;~7 90 ~~61?0 CI ... ~:;:I E:N[)

~.:.~10 (1 '

YTEMP OR I ZAt:t'lO



;.;1730 lIME':::0

:,?740 1FT I NE (jt!:H* THEN [,OTO ~,? 40 2 7 :~5 0 R I::: 1 u I~ N

~?7 60 TIME:!::0

2770 IF TIME(300 THEN GOIO 2770 ;.;~::ra0 RETUI~ N

~:.~790 "f'IME::"0

;;?~100 IF T HiE <: 400 THEN GOTO ~::!B00 ~,~B10 I~ETl.JRN

CAPITULO-7

"

MEMORIAS

E INFANCIA

- . - ... _ .. J ':Y::._

Este capttulo e, para mim, muito importante, porque ilustra diversos aspectos do MSX~ comprova algumas conviccoes que tenho a respeito do usa e aprendizado do Basic e evoca mem6rias de infancia (nao minhas, mas do autor do programa, Maurfcio Grassmann Martello).

Para quem esta lendo este livro de forma salteada, nao acompanhando a sequencia de capftulos, precise esclarecer: Mauricio IS rneu filho mais velho, c nao comparece nesta colecao de programas pOT nepotismc - 0 que e tao cornum nestas plagas - nern por "corujisse".

Para que voce possa julgar par simesmo, deixe-me can tar como as coisas aconteceram.

Tenho uma confianca imensa na qualidade das maquinas MSX em sua aplicacao nas :mais var iadas areas, em especial Ievando-se em canta a relacao custo/aplicabilidade, mas percebo que inumeros usuaries nao levam em conta a sua -verdadeira potencialldade, usufruindo sua capacidade limftrofe ~ minima - muitas vezes desconhecendo "do que e capaz" 0 micro que tern em frente.

Urn dos exemplos possfveis e a Ilustracao de urn programa ou 0 usa de ilustracoes cr iadas no MSX para ° comercio, a e nsino, a simples demonstracao, 0 entrerenimento. Esse foi 0 primeiro fator de escolha.

o segundo fator prendeu-se ao tema que vimos seguindorespaeo.

No capitulo e programa anterior, ALUNIZADOR, criei uma ilustracao para a introducao do programs e outra para 0 painel do alunizador, Mauricio, tres anoa atras - ainda eomecando a se encantar com os instrurnentos

49

musicals "digitalizados" - auxiliou-me na composicao das ilustra<;oes sonoras e tornou seu primeiro contato com 0 MSX.

o terceiro fator prende-se as experiencias do Mauricio em apenas tres - eu disse tres- meses de manuseio do MSX, sern nenhurna dedicacao seria no aprendizado do Basic.

Com este terceiro fator nao estou diminuindo 0 valor do trabalbo; quero apenas demonstrar que 0 Basic - tao desprezado precisamenre porque pode ser usado de forma imperfeita - et no meu entender, uma linguagem Iantastica para ~ aos poueos - dir etrizar 0 aprendiz na Iinha de uma melhor Iogica de programacao. E quem aprender 16gica de programs~ao podera aplica-la a qualquer Dutra Iinguagcm!

Ceusl Como ha pessoas tao preconce ltuosas que nao percebem este valor fantastico? r E viram 0 nariz - quase com nojo - comentando: "Linguagem de Maquina e para os diferenciados. 0 resto ... e para oresto,"

Pais bern: aqueles que conhecem programacao em Basic poderao encontrar no programa que segue algumas solucoes menos eficientes. E~ DO entanto, 0 programa segue publicado pela ultima razao que passo a expor.

Ultima razao: Mauricio e sua irma Patricia eram dais fedelhinhos que sentavam-me - obrigatoriamente - junto a cles para assistir ao seriado Perdidos no Espaco; na epoca dos televisores em, branco-e-preto, E, gostasse ou nao do casal principal - doisatores canastroes - a verdade 'e que eu tambern me divertia com as palhacadas do doutor Smith e do Robe.

50

Anos depois, em fins de 1989, Maurtcio.ija urn born musico acostumado as "tralhas" eletrouicas, sintetizadores, MIDI, e 0 mais, sentou-se a frente do seu MSX e r ecriou toda a introduciio cinematogrcfica do seriado uLOST/N SPACE (Perdidos no Espaco)", tanto do ponto de vista musical quanto grafico (ele tambern e ilustrador; para os que duvidarern, examinem o livre MSX·BASIC PARA CRIANt:,;AS, da editora ALEPH).

For todas essas razoes, mas, principalmente, porque 0 resultado final mostra as possibilidades de seu MSX, segue este progtama. Merece ser digitado, rodado algumas vezes e, ...

Sera que voce tambern nao podera capaz de usufruir rn.elhor cada faceta do seu MSX?I

FICHA DE PROGRA.MA Nome:LOSTSPC.BAS·

Autor: Mauricio G.rassmann Martello Data: dezernbro 1989

Mem6ria Ocupada: 7.898, bytes

Tema: apressntacao de Perdkioe no Espa.'Qo

Oomentartcs: graticos e mustca slmtlares ao seriado de TV. DemonstraQao dos recursos do MSX.

10 ~***************.******************

~2.0 ".)(- LOST IN SPACE *

::10 7*. HOM *

40 '********************************** :i0 i'

60 SCREEN3=KEY OFF

70 PLAyuT138V1004CC+CC+ct+CC+CC+CC+"F"S0 M600TljaL804E-03E-04G03G04B03B050640E-03 E-04G03B04B03B05D04DE-03E-04G03G04B03B05 D040"."80M6&0T138RIR1L1605E-E-RBG-G-R8BB RS06DORE)"

80 FORA,:o:0T040

90 X=INTCRNO(i)*21) i00 Y=INJ<RNOCi)*16)

110 LINE(X*i2rY*i2)-(6+(X*12)r6+(Y*12»)r , B ~ NEXT

120 PLAY"T140L1602CC+DD+EFF+GG+AA+B08CC~ DD+EFF+u r "$0Ml.l00T 1 ast. i. 605E····E-·R8G··~G·"H 8Ei B R 806DDR8HTH80M600T135Li605G-G-R8BBR806DDR 8FF'"

130 PLAY"T140V13L102G"r"T140V13R·4L204G." ,"Ti40Vt3R4L2050~H

140 8:::0

:t. 50 FOR A·<:::i0T02408lfP 1. ~~

160 LINE(ArB)-(A+6rB+6)rrB 170 NEXT

180 9::::9+t2

51

i90 IFB)1B0THEN210 ~:~0'0 GOTO :1, se

~.:! i 0 P l.AY tiT 1~'.~JV1, u, i t)060G+AA+i3 07CC+J)D+t::FF + GF+FI:::D+DC+C06BAii'

220 LINE(108.60)-(188r66)r1rB=lINE(72r72 ) ",. ( :l 74 r 78) • 1. r B : I... IN [ ( 7 ;.;~ r 84 ) .... ( i. 74 7 I) 0,) • i, 7 B ::

I ... I N E ( 72 r 96 ), ",. ( 174 y 1,0 ~.~,) , :L 7 E3

;.;~ ::10 L. I N E ( 1. 1. 6 r l~ (1 ) _, ( LJ j_ y 6 0 ) ~ t, :[ N [ .,. ( 1. ::11. r I) 6 ) ::

L. :r N E _. ( j:7 ~;; 1 '90 ) :: LIN E _ .. ( i 6!5 r 96 ) n .. I N E _ .. ( a ~:.~ . 96 ) ::LINE····(l2.r?0) ::L.INF····(j_:i.67t.lb) ~PAINT( l24.80 )

240 PLAyHTi52V1iL1606GG+AA+B07CC+DD+EFF+ GF+FED+DC+C06BA+AG+GG+AA+B07CC+DD+EFF+GG II r "'$0M~:1000T 140L.40;::.~DD-CO-j.B B .. ··AA~··G .. _h·

")1"'0 I '" Nt'· (7" 6/110). (,' 74 10'1) .( s·" nA' I'" NT ( ~ ... ),.~

I:... ,,::. Irn _ ~ r..:. 1.:. 'V _ YJ ,... :"m • _,. -': c; "¥ .1. J' ~ ""- I '. I ... c; ,,:)1 t

B j, ) , i = L J N E ( 7 ~.~ • ()I'S ) w .. (' 1.7 4 • {, () ) T 1.

260 LINE(1i6~66)-(131r66):LINE-(131172):

LINE-(170y82)~LINE-(162r90):lINE-(85y90) H .. I N E " .. ( 7 7 r l%! ) : t, J N E .... ( 1. i (~ r 7~! ) :: LIN E···· (1 i ,6 • b (, ) :: P,AINT (:U;~01' 70)

270 LINE(66T54)-(i80~10B)~1,B:PAINT(i23, 73) .. 1-

280 LINE(120,68)-(126r68):LINE-(i56~80):

LINE-(90rB0):LINE-(120,6B)cPAINT(122r74) 290 FORT~lT020:NEXT

a00 LIN F.~ ( /.J 0 r 4 B ) .... ( 186 .. j. :i. 4 ) 7 :l r B : r A I NT ( 1. ;;!.<3 ¥ 72),1

810 FORT=lT020~NEXT

320 LINE(i22,72)-(i24.72)RlINE(110~76)-( 136,.76)

330 FORT=lT020=NEXT

340 LINE(S4,42)-(f92,120)ri.B:PAINT(123r .74),1

350 LINE(122,74)-(124,74) :~60 FORT"=i T020:1 NEXT

370 LINE(48,36)-(198,126),i,S:PAINTC123y 74),.1

380 FORT~iT02ecNEXT 390 stHEEN~.;~

400 LINE( 1;!0774)~··( j_~~B.74) CLINE( j_22r7~~)·'-(

i~6 7~')Nll'NE(1~~ 7·~)· ('1~~ 'T'~

u... .'., ~:., . - • _~, __ t:;. ;.:) l' ro·· "~~ • ;.~ .. ",J r c .. )

410 PLAyHS0M20&00Ti4~~4L4040G05004G-GL16 050+0-L2DL2G~L16GG-FEE-DO-C04BB-AA-GGHr" S0M9000Ti40Vl1L402G.03E-~D02G.03E-.DC~C~ 02f303C .. C .. DtI

420 F()R A:~:l0TOJ 5:0

430 X=INT(RND(1)*250) 440 Y=INT(RNDCi)*190) 450 PSET{X,Y):NEXT

460 LINEC120.74)-(128,74)r1:LINE(122,73) -(126r73),1:LINE(i23,72)-(125,72),1

470 LINE(S9,24)-(69,19)=LINE-(73,19)CLIN E·· .. ( 75 ,r ~! I.~,) :: L. ]l NE - ( 7 ~3 r ~'O) :: LIN E: .". ( j (J r ~j 3) :: LINE .... ( H~:, r 67 ) :: L I NE:---· ( 9 i r 64 ) :: LINE .... ( 97 I' 64 ) : L I NE:---·

52

(1.0~!.67) ::LINE····( i0b;76) ::LINE····«(}4177) ::I ... IN~':: "'·(7~~,B1,) ~1...:r.NE····(741.73) :LINE··"(b~;j.5j.) '~LINE"" (~~9 ~24)

4B0 PAINT(60.~.:,~::'.i)

490 LINEC99,35)-C108,32):LINE-(113.36>:L J: N E -- ( l :1. (1 ~ :3 (_II ) :: LIN E ._. ( j_ :to f 63 ) ~ LIN E··" ( i 1 t r 6 7 ) a, I Nf.:--" ( 1. 04 t 66 ) .~ l..1 NE;:-'· ( 1. 00,. b~,'. ) ~ 1...1 NE>-" ( 96 !' ~::j0 ) "I... I NE ..• ( it ~S I' A 0) :: L. :t: NE .. _ ( 9 <? • ~:l ~;; ) II I. .. J N E ( t 0~?' r 4 -<1 )-(t06f43):LINE-(1i0~56)~LINE-(105~57):Ll NE· ... ( i0~~ r 44)

~,:j00 Phl: WI' ( 100,. 36)

51,0 P LAY U S 0 M~! 0 000 T 1: 4 PH 4, L. 4 04 D GO 5 DO 4 G ,'" G L.. :l b 05D+·[)-"I...:.:~DL;':!B""" I... j_ 61] .... ,AA .. ··G(-j~·FEE·",[)D· .. ·C()4B B .. ··8· N,uS8M9000i140Vi1L402G.03E-.D02G~03E-.DC .C_02G03CMC.h02B-"

520 lINE(i36724>-(144r26)ILINE-(146r31)~ LINE-(177r24):LINE-(i80t34):LINE-(166,35 ):LINE-(i68,5i):LINE-(i74~67)cl..INE-(166r 65):LINE-C15,,55)~LINE-(156r3B)JLINE-(i4 9,39):LINE-(146,SB>:LINE-(145,36):LINE-( ~t 3'9'1' ::l6 )

530 LINE(138,36)-(135,33):lINE-C131,34):

LINE-(i3it40)=LINE~(139,41):LINE-(145~43 )=LINE-(146.,57):LINE-(140,571:LINE-(i32, 59):LINE-(129f62):LINE-(124r61)~LINE-<12 at56>:LINE-(125F5i)~LINE-(i29f50):LINE-( 132,~~3)

t;· . 0' L I' N-I::' ( ... ,~_) .. , 0;:- 3 ) (j 37 C' ~.) • l I NrI:~ (13, 8 49)

w4 ". L. _ .1.,\;Jt:;. ~ ,.1, .. _.... f,Je..· _ . 'c,-" '- 'I' .. , I:

LINE-(135~46):LINt-Ci24,46):LINE-(12i'l'37

. , ,

):LINE-(i23,3i)=LINE-(136~24)

550 PA1NT(136r25)

560 LINE(117~77)-(124r75):LINE-(i28v91):

LINE-(124,~5)=LINE-(12.,96)~LINE-(ii7,77 ):CIRCLE(120,70),4;PAINT(120,67):PAINT(1 Hl,.7H)

570 L1NE( i.367fd~ )~ .. ( 141 y60) :LINE'--( :l44~ld. >: lINE-(146793)=LINE-(i42~93)=llNE-(135~72 ):LINE-C137,92):LINE-C130.90):LINE-Ci29r 77):LINE-(127,67)~LINE-(i32r64)~LINE-(i3 8,72)~LINE-(136761>

580 PAINTC137,62)

590 LINE(90,94)-(95,97):[INE-C9B,i07):LI NE-(96.il1):LINE-(B7,112):lINE-(B4,107):

LINE-(71,i12):LINE-C74;121}:LINE-(83,i19 ):LINr-(90,li9):LINE-(94ri28)~LINE-(96,1 47):LINE-(65,160):LINE-C60,i60):LINE-(57 r1~)n)

600 LINEC57Ji58)-(S2,146>=LINE-(67,139); LINE-(72,144):LINE-(77.144):LINE-(83,140 ):LINE-(83,133);LINE-(19,t31):LINE-(707i 34)~LINE-(63r130)cLINE-(Sa,120):LINE-(58 1110):LINE-(62,104):LINE-(90,94)

61~ PA:tNT(90,95'"

53

620 LINE(i12~18i)-(119,98):LINE-(i30r97) :lINE-(138r101):LINE-(14B.114):LINE-(152 ~i25)~LINE-(154r138):LINE-(154p143)~LINE -(150r144):LINE-(143.144):lINE-C,43;142) :LINE-C136.144):LINE-(i2S.143)CLINE-(126 ~139):LINE-(124.i32)

630 LINE(i24r132)-(123~142)~LINE-(120ri4 6 ) : L. I N E··, ( 1. j, :J , 14 B ) : L :( NE ... , ( i 0 B T 14.7 ): LIN E -- ( 1. 09,162)=LINE-(1.0By165)~L]NE-(1037169)=LI NE-(100r169):LINE-(100fi35):LINE~(97,ti8 ):lINE-(99,i12):LINE-(104,110):LINE-(!12 T Lt::~)

64e lINE(112,113)-(12iril1):LINE-(124,ll 8):LINE-(126,12i)=LINE-(128r1i7):LINE-(1 32r114):LINE-(136,i13):LINE-(135,110):LI N 1=: -- ( j'::l0 I' j, 06 ) :: L I N E ._. ( i 23 r 1 05 ) :; L I N',IE: - ( i 1 3 II' t 0 5):LINE-(ili,i03)~LINE-(112,10i)

650 CIRCLEC112,12B),.7",,2=CIRCLEC137,12 7),6rr,,2;PAINT(119 .. 99)

660 LINE(160y9B)-(164r99)~LINE-(17i,112) ~LINE-(163~115):LINE-(1637i11}:LINE-(16i .i10):LINE-(i58rl11)~LINE-(i60Fi20):LINE -(164,i29):LINE-(165~130):LJNE-(i6ar128) :LINE-(167r125)=LINE-C175.125)cLINE-(177 r1~3B)

670 LINE( 177, .. 138)~" (1,74, i.4~~) =I..INt>( 164, 14 3):LINE-(i60ri40):LINE-(i51,116>D'LINE-Cl 49~f09)~LINE-(i50r104)cLINE-(i60,98):PAI NT(160,9<"y)

680 LINE(193r98)-(195 .. 107):LINE-(184,i09 )=LINE-(186r114):LINE-(194~li2)~LINE-(19 6 • i ;';~0) : I... I NE _. ( i B 87 1.22) :I L. I NE _ .. ( j. 90 r 127 ) : LIN E-(200r12S):LINE-(206,125):LINE-(210,135 ):LINE-(194~137)=LINE-(183,139):LINE-(i7 Brl~?'6)

690 LINE(17Br126)-(172,103):LINE-C193,98 ) :PAINT( j,92r9(})

700 PLAyNRAL403G06D+05B06CGDD+upNR4L404G GGGGGG".uT140V13L102AAu

710 FORT~lT02000~NEXT

720 FORA~0T060STEP6

730 LINE(170+Af30)-(i74+Ar54)'7B~NEXT 740 FORT~lT0100:NEXT

750 FORA=0TOi20STEP4

760 LINE(230-A,50+Al-(234-A,54+A).rB=NEX, T

770 FORT~lT0100=NEXT 780 FORA=0T090STEP4

790 LINE(ii0-A,170-A)-(li4-A.174-A)r~~=N EXT

800 FORT~lT0100:NEXT 810 FORA~0T01108TEP6

820 LINE(20+ArB0)~(24+AF84)prB=NEXT

830 PLAY"SlM60000R4LI06A."r"R4VljL3206DD~

54

+ED+EFEFF+GF+BG+AG+AA+AA+aA+B07C06B07CC+ CC+DDDNr«S0Mb000L402003D+D+DO+DO-Ou

B40 FORA~0T030STEP4

950 LINE(130-(A/2)~80-A)-(134-(A/2).84-A

)"B:NE:XT

B60 FORT=1T0100=NEXT 870 FoR A"::0l0 i. ~30STEP 6

980 LINECii5-CA/21,50+A)-C119-(A/2)¥54+A )r.rEUNE~XT

890 fORT~iT0100:NEXT 900 FORA=0T0180STEP6

910 LINE(50+(A/3)r180-A)-C54+(A/3),184-A ).r , B: NEXT

920 PlAY"R4L405G06D+05B06CGOO+#ruR4L404G GGGGGGN,llT140V13Ll02AAN

930 FORA=0T0180STEP4

940 LINE<li0+(A/2),A)-(i14+(A/2),4+A),tB =NEXT

950 FORT=1T01e0:NEXT 960 FORA=0T0160STEP4

970 LINE(200-A,180-A)-C204-ArlB4-A)r,B:N r::XT

'jlE10 PI ... AyIiF~4L..;~06A M 1....407[)J', uR4L1606DD+EFF+G G+AA+B07CC+DH,HS0M6000l402A03F+FEDH

990 PLAyllS0M5000V12L401A+AA-Hr"S0M5000Vl ~~L.40;'~A+AA~_u

1000 FORA=0T0220STEP6

1010 LINE(40+A~20)-(44+A,24)r~B:NEXT

:1.020 PLAY"/B0M~~0000Ti 37R 4L,404DGO~;D04G'·"GL i. ,f.lO:5D+D .... L2DL2G" L 16GG-"FEE"-OD-C04BB ····AA-··GG" "t uS0M9000Ti36ViiL402G~03E-.D02G.03E-_DC.C • 02GO :~C " C .. 0"

1030 FORA=4T0251STEP4 1840I...INECAr0)-(Ar192),l:NEXT

1050 PLAY"S0M30000R4l404DG05D04G-GL1605D +1-)·· .. 1...20u "t uS0M9000V l1L4()~~G .. O:3E·~· .. DO;;.~G If 03E ...... [)"

1060 FORA=5T0250STEP4

1070 LINE(A,0)-CA,192),1mNEXT

1080 PLAYHLiB-AL40H,"LiCOU,NTi34V14l1606 DD+EFF+GG+AA+B07CC+DR4~06GG+AA+807CC+DD+ I::'FFG. n

1090 PLAyuS0M2000V12L402FEE-"rHS0M2000Vi ~~.L403FEE-N

1100 FORA=6T0249STEP4

1110 LINE(Ar0)-(Ar192)rl~NEXT

1120 PLAyHT137V12L2C+MV13A+~V1503GHy"T13 7Vi2i~ 4L~~O;2E g V 1403C+ "V 15L4A+n , NT 1. ~37Vj, ::~R~21.. ~:~02G .. V1403E. u

1130 FORA~7T024BSTEPa .

1140 LINE(Ay0)-(A~192)¥1:NEXT

1150 PLAY"L3205GO+AA+B06CC+DD+EFF+OG+AA+ B07CC+{)D+EFF+GN T "R ibL.320~jQG+AA+B06CC+DD+ EFF'H,(3+AA+B07CC+DD+EFF+(j""

55

1160 FORT~iTOi500~NEXT 1170 SCREEN1:ClS:LOCATE7~2 j,1E!0 PRINT';L..OBT ,1:N BPIACE

1190 LOCATE5p6~PRINTHMGH SOFTWARE 1989" 1;,?0'0 PLAyu80~I(;j000L.40,~:!G" t Ir~)0M6000L.40~Wu , u S0M6000L404G"

L2:l0 GOT01;.:~i0

56

CAPITULO-8 A SORTE DE CESAR

Se voc€! pegar um grama de urn material altamente radioativo ... CEUSI Nao 0 faca! Nao foi isso que eu quis dizer, Deixe-rne recomecar.

Se voce considerarum grama de urn material radioativo, podera se referir a meia-vida desse material - isto e, a quanta tempo Ievara para que a metade dos atomos instaveis que compoem 0 material se transformara, tornando-se estavel e emitindo, no processo, uma quantidade de energia,

Mas, por que meia-vida; por que os Ffsicos DaO se refererna.; vidainteira daquele material?

Estamos nos aproximando do problema que quero dernonstrar. Ocorre que nenhum ffsico do planeta consegulra prever - seja de que forma for! - qual dos atornos daquele grama de material emitira radtacao. Mais ainda: sera lmpossfvel calcular "quando" urn dos atornos "decaira", isto e, emltira energia e tornar-se-a mais estavel,

Tudo 0 que se consegue e calcular n probabilidade de que urn "certo numero de atomos" emitira, num "dado intervale de tempo", uma certa quantidade de energia. Alias, bastam alguns aparelhos e paciencia e voce conseguira estabelecer quando 0 nfvel de energia tera caido .pela metade: olhe no re16gio e voce ten} a "meia-vida" daquele materialespeerfico.

Se se tratar de -Cesio-137, DO entente, voce tera de esperar por volta de 37 anos para determinar, por simples observaeao, sua meta-vida. Para outros isotopes, no entanto, a meia-vida e tao breve Que obriga a processes bern mais complicados que olhar em urn rel6gio de pulse ... Trate-se de urn isotope mais estavel e com meia-vida Ionga; nu de urn mais instavel, de curta meia-vida, 0 que resulta sempre e a casualidade com que urn especifico

57

atomo emite radiacao num dado espaco de tempo. Pensando as avessas: usa-se a meta-vida de urn is6topo por ser impossfvel de terrninar quando 0 "pemiltimo" ou 0 "ultimo" atomo emitira radiacao, Podera ser no instante seguinteou dentro de urn "quaquilhao" de anos!

Nao conheccexemplo mais belo da casualidade , Propositalmeute . estou evitando a palavra "sorte".

Porque "sorte" tras a mente, de imediato, "azar", E quero falar de fenornenos purament.e casuais ou aleatorios.

Mas nao adiantal A pr6pria palavra "aleatoric" vein do Iatim, "alea", E de pronto, lembro-me das palavras de Julio Cesar: Alea est iacta com duas traducoes possfveis:

(a) "A sorte esta lancadal" (b) "0' dado foi jogadol"

Desconheco essa peculiaridade na pe rsonalidade do grande Cesar, mas talvez ele tambem estivesse, na epoca, faze ndo DIn jogo de palavras ...

Essa frase, ocasionalmente empregada com grande impacto - af'inal, _quem faz citacoes em latim, hoje em dia?! - mer ece comenrarios. Se voce estiver urn pouco interessado em Historia, leia 0 que segue. Caso contrario, procure 0 final deste cementario,

Pausa para um comeatarto,

Conta Gaius Suetonius Tranquillus, um historiador e bi6grafo romano que viveu por volta do ano 100 de a hist6ria de Julio Gaius Cesar, da qual segue uma parcela resumida,

o Senado romano, constituldo por uma aristocracia corrupta, tinha levado 0 pais ao desemprego, ao imperio do suborno, corrompendo a Assebleia e a. tornando incapaz de governar a si propria, quanta mais ao imperio.

A figura de Julio Cesar - homem de imimeras qualidades no campo de batalha e mesmo como administrador - se impunha de maneira preocupante. Ele poderia tornar-se rei au ditador. Temerosos de perderem suas vantagens e sinecuras, os aristocratas montaram esquemas para a verdadeira destruicao polttica de Cesar; se alcancassem exito~ ele poderia ser ate exi1.ado!

Tendo de reagir - ainda que a contragosto - as ordens da Assembleia, Cesar foi honesto com suas tropas, numericamente multo inferinres aquelas de seus oponentes, e delas obteve total apoio. Voltariam em cam .. panha ate Roma e enfrentariam 0 que desse e viesse.

Logo antes de cruzar 0 pequeno curse d~agua, 0 Rubicao, que limi .. tava a Galia Cisalpina - e de demonstrara todos suas reais intencces - Cesar fez sua declaracao hist6rica: Alea est iacta! - e ap6s dernonstrar urn alto espfrito de luta e respeito pelos adversaries, entrou vitorioso em Roma.

58

--------

Em curto espaeo de tempo, ap6s ter anistiado seusinimigos, Cesar reinstaurou a ordem social, recolocou tesouro em ordem e ,_ ao contrario do que se poderia supor ~ 56 provocou 0 6dio e a inveja dos aristocratas, Movidos par um e Dutro motivo e, alguns deles, tambem odiando 0 fa to de Julio Cesar haver "destruido" a Republica e se autonomeado ditador - talvez ate mesmo rei'! ~ passaram a conjurar contra ele.

Envolveram ate mesmo Marcus Brutus que _ diziarn as mas e boas ltnguas ~ poderia ser filho bastardo do ditador com Servflia, de quem era amante na epoca do nascimento de Brutus, A sugestao de assassinate do usurpador da Republica veio naturalmente, pais, para gregos e rornanos que seguiam a linha filos6fica do estoicismo, era moral 0 tiranictdio.

No amanhecer de 15 de marco - de onde ate hoje a frase "Cuida-te dos idos de Marco" ~ apesar da prernonicao 'de, sua esposa, da insistencia de urn seu escravo, Julio Cesar contrariou-os, dirigindo-se para 0 Senado, Em meio caminho cruzou por Spurina, urn profeta que 0 havia advertido para "cuidar-se nos idos demarco": "Ves" - disse ao profeta - "chegamos aos idos e nada ccorreu."

Ao que teria respondido Spurina: i'OS idos de marco chegaram ... mas ainda nao passaram!"

Quando entrou no anfiteatro, os "libertadores' atiraram-se sobre ele, lutando para esfaquea-Io enquanto Cesar se defendia com empenho.

"Alguns escreveram", eonta Suetonio, "que quando Marcus Brutus tarnbem correu para ataca-lo Cesar teria dito em grego: Kai su teknonl? (Voce, tambem, meu filho!")"

Dai em diante,cobrindo a face e a cabeca com 0 manto, Cesar deixou de resistir e caiu Duma poca de sangue,

Foi esta a sorte de Cesar, cnja acepcao tambern e ... Destino.

Fim do eumentarto ..

A funcao RND -de RaNDomico, outro sinonimo para aleatoriopermite ao MSX simular a natureza de forma bastante aproximada. Mas ha

que se tomar alguns cuidados. '

Para que voce perceba, na, pratica, o que ocorre, antes de continuar a leitura ligue seu microcomputador e aeompanhe-me nas instrucoes, Va.mos usar 0 MSX mais uma vez como Ierramenta de experirnentacao.

Digite esta mini-rotina:

10 FOR N = 1 TO '10 20 PRINT RND(~3) 30 NEXT N

59

Digite [FS] (ou RUN) e constate que, por dez vezes 0 resultado sera identico:

.843898~

Mude 0 argumento entre parentesis e tente de novo: 10 FOR N:;;:; 1 TO 1 a

20 PRINT RND(-5689)

3'0 NEXT N

Comande RU N e, de novo, dez resultados identicos entre si,

Ate aqui as resultados de RND nao foram muito interessantes. Vamos mudar o "argumento", agora, para urn mimero positive - por exemplo, 5

Ahl Viu s6? Agora ternos dez numerus diferentes entre si, sorteados ao acaso,

Mude de novo 0 argumento para 5817 (ou qualquer Dutro que aehar simpatico), RUN novamente e ....

Epa!' Os dez numeros continuam diferentes entre si por em sao exatamente iguais a quando 0 argumento era 51

Observe que a sequencia e Sempre a mesma, como numa roleta viciadal Ou Duma maquina de Poquer viciada!!! J3 percebeu par que e burrice jogar contra uma maquina comercial? No geral estao programadas para ganharem quase sernpre; voce s6 ganha raras vezes para ser estimulado - como 0 cachorro de Pay-loy com a campafnha - a deixar mais dinheiro

para ,a casal '

Entao 0 MSX nao gera mimeros ao acaso? Nada disso: TIME e uma fUj[H~ao reservada do microcomputador que depende da corrente eletrica, Vamos esmiucar urn poueo mais,

Estamos acostumados a pensar na re.de cletrica como oferecendo uma "vnltagern" - realmente uma tensiio ~ de 110 ou 220 volts. As coisas nao sao simples assim: na verdade oferece-se 127 volts nurna fase e 0 dobra em ambas: 254 volts) portanto, Mas tambem nao e assirn: chegam apenas 230 volts em arnbasas fases.

Mas nem isso, gente! Ha regioes do Pals com 280 volts, ou 220 ou 170 volts - e coitados dos Iabricantes de equipamento eletro-eletronico.

A unica coisa com que voce pode contar - e esta nao apresenta flutuaqoes - e a freqtlencia da re de. Se esta esquecido, relembre no capitulo do P~NDULO DE FOUCAULT: sao 60 ciclos por segundo, ou 60 Hertz.

E baseado nesta frequencia estave] que 0 TIME funciona, incrementando sua contagem desde 0 instante em que 0 micro e ligado ate 0 memento em que voce digita

PiRlNT TIME

60

e ele corita quantos segundos decorreram desde 0 inicio da jornada de trabalho, E claro que 60 Hz da rede eletrica levam 'a pensar em ... 60 segundos pOI minuto e 60 minutes por bora. Nao e por acaso que no "100 DICAS PARA MSX" foi proposto urn despertador - alias urn dos rnais dispendiosos despertadores do mundo! - atraves de urn programa.

Mas agora vern 0 truque: se unirmos a funcao RND para que comece a contar em funcao de TIME, voce ha de convir que sera quase imposstvel dois microcomputadores MSX serern ligados ao mesmo tempo e passarern a gerar os mesmos numerus aleatorios.

Experimente:

10 FOR N = 1 TO 10

20 PRINT RND(- TIME) 30 NEXT N

40 FOR T= 1 TO 1QOO:NEXT:'INTERVALO 50 FOR N = 1 TO 10

60 PRINT TAB(10); RND(-TIME) 70 NEXT N

RUN

Observe que as duas contagens - a segunda, aprese ntada apos urn. certo intervalo ~ sao diferentes entre si e que, se voce repetir toda a experiencia de novo, obtera resultados diversos. Se ternar ainda mais uma vez, mais resultados diferentes serao gerados!

Pronto! Mesmo para experimentacnes cientfficas, com born gran de, confiabilidade, voce podera usar essa maneira de gerar mimeros ao acaso, ou aleatoriamente.

Alguns programas, mais a frente, fazem usa dessa capacidade do microcornputador. As aplicacoes sao inumeras ...

Boa sorte!

61

CAPITULO-9 UMA COISA LEVA A OUTRA ...

100 INPUT I

110 C = (I) A (1/1) 120 X=C

130 X= C A X:PRINT(1000*X+ .5)/1000 140 GOTO 130

Este esqueleto de uma pequena rotina, adequadamente rotulada de "EXP,BAS" (significando EXP[erH~ncia,]), foi elaborada pelo nosso estimado editor, Pierluigi Piazzi, para dernonstrar que, com 0 advento dos computadores, a matematica passou para 0 campo das ciencias experimentais. Basicamente trata-se de uma rotina iterativa, para resolver uma sequencia de equacoes de forma:

x" + 1 ;-.CXn

onde, e facil perceber, x'' + 1 == f(Xn).

Assim, estabelecido urn, valor inicial Xo, temos:

X1 =C· x, X2 =CX, Xn+1 =CXn

,_ :II • flo • .,. I

U rna compiicacao adicional foi, maquiavelicamente, introduzida na Iinha 110: e a forma de calcular 0 valor da consrante C. Experimente cornecar fazendo r = 0.1 e va progressivamente aumentando para 0.2, 0.3, etc.

Veja que, para cada valor de It obtemos uma sequencia de valores de X que voce podera interromper quando achar necessarie, NAo desista

63

muito cedo e experirnente continuar ate fazer, pelo menos, 1= 4. Resultados curiosos, nao? Uma ideia do por que destes resultados podera ser obtida fazendo-se uma lista dos valores de C obtidos a partir dos sucessivos valores atribuidos -3 I:

t 0 C L s :: I( E Y 0 F F

~.~0 "CALCULO DE C

~:l0 :I:::;:,,:t ~ N:::;j_

40 PRINT

CN:::PHINT 510 C;:;J-(I)"'(i·-l)

60 PRINTUSIN~H#~»# .. tUBt" .. #.' r N ~ I ; C

70 N;;::N+1.

80 I~r+ .. l.

90 001'0 ~;;0

N

I

JHHUt+HUt • M #

Entao? Sera que, sem experimentar, seria possfvel calcular 0 valor de X para N = 100, fazendo r = 2.393, por exernplo, sem passar pelos valores intermediarios? Sera que, sem experirnentar, ser ia posstvel descobrir uma regra que explicasse os valores obtidos? At6 certo ponto, sim, Observando a forma de calcular C verificamos que 0 sen valor, partindo de 1 = 0.1 tende a crescer ate ficar igual a 1 quando, obviamente, I for, tambern, igual a 1.,

Continuando a aumentar 0 valor de I, entretanto, e de presumirque a expressao entre parenteses (1/1) vai tender para 0 eque, consequentemente, C tendera para 1, pois qualquer mimero elevado a 0 e, por convencao igual a 1. X; por sua vez, tambem tendera para 1, urna vez que a unidade elevada aqualquer poteucia sera sempre igual a 1.

Fazendo-se os calculos para X com valores crescentes de I (I), entretanto verifica-se que, durante algumas iteracoes, 0 valor de X cresce, ficando igual ,30 valor de I introduzido no programa. Somente depois de atingir urn cerro ponto e que comeca a diminuir, tendendo, agora, definitivamente para 1. Resultado curioso e, pelo menos para quem DaO e materna .. tico, inesperado. 0 calculo dos valores de C de acordo corn ja retina apreseutada nos dara a necessaria explicacao.

U rna colsa leva a outra ...

Dutro exemplo de experimentacao em que a retina iterativa proposta aplica-se perfeitamente e fornecido pela maternatica do caos que vern sendo deseuvolvida nos ultimos anos. Aqui sucede alga de muito curioso e inusitado: certos fenomenos que podern ser descritos par modelos materna .. ticos bemdefinidossao, apesar disso, absolutamente imprevisfveis 'em certas condicoes. Nao sera surpresa para ninguem que as principals ideias a esse respeito tenham surgido da analise de fencmenos metereologtcos, Oualquer urn que tenha deixado 0 guarda-chuva em casa, ap6s ter ouvido 0 homem do tempo, nao tera duvida quanta a i880.

64

Para esclarecer esse aspecto, 0 exemplo mais tfpico, que tern sido exaustivamente comentado, e 0 do crescimento de populacoes em presenca de uma quantidade constante de alimento, assim como uma populacao de peixes num lago, excluindo-se, e clare, a inter-ferenda de fatores como dnencas, pragas au 0 homerrr, Descreve-se 0 tamanho da populaeao num determinado momenta par urn numero que e uma fra<jao da populacao maxima possfvel. Esta e representada pOT 1; a extincao total seria 0 . A taxa de crescimento e representada par A, e 0 tempo por t. A equacao classica que descreve 0 fenomeno e:

x'" 1 "==' A.Xt(1-Xt)

Esta implicito nessa expressao que 0 tamanho da populacaonum determinado espaqo de tempoe uma funcao de seu tamanho no perfodo anterior. Aexpressao i-x' e 0 Iator de retro .. alimentacao que estabelece urn limite para 0 crescimento. E 6bvio que, quando a populacao ultrapassa certo ponto, a quantidade de alimento torna-se insuficiente e 0 crescimento para ou diminui,

Fazendo .. se t = 0 temos: x2 = A.X1 (1-X1)

xt+ 1 =Xt(1_Xt)

Teoricamente se ria possfvel obter uma equacao para qualquer valor de t, substituindo-se, em cada momento, ° valor de X pOT seu valor obtido no momenta anterior. Assim:

X1 = A.Xo(1-Xo)

X2 = A(A.Xo(1- (Xo), (1-A.Xo('1-Xo») etc., etc, ....

Como salientou Franco Vivaldi em exce.le nte artigo sabre 0 assunto (Folha de SiPaulo, Caderno de Ciencia, 10/ 11/1989), ao fazer-se t = 30, pOT exernplo, a equacao resultante ocuparia todos os volumes da biblioteca do Museu Britanico. Unica solucao possfvel: Experimentar, calculando cada valor de X ate chegar ao valor no tempo t desejado,

Ao se fazer isso para diversos valores de A e de Xo, verifica-se que, em certos casos, a populacao estabiliza-se rapidamente num valor intermediario, 0.5. Outras vezes, fica oscilando entre valor es superiores e inferiores, sem nunca se estabilizar, E, finalrnente, em certos casas, 0 tamanho da populacao fica variando de forma totalrnente irnprevisfvel, nunca repetindo quaisquer valores atingidos anteri ormente. E 0 CAOS resultando de equa~oes perfeitamente definidas.

A rotina seguinte permite calcular X, para as diversos valor es atribuidos a A e a XO (que represenra 0 tamanho inicial da popul acao),

65

FICHA DE PROG·RAMA Nome: CAOS.TXT

Au-tor: Lucio P.de Carvalho Lima Data: Janeiro de 1990

Mem6ria ocupada:

'lema: Matematica do Cacs

Comentarios: a partir de uma breve retina de reiteracao a autor leva a Maternatica do Caos de forma clara e natural.

se CLS::I<EYOFF

20 PRINT H ****** C A 0 S ******":p

.R 1 NT: p I~ I NT

30 PRINT H X ~ A.X n(l-X )"

40 P~INT H t+1 t t"~PRINT

50 INPUTHA=u~A:PRINT;INPUTnX0:";X0=PRINT b 0 J N PUT uN Ii In e r 0 d e i t € I" a <;: '():es;: 1/; F

710 CLB

8e PRINT" t X""PRINT

90 X:mX0

:1.00 PRINT UBING"UIUt 4L #iUHtHN ~ N ~ X

. :i 10 N= j,

:i. ~! 0 X ~:: X * ,A '* ( 1 . __ . X )

130 PRINT U9ING"##" ».""~~""~N;X

j_40 N===N+J.:: IF N"=F+l 1'HEN END

1.50 CiOTO j_ ~~0

Se voce preferir que 0 processo continue sem interrupcocs - como salienta Vivaldi, os computadores "adoram" iteracoes -, suprima a Iinha 50 e retire, da Iinha 130, 0 comando: ,IF N = F + 1 THEN END.

Sugestao: experimente os segnintes valores:

A=2



A=2

,

Xo =0,2; A=,3236

- . ,

Xo=3,5; A = 3~236.

Xo=O,35; A=4,

Xo = 0,40001.

Xo=O,4; A=4



Xo =0 4"

I "

66

'"

CAPITULO-lO

A PENEIRA DE ERA1'O STHENES

Bratostheues foi urn celebre matematicovastronomo e fi16sofo grego, da escola de Alexandria, nascido em 276 aC em Cyrene, Egito. Aos 80 anos (196 a.C.) resolveu suicidar-se deixando de comer - morreu de fome. Foio primeiro a caleular, de forma verdadeiramente cientffica, a circunfersncia da Terra. Entre outras coisas descobriu, par volta de 250 a.C; urn processo perfeito para determinar 0 numero de primos entre 2 (0 primeiro deles) e urn numero qualquer.

Deixando de Iado os numeros negatives, podemos dizer que urn determinado mimero e primo quando e divisfvel apenas por si mesrnos e por urn (que, por definicao, NAo e urn numero prime) ou, em outras palavras, e urn mimero que nao pede serexpresso como 0 produto de dais mimeros menores do que si mesmos. Assim, 2, 3·, 5, 7, 11 sao primos.Pensando urn pOll eo, fica 6bvio que, com. execaode 2, nenhum mirnero par e prime; com excecao de 5, nenhum numero terrninado em .5' ou 0 e primo mas, mimeros terminados em 1; 3, 7 au 9 poderao se-lo.

o proeesso consistia em fixar urn Iimite - 100 por exernplo - e cornecar riscando todos as rruiltiplos de dois. Passava-se, en tao, ao proximo numero nao riscado, 3, e eliminavam-se todos os seus multiples. 0 mimero seguinte, 4, ja estava riscado. Passava para 0 seguinte, cinco, tirando seus multiples. Ia fazendo 0 mesmo com os numeros seguintes, ate que nao houvesse mais possibilidade de riscar mimero algum .. Os que nao estavam riscados eram.obviamente, as primos existentes entre 2 e 100.

Esse metoda infallvel tinha, e. tern, Ulna grande desvantagem.enquanta 0 limite e relativamente baixo fica fad} calcular, mas, para Ii mite 5 muito grandes, isso se torna Impraticavel. Como nao ha, ate hoje, urna

67

formula para calcular numeros primos, esse pr ocesso, conhecido como a Peneira de Eratosthenes, continua sendo 0 iinico possfvel,

Peri.odicamente alguern redescobre 0 metoda e fica frustradfssimo 310 saber que outro 0 antecipou, Isaac Asimov conta que, Frederick Pohl, um dos importantes escritores de Iicqao cientffica, quando era jovem, passou por essa experiencia, Cementa que, realmente, nao h<1 motivos para tal frustracao pois qualquer urn capaz de repetir 0 processo mental de Eratosthenes forcosamcnte tern urn cerebro privilegiado. Desconfio que este seja o easo de nosso caro amigo, Pierluigi Piazzi, autor da retina para calcular os numeros primos. entre 2 e 2000 e que possui urn 01 estratosferico, suficiente para qualifica-Io para membro da MENSA, uma associacao internacional de genios que conta, entre seus membros, uma colecao das melhores cabecas do planeta.

Mas, afinal de contas, porque toda esta celeurna em torno dos tais

'" .?

numeros pnmos .

Nao sei. Ate hoje, que eu saiba, nao ha qualquer apliC3<13.0 pratiea para os mimeros primos. Se nao me falha a mem6ria, alguern sugeriu que, numa mensagem para eventuais seres inteligentes extraterrestres, a inclusao de uma serie de numeros primos seria uma demonstraqao insofismavel da existencia de seres inteligentes tambem na Terra. Seja 14 como for, 0 interesse pelo assunto e antigo, como se ve. peto que ja cornentamos. Mais alnda, por volta de 300 ae., Euclides demonstrou que 0 numero de primos 6 infinite. Essa demonstracao tambem e redescoberta periodicamnte. Isaac Asimov, Dum interessantfssimo ensaio sobre 0 assunto ("Prime Quality" in "The Left Hand of the Electrnn", 1974), explora uma serie de problemas relatives aos primos:

• 0 numero de primos diminui a medida que se prossegue na serie de mimeros naturals?

• H6 alguma ordem previsfvel na sequencia de mimeros primos?

• Rei alguma ordem previsivel no mimero de Niio Primos inter-

calados entre dois primos quaiquer? '

Estes e outros aspectos poderao sec analisados, executando-se 0 program a elaborado por Pierluigi, que apresentarnos a seguir:

68

FICHA DE PROGRAMA NOME:' PRI M OS. BAS

AUTOR: PIERLUIGII PIAZZ,II DATA: janeiro de 1990 Mem6ria Ocupada: 179 bytes

TEMA: Penelra de Erat.6sthenes em versao para MSX

COMENTARIOS: de infcio 0 processo e lanto, mas val, gradualmente. se acelerando. Com a rnodlflcacao de poucas llnhas, arnplla-sa a quantldada de numeros primos identlfleados ate 0 limite de capaeldade de mem6ria do MSX

1~0 '******************************* 110 '* NUMEROS PRIMOS *

120 ~***************.*************** 1:30 I{EYOFF ::CL.S

j.40 T I r'iE:;::0

1:50 DCFIN,. A~··Z

j, 6 (1 [) I M A ( I> 000 )

170 FOR 1=2 TO 2000

180 IF A(I)=0 THEN GOSUB 230 190 NEXT I

200 PRINT TIME/60 ~H0' END

240 FOR N=2*I TO 2000 STEP I

~!~J0 A(N)~"'1.

;;!60 Nt:X T N ;'!70 I~FTl.IRN

69

Pierluigi explica 0 algoritmo utilizado da seguinte forma: 0 primeiro mirnero, 2, e prime e marcado par A(2) = O. Passamos, em seguida, a marcar todos as multiples de 2 entre 4 e 2000 com 0 valor 1:

A(4), A(6}, A(e)" .... "jA{199S), A(2000) = 1

o mimero seguinte, 3, que tambem e primo e rnarcado como A(3) =0. Seus mnltiplos serao marcados com 1:

A(S). A{9), A(12), ., ..... , A(1995), A(1998) = 1

o nurnero seguinte, 4" ja foi marcado como 1, pois erruiltiplo de 2.

Passamosentao para 0 proximo mimero nao marcado, 5, :e repetimos 0 processo ate chegarmos a todos os rnirneros primos entre 2 e 2000.

Como se ve, uma aplicacao perfeita da PENEIRA DE ERAT6STHENES.O processo e, inicialmente, lento, mais vai rapidamenteacelerando,

Se 2000 e insuficiente para seus estudos faca as seguinte modifica-

~6es:

130 DIM A(11500)

140 FOR 1=2 TO 6000

210 FOR N = 2*1 TO 6000 STEP I

Assim voce obtera todos OS, ntimeros primos ate 5779.Mais do que isso a mem6ria do MSX nao permite.

70

CAPITULO-Ii MAURicIO DE NASSAU, DESCARTES E 0 PENDULO DE FOU,CAULT

Todo mundo sabe quem foi Mauricio de Nassau, prtncipe de Orange que, de 1637 a 1644,governoUl Pernambuco durante a segunda invasao holandesa. 0 que talvez nao sejamuito conhecido ~ 0 faro de que ele era extremamente inteligente e culto, alem de excelente administrador,

Tambern poucos sabem que, ao voltar do Brasil para a Holanda, ele teve, por duas vezes, a oportunidade de defender e dar urn decidido apoio a alguern que" em 1618, ja havia servido voluntariamente sob suas ordens na Escola Internacional de Guerra da Holanda: Rene Descartes, que estava sofrendo violenta perseguicao de fanaticos religiosos que se opunham as, suas ideias filos6ficas. Descartes, segundo Bertrand Russell, Ioi 0 precursor da moderna filosofia; era urn genic e, desde aquela epoca, achava necessario preservar as maquinas utilrzadas pelos artesaos e expo-las em lugares onde fosse possfvel apreciar seu funcionamento. Este extraordinario objetivo s6 foi concretizado multo mais tarde, aos 18 de vindimdrio, ano III da Revolu~ao Francesa (17 deoutubro de 1794), quando a Convencao decretou:

"Sera constitufdo em Paris, com 0 nome de Conservatoric de Artes e Oftcios, urn deposito publico de maquinas, ferramentas, modelos, desenhos, descricoes e Iivros de todos os tipos de artes e offcios; 0 prot6tipo dos instrumentos e das rnaquinas, inventadas OU aperfeicoadas, sera depositado no Conservatorio, ( ... ) Serao explicadas a construcao e 0 ernprego das ferramentas e maquinas uteis as artes e offcios.",

Se algum dia voce for a Paris, certamente devera dar urn pula ate a rua St. Martin, 292, e visitar, pelo me no'S, a SCli30 de Ffsica e Mecanica do Conservatorio, No fundo de uma sala imensa, rep leta de automoveis, locomotivas, bicicletas e maqulnas de todos os tipos, fa esta ele, 0 pendulo

71

lmaginado por Foucault, permanentemente oscilando para dernonstrar que

a Terra gira, .

E clare que, se desligarem os eletroimas que 0 rnantem funcionando, dentro de algum tempo a amplitude das oscilacoes ira diminuindo e, even .. tualmente, 0 pendulo parara.

Da mesma forma, uma corda de violao, guitarra, harpa au p-iano, quando tangidas, vibram. Podemos acompanhar visualmente 0 fenorneno e verificar que a corda forma uma especie de fuso, cujo diametro vai dirninuindo ate parar. A nota ernitida vai progressivemente perdendo intensidade. 0 mesrno sucede com urn diapasao au urn capo de crista]' Em todos os casos, ha uma coisa em cornum: 0 que dirninui e a amplitude da oscilacao, mas a frequencia continua amesma, isto e" 0 mirnero de vezes que cada ciclo se repete na unidade de tempo permanece constante.

Se representarmos 0 fenorneno num grafico cartesiano - ca est-a Descartes ou tra vez -, onde, nas abcissas, colocamos 0 tempo e, nas ordenadas, a amplitude, obteremos uma curva ondulada, que e descrita como uma sinusoide ou sen6ide, mas cuja amplitude vai progressivarnente diminuindo.

A rotina 1 ilustra 0 que acabamos de dizer. Repare que 0 amortecimenta da onda e bastante rapido, Isto acontece porque, na linha 300, Pierluigi adotou uma expressao logarftmica para esse fim. Se voce preferir urn amortecimento mais vagaroso, aritrnetico, faca as seguintes substitui~oes:

250 FOR A= 10*PI TO 8S*PI STEP 7.9*PI

280 FOR A + 18*PI 2*P1/48 STEP -2*PI/48

300 X = 255-{3.95*A):Y = 90 + A*SIN(A)

E~ como uma coisa leva a outra, lernbramos que, da mesma forma que uma onda pode ser amortecida, ela pede, tambem, ser reforcada, Se, cada vez que urn pendulo cbegar ao extremo de uma oscilacao, dermos um empurrao, as oscilacoes ficarao cada vez mais amplas, N a verdade, tudo 0 que existe tern urn periodo de oscilacao que lhe e caracterfstico,

Nem sempre esse fato e facilmente apreciavel, pois, certas estruturas sao extrernamente complexas, formadas por urn sern-numero de partes,

cada qual cam seu periodo proprio. .

Assirn, como seria possfvel dizerquale 3. frequencia da oscilacao de urn animal qualquer. No entanto, a vibracao de certas porcoes do animal podem ser reforcadas, com consequencias muito pouco conhecidas. Alguns pesquisadores, par exemp'lo, admitem que oscilacoes de baixa frequencia,

72

inaudfveis, podem, se suficientemente intensas, provocar uma sensacao de mal estar e ate mesmo de panico. talvez por reforcarern as vibracoes de certos neuronios especiais. Atualrnente, com a enorme quantidade de aparelhos eletricos OU eletronicos, maquinas e motor es em funcionamento, ha urna tremenda profusao de ondas de baixa freqtiencia sendo ernitidas. Talvez, por esse motive nao seja de estranhar que, pr ineipalmente nas grandes cidades, as pessoas vivarn algo angustiadas e inseguras.

Em outros casos 0 processo e bern -mais evidente. Todos conhecem as hist6rias de cantores que, ao ernitirem determinadas notas com suficiente intensidade, conseguem quebrar copos de crista]. "Si non e vero ... 7'. Quem ja viu uma tropa de soldados atravessando Ulna ponte sabe que, para isso, passaro a marchar fora do compasso. Isto porque aprenderam, a duras penas, que,. se 0 ritmo da march a coincidir com a perfodo de oscilacao da ponte, esta poder a ruir. Pre dios altos, torr es, postes, todos tern seus periodes de oscilacao a qua], em determinadas circunstancias, pode ser retorcada, com consequencias, as vezes desastrosas.

A retina 2 ilustra 0 referee de uma onda em urn grafico cartesiano.

**** AMORTECIMENTO DE ONDA ****

A M P L I T U

~

ROTINA 1

TE'MPO %** ONDA REFORCADA ***

A M p

L

f

u D E

ROTlta2

TEMPO

73

FICHA DE PROGRAMA NOME: ONDA AMORTECIDA

AUTORES: Pierluigi Pia.zzl e t.uclo P. Carvalho Lima DATA: dezembro de 1989 e janeiro de 1990 Mem6ria Ocupada: 756 bytes

Tema: amortecimento de onda GrMlco

,

Ocrnentarlos: a sub-retina crtadapor Plazzt faz surgir este capitulo de Lucio P. Carvalho Lima, com modltlcacoes sugeridas ao longo do texto para melhor vis ual lzacao,

ROTINA 1

100 T ONDA AMORTECJDA - 1 1.10 sea EEN;;.~

li5 ' ESCREVE LEBENDAS 120 OPENuGRP~nAS ~1

130 PRESET(8p5);PRINTHi~n**** AMORTEGIME NTO DE ONOA ****N

140 PRESET(200.1B0):PRINTMi~"TEMPOU 150 O$~HAMPLITUDEN

160 L=45:FOR G=1 TO LENCOS) 170 PRESET(8,L)

i80 PRINT~irMID$(O$pGF1) 190 L:::::I...+B:NEXT G

195 ' PESENHA COORDENADAS CARTESIANAS 200 LINE(Ji.5T30)-(31~5Ti70)=LINE-(255~1 70)

210 FOR l=30 TO 170 STEP 5~LINE(29rL)-8T EP (~~, 0 ) : NEXT L..

220 FOR C=31.5 TO 255.5 STEP i2.4~LINE(C 1170)-STEP(0,3):NEXT C

;.? 2 s ~ [)I::~L.IMl:'rA CICL.O~:~ E:: DEf3ENfmiA l.,IN~~I·A 'B

A8E

:;~30 V:~"31 .. 5: 1~:;90 240 PI=4*ATN(:1.)

250 FOR A=3i.5 TO 100*PI STEP 10*PI 260 CIRCLE (A,90),2=NEXT A

270 FOR C=10*PI TO 255 STEP 2=PSET(C,90> :NEXT C

275 1 DESENHA ONOA AMORTECIDA (EXPONENC

IAL)

280 FOR A~2*PI/4B TO 14*PI STEP 2*PI/48 290 PSET(VI'Z)

300 X=31K5+A*5=Y=90+90*EXP(-A/10>*SIN(A) 310 LINE (VrZ)-<XpY)

~~20 V"'X: l::::Y

330 NEXT A

a40 80TO 340

74

FICHA DE PROGRAMA:

NOME: REFOND.!BAS

AUTOR: Lucio P. Carvalho Lima DATA: Janeiro de 1990 MEM6RIA OCUPADA: 778 bytes TEMA: reforQo de onda GnHico

COMENTARIOS: a oscnacao amorteolda leva, naturalmente, a adela oposta de retorco de onda, de eonssquenctas par vezes danosas.

R:OTINA 2

100' REFORCO DE ONDA 1 j.0 SCH EEN ;.:.~

120 OPENnGRP~HAS"l

180 PSET(45y5):PRINT"i~"*** ONDA REFORCA I).r:i .)(, ** U'

140 PRESET(150~182)~PRINTH1."TEMPO" 150 O$~uAMPLITUOEn

160 L=40=FOR G=1 TO LEN(O$) 170 PRESETCBrL)

180 PRINTU1fMID$(O~,G,i) 190 L~L+8:NEXT G

195 r DESENHA COORDENADAS CARTESr~NAS 200 LINE(37.5r25)-(37.5r170):LINE-(226yl 70)

210 FOR L=25 TO 170 STEP 5:LINE(35~5,L)STEPC2r0)lNEXT L

~H s PI :'''4*ATN ( 1 )

220 FOR C=12*PI TO 72*PI STEP 6*PI:LINEC Cr170)-STEP(0r4):NEXT C

238 V=37.5~H=100

235 r DESENHA LINHA BABE E DETERMINA CIC

LOB

250 FOR I=12*PI TO 72*PI STEP 12*PI 260 CIRCLE(Ir100)r2:NEXT I

270 FOR C~12*PI TO 72*PI STEP 2;PSET(C!,,1 00) ~NEXT c

~;!'B0 FOR A::::2*PI TO 12iWI STEP 2*PI/24 ~!90 PSET(VI"H)

305 ? DESENHA ONDA NORMAL 310 C=6*A:L=100+5*SIN(A) 820 PSETCCyL):NEXT

325 7 DE8ENHA ONOA REFORtADA

330 FOR A=2*PI TO 12*PI STEP 2*PI/12 340 Co6.A=L=i00+~*A*SIN(A)

350 LINE(V,H)-(CrL)

:~60 V:!!!C: H~L: NEXT A

~~70 GOTQ ~:t70

75

76

CAPITULO-12 GRAFICOS

Quando dlscutimos as rotinas de ondas amortecidas e reforcadas, elas foram apresentadas na forma de urn grafico cartesiano onde as pontes, definidos por pares de valores (X e V), eram unidos por linhas, assim desenhando a evolucao da onda em funcao do tempo decorrido. Voce, certamente, concordara comigo que ficou bem mais facil apreciar a teoria do fenorneno pel a simples inspecao do grafico.

Outro exemplo da aplicaqao de graficos de linbas e decorrente da retina que apresentamos para estudar urn dos aspectos da maternatica do caos: crescimento de uma populacao em condicoes de suprimento limitado de nutr ientes, Se voce teve paciericia de experimentar os varies tipos de conscquencias da variacao de A e Xo, obteve uma serie de dados numericos que, analisados, perrnitiam tirar conclusoes a respeito 0 que leva. algum tempo, par mais babituado que se esteja a interpretar tabelas de mimeros.

Observe, agora, alguns desses resultados - escolhidos entre os mais caractertsticos - quando apresentados sob a forma de urn grafico de linhas, Nas abcissas (eixo horizontal), projetamos 0 Tempo decorrido e, nas ordenadas (eixo vertical) projetamos os valores de X (tamanho da populaeao) correspondentes (Figs. 1, 2 e 3). A diferencae flagrante e, ja na primeira olhada, podemos tirar conclusocs quanto a mffuencia dos parametres A e Xo no resuliado fina1.

77

Xo = .35

;:.~ eo 0 0 0 0 0

A - ~J

~. L

G .. tj~i *" i "I"' .'; lit

tj 1 2 3 4 5: t. 7 6~ 9 10

1.00

V A L o R

0.8£1

V 1.0H A

L

o 6.80

R

D E

TEt1PO

(x 1. '3 >

0.40

0.20

78

o . t,0

0.20

0.00

A - 4

1. 0 G

I,} A L (I

R

1:0 , E

(1. 4 (1

ij.20

""_ (;1 (,;'l ,-;,.

!,. r. r. r. r.

, f\ ", ,II., r :

'" / \, ,

\ / \ l I, ,) lor; ,I I.

. ,., '\ ., 'J,! \

I 0: \/ v_'," '; J "

,/ '.;.' fT, ,r, l:!,

6 7 8 '3 10

(x 1.(1)

Xo = .4

~3 1 2 ::;: 4 :5 E. 7 8 9 10

T .t ~,' 1:. ,-, I L... I I I _

N a verdade, esta e a grande importancia dos graficos em geral: permitir a visualizacao e interpretacao rapida de dados numericos, 0 mimero de aplicacoes para tais graficos e, por assim dizer, infinite. E so abrir urn jornal au uma revistaespecializada que la os encontraremos: evolucao de pre~og durante 0 ano, aumento da inflacao au variacao no preco do dolar, crescimento de populacoes ou uma serie de outros dados estatfsticos com os quais convivemos diariamente.

Ha alguns editores para MSXcom os quais e· possivel dese nhar graficos de Iinhas como as que acabarnos de descrever. 0 problema com tais editores, alguns dos quais visualme nte muito bonitos, outros nem tanto, e que urn born programa deve ser essencialmente versatil, em especial no tocante as escalas de valores utllizadas .. Nos programas que tive oportunidade de analisar, essa versatilidade nao existe. Os graficos sao feitos empregando uma unica escala, quer para X quer paraY. Alem disso, sao elaborados quase totalmente em Iinguagern de maquina, 0 que significa que dificilmente podem set adaptados asexigencias de cada urn. Creio que a maior parte dos usuaries do MSX nao sabe programar em Assembler. Eu, pelo menos, nao sei.

Acontece que 0 BASIC, embora menosprezado pelos programadores em Assembler, e uma Iinguagem muitfsslmo poderosa e versatil, 0 que me perrnitiu construir uma latina em que alguns problemas ~ nao todos, e clarol - foram resolvidos satisfatoriamente. Alern disso, e curto e pode ser modificado para atender aos problemas especificos de cada urn. Com urn pouco de paciencia e trabalho ate pede ser transformado em um program a bastante complete (Retina nQ 1).

'Vamos cornentar-os pontes mais importantes.

Na Iinha 90, fixamos em 15 0 mimero de pontes para cada grafico, Se mais pontos for em necessaries. e s6 alter ar 0 valor entre parenteses. Na figura. 3; por exernplo, 0 mimero de pontes projetados e 50. Note que a rotina permite colocar ate quatro curvas no mesmo grafico embora, em geral, isto nao seja muito pratico, a nao ser que as curvas sejam hem diferentes umas das outras.

Nas Iinhas 100 a 160 perguntamos 0 nome do grafico e os nomes dos eixos. Alem disso perguntarnos a valor maximo das escalas de X eYe 0 valor mtnimo da escala das ordenadas. Isto significa que, embora geralmente as escalas comecem com 0, em certos casas 6 preferivel corneca-las com urn valor maisalto, pais)! caso contrariu, 0 grafico ficaria numa posicao multo alta, com urn grande espaco em branco na parte inferior; esteticamente feio.

As coordenadas cartesianas sao desenhadas a seguir, nas linhas 410 a 415. Alinha 405, que as precede, apenas desenha urn quadro ern torno do grafico. 0 tamanho dessas coordenadas e importante, principal mente se quisermos urn programaem que seja possfvel escolher as escalas, E indispensavel escolher urn tamanho, em termos do ntimero de pixels, que possa ser dividido pe lo rnaior numero possfvel de fatores. Optamos por 120.

79

Tambern e importante a distancia que separa as eixos das margens da tela. E indispensavel deixar urn espaco adequado para as legendas. Essas sao escritas nas Iinhas 450 a 480. Escrever na horizontal e facil, Na vertical ternos necessidade de usar umartificio (linhas 455-470), pois, em SCREEN 2" 0 tabulador nao funciona. Assim, tendo aberto urn ar quivo na linha 455, localizamos 0 inicio da legenda em 460 (L = 40) e na linha 465 determinamas a coluna e novarnente a linha da primeira letra (PRESET 5.L).

Em 470 fazemos urn incremento de 8 pixels para cada letra seguinte (L;;;; l + 8). Se quisermos maior espaco entre as letras, e s6 aumentar 0 incremento. de 8 para 9 ou mais. Nas linhas seguintes, 500 a 560, selecionamas escalas para as ordenadas,

Sao possfveis escalas de 0 ate 1, 2,. 5 e 10; daf ern diante, de 0 ate qualquer multiple de 10. Sendo a orden ada maxima maior do que 10, e possfvel comecar a escala com qualquer valor multiple de 5 ou 10. Para outras escalas sera necessaria alterar as instrueoes, a que nao e diflcil, desde

que voce tenha ente ndido 0 princfpio da coisa, .

Tambern e facil escrever os valores das escalas no eixo das ordenadas, 0 mesmo nao acontece com 0 eixo das abcissas. 0 fator de correcao (F) introduzido na Iinha 615 permite que 0 grafico em si seja desenhado corretamente, qualquer que seja a escala escolhida.

Escrever seus val ores na horizontal, entre tanto, e bern mais dificil por uma questao de estetica. Optamos, portanto, par dividir 0 eixo das abcissas em 10 partes e, entre parenteses, colocar 0 Iator de correcao para a escala escolhida. Novamente usamos a Fig. 3 como exernplo: logo abaixo do eixo das abcissas, entre parenteses, esta 0 fator de correcao para a escala (x 5.0). E claro que, com paciencia, seria perfeitamente possfvel programar sub .. retinas especiais para cada escala ..

Nas linhas 595 a 605 calculamos urn fatar de correcao (0) para 0 caso da ordenada minima ser maior do que O. 0 desenho do grafico e feito a partir da linha 800 .. Nada de especial a cornentar. Usando os fatores de correcao para ordenadas e abcissas, todos os pontos serao corretamente localizados.

Na figura 4 apresentamos mais um exernplo de grafico de linhas, agora com duas cur vas projetadas simultaneamente, para permitir a comparacao da influencia da aeracao no crescimento de culturas bacterianas. Repare como, logo a primeira vista, saltam aos olhos as diferencas decorrentes dos dais tipos de tratamcnto.

80

Cr~50im~nto 0 - cOm aera~~o

X - s e r~, a E' r -3 ~ ; (I

10.9

L

o 9

N Q

./ m 1

5 • €I

4. 0 I

U tI-.~. ~ •• -

II U loS;:;:'"

Outro tipo degrafico muito usado e 0 de barras. Podemos aproveitar grande parte da retina nQ 1e, com algumas modificacoes, construlr urn born . . grafico, no qual podemos colocar ate dois grupos de pares de dados, Mais do que isso nao e conveniente pais as barras ficam muito estrcitas,

Se voce comparar as duas retinas, vai verificar que aiinica difcrenca reside na parte relativa ao desenho do grafico, onde, em vez de pontos

unidos par linbas temos barras. -

Na Iinha 810 determinamos a largura das barras (lOX). Na linha 825, entretanto, diminufrnos esta largura em urn pixel para. que ,as barras nao fiquem grudadas umas nas outras. Quando comparamos dais grupos de dados - a partir da Iinha 860 -, dividimos 0 tamanho da barra pela metade. As barras para pares correspondentes de dados saoadjacentes mas entre os dois grupos seguintes damos um espaco.

Para estruturar as barras, utilizamos 0 programa PAINTER, descrito com detalhes no livro + 50 Dicas para MSX da Editora Aleph. E necessaria carrega-lo antes do programa graflco. As linhas POKE selecionam 0 tipo de estrutura desejado. Se voce nao tem 0 programa PAINTER ou se prefere nao utiliza-love so suprimir as linhas 310, 311,830-840, 885-895, 930-945. Para diferenciar os dais grupos de barras, uma vazada e a outra pI eta, modifique a Iinha 925 para: -

925 UNE(X2 + DX/2,Y2)-(X2 + OX~1, 160).1 ,BF

81

o resultado final pode ser apreciado no exemplo da figura 5-

NOTAS (1986-1987)

t~ U t'1 E R '0

10.0 9.0 B.B 7.0 6.6 5.0 4. 0 3.0 2.0 1;e

B.0~"~~~~~~~~~~

Nota do Coordenador: Observe que a flexibilidade destas rotinas, em especial esmiucadas pelo autor, sao de valor inestimavel para adapta-las as suas necessidades partlculares - como deresto jll observado pelo autor. 0 acabamento final e a apresentaciio dos graficos, no entanto, s6 sao atingidos por programas muito mais elaborados, no geral para micros da linha IBM'-PC, qualidades que a modestia do autor niio lhe permitiu enuncia-las.

82

~, 1 2 3 4 5 E. 7 '8 9 10

NeTAS

(x 1.0)

FICHA DE PRO'GRAMA NOME: GRAF-LIN. BAS AUTOR:l.ucio P.Ca,rva,lho Lima Data: 1989

Me.m6rla Ooupada: 5.463 BYTES Tarna: desenha gn§ficos de linha

ComentS,rlos: proqrarna versatll, moduhlvel, integrailimente expltcado no t9XtO que antecede

10 CLS:KEYOFF=COLOR 15,J,15

20 PRINT"******************************* ****J:'~'~'u

3-0 P I~ 1 N·r ..... ·)(·

~."

40 PRINT"*

GRAFICO DE lINHAS

601 PRJNTIi* 9B9 *""

70 PR INTIl*

Lucio P. C~rvalho Lima - 1

*"

80 PRINT"******************************* *******":PRINT=PRINT

90 DIM Xl(lS)rYl(15),X2(15),Y2(15),X3(15 ),Y3(15),X4(15),Y4(15)

100 r INTR~DUZ LEGENDAS E ESTABELECE P ARAMETR()S""

110 INPUT" rrtulo= "~T$:PRINT

1 ~! 0 l N PUT U A bc i s; S i;\.:S : /I ~A 9; : P l~, IN T

130 INPUTu OrdenadBs: "~O$=PRINT

140 INPUT" Escala das abcisSBS at~: H~A M

Escala dam ordenadms ati:

lSI{) INPUT" OM = PI~ I NT 160 INPUTo i,70 CLB

II.

T

2.0 ~ ENTRADA DE DADOS 205 PRINT" .**** EN1'RAOA **nc~')R INT ;~!j,0 PR INTI" r. iJ, I" Y a s n 9 Dill i:-\ te 1 :::i ;;~t~j PR INTu nu In €:' r f.) d (7~

DIS DAnOS **i(.

Podem ser projetadas atR 4 mesrno graficDr cada uma r pares de dadDs.u~rRINT

Benda necessarlo arnpliar 0 pare~~ modificar adequadament

t::: ali nh a 90 0

~~;,~ 0 P R IN T JI , _ , - , .. ,-. ~~ '", ~ .• ~ " ,." - ,. ~" -,. -", ~,. ~- ,',' ~~"

'"

~n.,...., "W"._ ... ~ ........ no.

225 PRINTU i.DigitaFr um a UMy os valor~ m d o s p:t,{.... t"(:~S (X (,~ Y) difJ pro i IM·~i 1"1) gl"U p'o (A) rr :PR.INT

83

230 PRINTH 2.Digitar 8888 para mudarpa ra 0 gru- po $egujnt~ de dados_":PRIN T

235 PRINT" 3.~€PEt ir D procedirnento PH

r<:\ 01:; d€~ Inil,. i s pal'·es,.f~:;flR];NT

240 P~INTu 4~Digitar 9999 p/tra~ar a gri

+",1 CD Ii U

;.:.! 4 ~:; P R I NT IJ' ~,. m -- •••••••• -- _ •• _ •• -- .m .~ -. _ •••••••••• _ •• _ - - •••• , - •••• -.'- ~.' - ..

250

") ,::-.:;' 1::.. ,.J ... ,

;.:.~b0 26~i ~.~t0 27~)

]>" 1 : .. Jt:!: 1 : K :::: i ; t, :::: j.

PRINT=PRINT N PAR A

INPUT v Xl"~Xi(I)

IF Xl(I)~888B THEN 285 IF X1CI)=9999 THEN 370 INPUT" YlupY1CI)

";Ir.PRINT

280 I=I+1:GOTO 255

285 PRINT:PRINT" PAR B h;J:PRINT

290 INPUT ~ X2";X2(J)

295 IF X2(J)=BS88 THEN 315

300 IF X2(J)=9999 THEN 370

305 INPUT" Y2"~Y2(J)

3i0 J=J+1~GOTn 285

315 PRINT:PRINT" PAR C u~K:PRINT

::l20 INPUT if X3",X3(K)

325 IF X3(K)=8888 THEN 345 330 IF X3(K)=9999 THEN 370 835 INPUT" Y3fl;Y3(Kl 840 K~K+lgGOTO 315

345 PRINT:PRINT" PAR D ";L:PRINT

850 INPUT" X4";X4(L)

355 IF X4(L)=9999 THEN MM=L:OOTo 370 360 INPUT H Y4",Y4(L)

365 L~L+iIGOTO 345

370 Cl..S :',$CREEN 2

400 ~ DESENHA COORDENADAS CARTESIANAS 405 LINE(0,0)-(255,1911"B

410 LINE(70r40)-(70~i60):LINE-(230r160) 415 FOR C~70 TO 230 STEP S~LINE(Cr160)~S lEPC0,i):NEXT C~FOR C~70 TO 230 STEP 16:

Lt,NE ~ C r 1 ,6.,~ ~,··-~n:p (~, 3) I N~XT C

4~0 EoLREVE LEGENDA0

455 OPEN"GRP:"FOR OUTPUT AS Hi 460 L~40:FOR 8~1 TO LEN(O$)

4~5 PRESET(5~L):PRINT#lrMID$(O$rGTi) 470 L~L+8=NEXT G

4: 75 PRE S [T ( 12-0 p 1 B 0 ) ;; P R I NT tl1 r A ';1 480 PR~~SEl (10',10) = PRINTMl, T$

500' 8ELECIONA ESCALAB DAB OROENADAS E EBCREVE VALORES RESPECTIVOS

503 O~0:IF OM=)! AND OM~(2 GOTO 530 510 IF OM=)5 GOIO 54.

515 FOR l=40 TO 160 STEP 12/0HDLINE(67~L )-STEP(3,0):NEXT l

84

520 FOR L~15e TO 3B STEP -12/0H:PRESET(2 5 , L) : P R I NTH i , US 1: N H" .... »14 N ; 0

525 O=O+M1:NEXT L=GOTO 565

530 FOR Lb40 T0160 STEP 12/0H:LINE(67,L) -STEP(3r')=NEXT L= FOR LeiSS TO 38 STEP

-12/(OM/2):PRESET(25rL):PRINTM1~USINGH»

.. +".1:1; 0

~35 O=O+.2:NEXT ~:GOTO 565 540 0==00

545 FOR L=40 TO 160 STEP 12:LINE(677L)-B TEP(370)~NEXT L=IF OM=(10 GOTO 550 ELSE ~::;60

550 FOR L~i5B TO 38 STEP -i2:PRESET(35.L ):PRINTH1rUSINGN#"~"U;O

li:'~:',I::' O::::')+OM/10' _, N£:~X'l' L : [;'()'ro ":',6'" ~J~ ~. . ~ L _ J ,,0 ~

560 FOR L~158 TO 38 STEP -12~PRESET(2B,L ):PRINT~lrUSINGH"M#«Hu,O:O~O+(OM-OO)/ie )!NEXT L~GOTO 565

565 1 ESCREVE ESCALA DAS ABCISSAS E 0 RESPE~TIVO FAlOR DE CORRECAO

~.l)70 A::::0

5?5 FOR C~60 TO 210 STEP i6~PRESET(C.167 ) ; P R I NT tU • US I N G II JHt n ~ A

580 A=A+i=NEXT C=PRESET(224r167):PRINTUl " U10"IIPRESET( ~;~0~;, l.B0): PI~ INTtti r II (1"1 ::PRESEl

(210,180):PRINTMly"x"=PRESETC218.180)IPR INT»1~USINGN""~"n;AM:PRESET(250t180):PRI NT#1~n)n

590 IF OO~0 THEN Q=160:IP OO~0 THEN GOTO

615

595 IF 00)0 THEN G010 600 600 ',l)==OM/OO

605 G~160+(i20/(D-l» f.) 10 GO 1 0 (,\ i. ~j

61.5 F:::1160/Ati: B:::'OM-"O():: GOTO H0~'j 800 r DESENHA GRAFICO

805 ~5ET(70+F*Xl(i)rQ-(i20JS)*Yi<i» 810 FOR N=i TO 1-1

81S LINE-(70+F*Xi(N).&-(120/S)*Y1CN»

H;.:~0 CH~CL.E (70'.·'F·)(-Xt (N) r (*.~, (i ;20/:8) *Y:1. (N) ) r ~.~ ~NEXT N

825 PSE1(70+F*X2(1)~Q-(120/S)*Y2(1» 830 FOR N~1 TO J-l

835 lINE-(70+F*X2(N)rQ-(i20/S)*Y2CN)zNE

Xl N -

840 FOR N=i TO J-l:PRESET(70+F*X2(N)-2,G "- (1:;?,0/S) *y;~~ (N) ·· .. a): PHINT~ti y ,U}(1l :NEXT N

845 PSET(70+F*X3C11,Q-(i20/S)wY3(1»)

850 FOR N~1 TO K-1

855 LINE-(70+F*X3(N)~G-(120/S)*Y3(N»:NE Xl N

860 FOR N=i TO K-··l=PRESET(70+F*X3CN)-2p& .... (1~~0/~]) *ya (N > '-~:l) ; p I~ INTtH ~ ...... ·t·11 ~ Nf:XT N

865 PSET(70+F*X4(i)yQ-(120/S>*Y4Ci»

85

H7~) F () I~ N :::::1. T(} M. M "" 1.

07::) t, INf:>'~ ( 70+F * X4 ( N ) ~G·-- ( :U~~~r/s ) -xi Y 4 (N ) ) :: NEE

Xl N

a80 FOI~ N;:,;j_ TO MM-"-~~::PREBEIi,-70+F'*X4(N)-":2~ Gl",_ (t;?0/n) ;~y 4 (N) '"'"3): pr~ :rNT*U. ~ "'»,":! NEXT N

BB~) nOTO BB'5

86

FICHA DE PROGRAMA NOME: GRAF ~BAR .BAS

AUTOR: Lucio P,CarvaUno Lima D>ata: 1989

Mempria Ocupada: 3.239 BYTES

Tama: gera grMicas de barras, lnclustve aos pares

Oomentartos: lela 0 texto, em especial ae pretender usar arnbasas retinas, pols sao poucas as modltlcacoes, Necessita rotlna PAINTER, sa desejar diferenciar as barras (consults' "'+ 50 Dicas; Editora Aleph).

11 CLS:KEYOFF=COLOR 15,1,15

20 CLS=PRINTH**************M************ *****.)(.*****#

~30 fiR :[NTu,,(;

.)i.f£
40 PRINTII*
* .....
~)0 PRINllil'*
*'"
1.10 PRIN1'1I*
ma .N
701 PRINTu*
*N GRAFICO DE BARRAS

80 PRINT"****~*************.************ *******II~PRINT=PRINT

90 DIM X1(50)rYl(50)yX2C50)TY2C50l

100 ~ INTROOUZ LEGENDAS E ESTAaELECE P ARAHETI~OS

110 INPUT" Titulo; II~T$:PRrNT

120 INPUTH Abcissas: 130 INPUT" Ordenadaa; 140 INPut "Escala das ~bclssas atea ";A M=PRINT

150 INPUT uEscala da$ o~clenada$ at. OM:PRINT

~60 F=160/AM 170 CLS

200 ~ ENTRADA DE DADOS

205 PRINT" **.** ENTRADA DE DAOOS *ft* **''''i: PR INT

210 PRINT" Podem •• r proJ~tados at~ doi' s grupos de dados no MEsmD gr~ficoT cada urn com ate 50 pares."=PRINT

'2'15 PRINT'" Ge-ndo nel;,esg~,1"" i ~l amp} i at" o nu mer~ d€ pare. rnodific.rr a linha 90.u

220 PRINTH---------~--------------------

.lI;A$:PRINT ,II ~i 0$ :;P'R INT

..... ----._ .. ~"'_I'I

225 PRINT" 1. Digitat, urn a urn, os par£ s de da- dog do primeiro grupo (Xl e Yl)UIIPRINI

87

230 PRINT" 2. DisitBr 888a a~im de passa r paFa 0 segundo grupo d~ dados eX2

(.;;, Y2)."~P1RINT

,;23~) P R I NTu J H R E'~P f:~t i r: 0 P r DC: f;;d i mE.'n t Q P a.

Fa o~s ~':: .-. 9 IJn d 0 ~ I" up C) .. N :: p r~ IN T .

;,? 40 PRJ N T /I 4. D i 9 i tar 99'1 ? p ar (:\ t 1" <':H;: ,';"l F o ~;Jr'cl:f i curt'

;24::.:; P R IN T /J _ .• " _" .. -._ -~ _ - _ - ~ ,_._ _ .. -~ _ .. _ ..

•• , .•• u_ .,. __ ~ ••• _.;....~ _ ..... ~ .... ,~j

;;.~ !':'i 0 1 ::;; '1 :: v, j ;:;: t

255 ~RINT:PRINTH u;I:PRINT

260 INPU1'" Xl";Xi(I)

265 IF X1(1)~9999 THEN GOSUB 310~GOTO 80

.'"

.:.J

,.) .. , .::. C" I .... }

IF X1(I)~B8B8 THEN 285

IN PUT rr Y:t N ~ Y t ( I )

1~'::I+'l ::GOTO ;';~~:j~)

P'R t N r ;1 P R :r NT:: I;) I~ J N r U II ~ ..J II, P R :[ N T

INPUT n X2NpX2(J)

I F X~~ ( ,J) ::::r,S'?? THEN GOGUB ::1 t 0 ': GOl() 86

o

~J00 I NP UT ,,;

~H1 ::5 ,.1 ::;; J'" :i. ~ G<n 0 ;'~!B~:j

310 CLS:BLOADuPAINT.BIN":SCREEN 2 ~:~ t~:j DEFUSR "::t~I'~[) 000

4~0' DESENHA COOROENADAS CARTESIANAS 40::,) L. J. NE ( 10 7 0 ) .... ( ~.~~:.i~:.:;,. 19 j, ) r 7 B

410 LINE(7(/),,40)·· .. '(701,i60) :Lli'n:: .... (~!:]0ri.60)

4 j ::.'j F Of~ C :::=7 \~ T () 2 ~~ 0 S T F P H C I ... , I N E ( C " j_~) 0 ) ., .. D TEP(0,i):NEXT C~rOR C=70 TO 230 STEP 16~ LINE(C,.160)-STEP(0r8)~NEXT C

450 Y ESCREVE LEGENOAS

455 OPEN"BRP:urOR OUTPUT AS H1 460 L~40~FOR 6=1 TO lEN(OI)

465 PRE6ET(4yL)~PRINTH1yMID~(O$TGyl) 47~~ L::;:I ... +B:rNEXT G

47~:j PI~ES[T( t20" 100) ::PI~INTnt rA1; 480 PRESET(10710):PRrNTU1~T$

::)00 1 BELECIONA EBCALA Df.'1S ORDENr:!tDAa F

ESCREVE VALORES RESPECTIVOS

505 O=0~Ir OM=)1 AND OM=(2 GO TO 530

510 IF OM~>5 80TO 540

~,'j J:::; F()I~ 1..."::40 TO 1. 6(; STEP j. ;':~/OM :: L :r:NI::: (67 ~ L )~'<nEP C3,.0) ::NEXT I...

~5;~!'0 F'()r~ L':"l~'ja TO]B BTEP .... 1.;2/0M=PRFSET(~~ '~5 > L) :: PHI NT» j, r U ~:; INn" n. ij tt n ;~ 0

525 O~O+.I=NEXT L:GOTO 570

~)]0 FOj~ L::::,jl0 TO :t 60 STep 1. ;?/OM:.: LINE (67 r L ) -" ~3 T E P ( ~~ ,0 ) :: N EXT L ~ F 0 I~ L. ,,;: 1.::'; £1 T () 3 B S T I::: p "'·j,~~/«)M/;2) ::PIH::BET(~~~:i,.L_) ~PR.lNT*H yUHING'" H .. fiW"; 0

535 O=O+n2~NEXT L=GOTO 57. ~:i4ei O~~¥)

88

:::i4~::; FOI~ ·1...::;;40 TO j.60 STEP tr~H .. INE(67 .. L)~-S TEP(3r0):NEXT L~IF OM=<10 GOTO 550 ELSE ~:i60

~.:j~.)0 FOR L~::15B TO 3D STEP ····1~.~:PRESET(a~iJ'L )rrPRINr#i,USINGH~#@"H;O

555 O~O+OM/10:NEXT L=8010 57.

560 FOR L=158 TO 38 STEP -12~PRESET(28rL )=PRINT»i,U8INO"##""ff";O~O=O+OM/10:NEXT L ::GOTO !570

5~5 P ESCREVE ESCALA DAS ABCISSAS E 0 RE SPECTIVO FATOR DE CORRECAO

~V0 A==0

575 FOR C~60 TO 210 STEP 16~PRtSET{C·r167 ):PRINTUlrUSING"""";A

580 A=A+l:NEXT C:PRESETC224,167):PRINTHl ,"i0":PRESET(205r180):PRIN1"1,H(H~PRE9ET (210r1a0)~PRINT"lr"xH=PRESET(218ti80):PR

. -- ,

INTM1TUSING"""""ff~AM/10:PRESET(250riB0)~

PRINTIt1,")N

:::;85 RETURN

800 r DESENHA GRAFICO 805 N·;;:' I •.. j,

810 DX=(F*(Xl(N)-Xl(i»)/N 815 FOR 1=1 TO N

820 Xl~70+F*Xl(T}~DX/~:Yl=16.-(120/0M)*Y leT)

825 LINE(Xl+i,Yi)-(Xl+DX-ir160> •• B 830 POKE &HD032rXl+2

835 POKE &HD033,Yl+1

840 POKE &HF97571

B45 A=U8R(0)

850 NEXT T

850 GOTO 855

860 N£r .... j;

865 DX~(F*(Xl(N)-Xl(l»)/N 870 FOR T~l TO N

875 X1~70+F*Xl(T)-Dx/a:Yi=160-(i20/0M)*Y l(T)

e80 LIN~(Xl+i,Yi)-(Xi+DX/2,160)rrB 885 POKE &H0032,Xl+2

890 POKE &HD033rYi+1

8(]5 P OKE &HF97~S,:l

900 AeUSR(0)~NEXT T

905 N=,J-i

910 DX=(F*(X2(N)-X2(1»)/N 915 FOR T=1 TO N

920 X2=70+F*X2CT)-DX/2=Y2-160-(120/0M)*Y 2 cr ),

930 935 940 945 950

LINE(X2+DX/2,Y2)-CX2+DX-i.160>,.B POKE &HD032,X2+(OX/2)+1

POKE: &HD033,Y2+i

POKE &HF975 r 0·

Ail1;USR(0);NEXT T

GOTO 950

89

------

90

CAPITULO-13

..

o CODIGO DE SAMUEL

Este programa, porcerto completamente diferente dos anteriores, ainda se insere na proposta original desta eoletanea: nao esta dirlgido a uma necessidade imediata do usuario nem ~ maquina MSX, mas e~ em si, uma .porta para outras aventuras do ser humane: 0 c6digo morse,

o senhor Samuel (F. B. Morse) era urn artista e inventor norte-arne .. ricano que, em meados do seculo passado, Idealizou a telegrafla,

De intcio os sinais, obrigatoriamente, eram conduzidos por urn par de fiosvcruzando descampados, desertos, espantando as pessoas pela utili .. dade que, demonstravam, levando atraves de seu ruido mensagens importantes, carinho, atencao, boas emas novas. Ah, que born se nao fosse precise usar os fios sustentados ern alras estacas - os postesl Volta e meia as pessoas mais supersticiosas derrubavam as estacas - aproveitando-as em construcao - amarrando a madeira com as excelentes fios de cobre; de urn lado "afastavam os esptrltos' que poderiam aer atrafdospelos postes e, de outro.isimplificavam sua necessidade de construcao de casas, cocheiras, etc.

Nao demorou muito e surgiu uma eomunlcacaoestranhfsslma, "sem fio", atraves do ar - au do eter, como era elegante falar - com transmis .. sores denominados "centelhadores", coisas primitivas que geravam arcos eletricos - 0 que gera ruidos atmosfericos; basta lembrar as interferenclas dos raios na recepcau de radio - que eram detetados, a distancla, por receptores ainda mais primitives: a galena, urn cristal que, associado a urn enrolamento de fio de cobre e urn capacitor, era capaz de detetar as ondas eletromagneticas geradas pelo centelhador,

Pronto: estava inventada a comunicacao "sem-fin' que podia eruzar centenas de quilometros - inclusive os oceanos, 0 codigo que entao nas-

91

ceu, censtituido de pontes e traces, inventado pelo senhor Samuel" transportava as mensagens,

"Tude muito Iindinho" - cementa 0 leiter, DaO sern alguma ironia.

"Mas 0 que temos a vel' com isso, mais de cemanos depots"!"

MUIIIITO! - digoeu .. Os.proprios astronauras, para nao desviar do tema que vimos tratandoate agora, sao treinados em codigo morse apesar de poderem contar com os maisavaneadus sisterrras decomunicacao eletrnmea da atualidade,

A explicacao e simples: 0 mais elementar transmissor de radicfr eq.fi!ncia pede sinalizar .em morse, mesmo quando osmais "perfeitos" e sofisticados sistemas venltam a falhar, Maisainda, ·patencia do transrnissor versus distancia, ainda ,e a transmissanmorse que atinge mads. longe 0 receptor! Nao bastasse isso, em rnejo a interferenciasmultiplas, 0 pipilar CIa transmlssao morse, ainda consegne ser melhor recuperado em situacoes de

emergencia. '

Nao 6 pOI outre motive que ¢:ID quase todos os paises, para se consegnir urna licenca de operador de estacao radioamadora.ie obrigarorle o exame de recepcao e tr ansrnissao de sinais morse. Nao estou me referindo aos transrnissores de faixa docidadao - tao em voga ~ limitadosa pOlleos watts de pntencia e a uma il:n:i.ca e estreita faixa no espectro de comunieacao. Refire-me aos radioamadores que podern operar imimeras faixas, experi .. mentar com seus circuitos emissores e receptorese, ate .mesmo, como esse fantastico Junior Torres de Castro, consteuir e enviar ao espaco urn satelite ~ brasileiro! ~ que continuamente transmite vozes de criancas, em diver- 50S idiomas, com mensagens de Paz!l!

Pois Michel Friedhofer aproveitou 0 MSX para criar um "treinador de codigo morse"; e, euriosamente, ernpregando 0 pr6prio vocabulario BASIC como elemento de treino, se assimo desejar 0 aluno,

A realizaeao de Micheltern alguns pequenos senoes, contornaveis .. : o primeiro deles 6 apresentar, em "pontes e traces", cada 1,e,tra.Para 0 ensino de C.,W., isto .118.0 tem sentido. Ou voce ensina seu ouvido a verdadelra "musica' que e 0 c6dmgo; au ensina seus olhos ._ atraves de Iampejos de luz -0 mesmo ccdigo,

Por Isso aconselho, coin empenho: nao use a referencla dos "pontes e traces".

Michel resolveu 0 problema de som atraves do BEEP criadu pelo MSX - solucao simples e engenhosac Mas a. Ientidao dos bipes contraria as u~timas recomendacoes de ensino de C .. W .. , quais sejam, devernos aprender em alta velocidade: o antigo sistema (pelo qual eu rnesmo me alfabetizei em morse) obriga a. dois aprendizados: em baixa e em aha velocidade,

Sugiro, na rotina 2, algumas modificacoes rapidas que aumentam - so um poucol - a velocidadc; porern.corn 0 usa do PLAY,. criarn urn som muito proximo, senao identico, ao de lima transmissao morse convencional,

Alga que poderia ser identificado como -"dCffeito", quando se escoIhe palavras BASIC para teste, e at dernora do programa ern sortea-las e comecar a transmissao, Ao contrario, Isso e 6timo: pega 0 estudante de surpresa e obriga-o a prestar mals atencao. A sub-rotina empregada foi publicada em "1,00 DICAS" - 0 que mostra a utilidade dessa coletanea - e a habilidade de Michel em resolver problemas surgidos durante a programa'Sio. Tambem e prop6sito deste.Iivro que voce adapte, modifique e de outros usos aos programas aqui editados. "

Na 0p\30 "estudo" pode-se inserir toda uma mensagem, de muitas palavras - de preferencia separadas entre si pOT tres espacos ~ 0 que tambem e excelente!

Ha Iimitacoes: pontuacao, mimeros e stmbolos DaO serao "traduzidos" para a morse. Se, no sorteio, cair a palavra II NKEY$, por exemplo, as resultados podem ser bern estranhos ...

,

Como norma de transmissao, a duracao de urn "ponte" em morse 6 a mesma do que 0 intervale que separa esse "ponto" de urn "traqo", ou de outro "ponte". 0 traco teria 0 dobra de duracao de urn. ponto. A separacao entre letras, a duracao de quatro pontos e a separacao entre palavras ... confesso que tne esqueci!

De qualquer forma, 0 usa das duracoes de notas musicais ~ que se prestam lindamente a construcao de-sse treinador - revelaram-se, para meus ouvidos, bastante estranhas.

Aconselho fortemente que sejam feitos outros testes de forma que, no conjunto, a velocidade de transmissao deste treinador seja aumentada ao menos em 50%.

Aceita 0 desafio?!

93

FfCHA DE P'ROGRAMA

NOME: CODMORSE.BAS e ALFAMORSE.BAS

.AUTOR: Michel Friedhofer DATA:' novernbro 1989

MEM6F1IA OCUPADA:de, 1.597 a 1.680 bytes TEMA: trelnador de. ,c6digo morse

Oornantartos: 56 aceita tetras: a velocldade e lsnta: pode scrtear palavras BASIC.

10 ' #H"UH#"ij#ff«M#"H"HH"U"«~ijH""#" 20 ' tI tt 30 ' H MICHEL FRIEDHOFER NOV. 89 « 40 ,. it «

50 ~ HU«~#H#""«n#""H"«H"""«#"""H"" 60 f

70 ,.

80 ,. INICIAlIZACAO _====~=C~==~~== 90 ..

j,00 KEYOFF~CLS ~. 1.0 IN:::0

120 A$~"":POKE ~HFCAB,l~PRINT "CTJestes au [EJstuda~HrB$~INPUTffi(i)

130 IF B$="TH THEN IN~i=BOTO 190 140 IF B$~"E"THEN 560

150 (10TO 120

160 "

170 r SORTEIO DE PALAVRA =~======= :1 80 ..

190 A=655361*RNO(-TIME) 200 A%=163*RND(A)+1

210 EN~14962:A'~"":I=65eC=0 220 A$=A$+CHRi(I)

230 P=PEEKCEN)~G=PEEK(EN+1)CP$~CHR$(P) ~240 IFf> ( 12SrHENAQJ";A$+P $ = (lOTO ;29'0

250 A%=A$+CHR$(P-128)

260 EN=EN+l=C~C+1

t!"70 IFC=~A%THEN390

280 IFPEEK(EN+l)<)0THENA$~H#~A$=Ai+CHR$( I)

290IFPEEKCEN)()0THEN330

300 A$=NN:r=l+l:Q$~CHR$(I)

310 IFG$~HJ"ORQ$~nG"THEN330

~:~20 A$::::A$+Q$,

~:~3-0 ENcEN+ t.

340 IFEN<~15649THEN2S0

350 IF ASC(RIGHT$(A$rl»~63 THEN 190 360 r

370 ~ ROTINA DE TRADUCAO ~~~==~==~

94

380 r

:390 CLSII,A::,,:'0

400 A:.::A+i ~FOR Xm:l TO 80,rNEXT X:PRJ:NT" "~ :C~~MIO~(A~rAr1):IF CS=H HTHEN GOTO 600 ELSE ~F C$="?" THEN GOTO 610

410 B=ASC(C$)-64

420 Rr~STORE 620

430 FOR C=i TO B

440 READ D$~NEXT c

450 FOR E~1 TO lENCD$) 460 E$~MID$(D$,E,i)

470 IF E$="011 THEN PRINTu•llp;FOR F=l TO ~~=B([P =NEi:Xl F

480 IF E$=1I1" THEN PRINTII-";=FOR F=l TO 9::BEEP:NEXT F

490 FOR G=1 TO 60:NEXT G .. E

500 IF A~LEN(A$) THEN 540 ELS~ 400

520 t TESTE ~~~=====~~~~~=_=======

~:j~t0T

540 IF IN=0 THEN Z$~INPUT$(i):RUN ELSE P RINT~rNPUTNQual i a pa]~YFa";R~$:PRINTJI F RE~<)A$ THEN PRlNT"ERRAbo. A palavFa e I" I~, f{:~ A$ ELSE: P R 1 NT'" Isso me sme r p ar aIH~n~fi.

~;5.0 Z$,;;:IN.PUl1l (i. ) = RUN

560 INPUT "M~n6agemN;A$=GOTO 390

!:.'.i70 '

580 • DAPOS MORSE ==~==~=~~======a ~)90 '

600 PRINTo II; :FOR Z::::j, TO 150::NEXT Z=GOTO

400

610 0$="001100":00TO 450

620 DATA 01,1.00,1010~100~0r0010ri10~00. 0,00,0111,101,0100 .. 11

630 DATA 10rlii,0110 .. 1101r010,000yi,001, 0.01F011,1001ri0ii~1100

95

MODIFICACOES SUGERIDAS: ROTINA 2

450 FOR [=1 TO LEN(O$) 460 E$zMID$(D$,E,i)

470 IF E~=u0N THEN PLAY bS3M60000T2550~L 1.,4: GR :~~?.r;'

480 J;F E$:.:;01" THEN PLAY £J"B3M60'000T25506L 481~32/.,

490 FOR G~i TO 120:NEXT GrE

500 IF A~LEN(A$) THEN 535 ELSE 400

&:'10 7

,.J .

96

,

CAPITULO-,14

o S,ALVADOR DA pATRIA

Bern ... nao irei tao longel Realmente 0 programa que segue nao se propoe a salvar nossa Patria - 0 que e uma penal

Porern, ao menos, garanto que traduzira bern 0 esptrlto com que vim escolhendo os programas e fara com que voce de. pulos de alegria I

Acompanhe men raciocinio: logo que voce compra urn MSX, tern ponca dinheiropara investir. Quer "testar" 0 micro, ver se "vale a pena mesmo", se "~ 0 que dizem",

Parte para um MSX usado - versao 1.1 do Expert ou HotBit -, um televisor que estava apodrecendo no quarto de despejo, um gravadorzinho cassete de segunda classe.

Meses depois, 0 televisor da seu ultimo suspire e voce cornpra urn TV/Monitor ou urn verdadeiro monitor (que definicao de imagem! Par que nao comprou antes?!).

Meses mais tarde, voce cornecaa sonhar com uma impressora (Puxa!

Como custam carol) e urn acionador de disquetes (urn disk-drive), de preco meio salgado.

A essas alturas do campeonato voce possui uma "fitoteca" numerosa.muitas das gravacces sao profissionais, em codigo binario, interessanrissimas!

Che ga 0 grande dl a: compra-se 0 drive, uma ca ixa com dez disq u etes e ...

97

E agora, meu amigo?! Voce vai jogar fora todos os programas que estavam em fita?!. Vai operar com dais gravadores: de fita cassete e disquete? Manter dupla colecao de programas? Ou ...

Bntao chega 0 "salvador da patria' ,Mathias A. Gruber e oferece urn programa excelente, de nfvel profissional, Inteligenternente .construido e voltado para apessoa do leiter: Multicopiador binario,

E 0 que ele faz?

Se voce liver programas estritamente em c6digo binario (Linguagem de Maquina) basta digitar oprograma Multicopiador, grava-lo - dessa vez ja em disquete! Que gloria! - e cornandar RUN.

Como 0 programa foi inteiramente construido pensando em voce, 0 resto e auto-explicative: basta seguir criteriosamente 0 que vai sendo pedido na tela.

Para que voce nao perca tempo: Mathias pensou atingir 0 leque mais amplo de usuaries e montou 0 programa para gravadores cassete convencionais, que nao possuem- ac contrario dos DAT ACORDERs da Gradiente e Sharp - possibilidade de Iigar avanco e retrocesso rapidos (a menos que voce comande MOTORQN e MOTOR OFF). Portanto, se possui um Datacorder faca deconta que se trata de urn gravador convencional e s6 aperte a tecla PLAY conforme for pedido pelo programa.

Alern da transferencia do programa binario em cassete, havera urn deslocarnento auto matico de enderecos e colocacao de "Iiga-desliga" do motor do disk-drive. Nos mais diferentes testes realizados por Mathias - e repetidos por mim - nao houve nenhu.m problema.

Nao seria dernais, no entanto, um cuidado extra: feita uma tranferenci.a de programs desligue a micro - ainda e melhor do que um.a "partida quente' pelas reclas [SHIFT] + [CONTROL] + [STOP] - e ap6scinco segundos volte a religa-lo, Desta forma nao havera perigo de "restos" de mem6ria de urn programs serem "acrescentados" ac :seguinte ou outras surpresas desagradaveis.

Veja um bela exemplo de programacao:

98

FICHA DIE PROGRAMA Nome: COPII.BAS

Autor: Mathias August Gruber

Data: Novernbro de 19S9 Mem61'ia Ocupada: 7.300 bytes Tema: Transfere programas blnarlos de Iita/dlaqueta .

Oornentarlo: Trate seu datacorder comogravador comum; 32 KByt,es de merncrta RAM - rnfnlmo !

, ~

1000 .****************~************* 1010 1. MULTICOPIAPOR BIN~RIO *

102. '. PI HSX (min 32K RAM) * 1030 '****************************** i040'. Mathias AU~u5t GrubEr *

1050 7. 1989 - Editora ALEPH *

1060 r****************************~* 1. 070 y

1080 y------------------------------

1090 r E:rpE('I-F~·[CAr~~c IN·[(~]-'AI·~

_~ _.., • ~ ~DIC':lI!.J ," •• ,., ... .)

1100 y------------------------------

1110 POKE&HFCAB,255:POKE&HFBB0,l=MAXFILE

S=i=SCREEN0=KEYOFF=WIDTH39

j.1.;20 DEFSN6A-W

1180 ON ERROR GOTO 3260 '

1140 ON STOP GOSUB 3350cSTOP ON 1150 •

1160 ,------------------------------

1170 ' Chama rotina de carr£gamento

1180 T do. cddigos hexadecimais

1190 ~-----------------------------

1.200 GOSUB 3120

1210 '

1220 E$=CHR$(34): 'Caracter ASPAS 1230 r

1240 ,------------~-----------------

1~50' MLOW= Memdrla inicial

1260 i HHIOH~ Hemdria final

t270 ,------------------------------

1~80 HlOW~3276B';MHIGH=PEEK(8HF6Bi)+2~6*

PEEK (8cHF6B2)

1,290 '

1~00 r ~--------

1310 y Imprime mEnu iniclal

1320 '------------------------------

1330 Cl8aPRtNTHFONT~=":PRINTH----~"

1340 PRINT" A --_.) Dr iveA"

! 3 ~j 0 PR 1 NT II B _ ...... - > 0 r i v E' a '"

1360 PRINT" C ---} Cams€t~" 1370 PRINT"Op;lp 7"

99